Me, Myself and I 2010-03-07T19:41:52+02:00 http://szabster.net/ Mihail Szabolcs szaby@szabster.net QT's File Engine 2010-03-07T00:00:00+02:00 http://szabster.net/2010/03/07/qt-file-engine <p><a href="http://qt.nokia.com">QT's</a> <a href="http://doc.trolltech.com/4.6/qfsfileengine.html">QAbstractFileEngine</a> isn't a very well documented subject, nor there are any good examples on how to make good use of it.</p> <p>It makes sense using it when the application needs a virtual filesytem for reading files directly from a ZIP or just restrict access to a certain directory.</p> <p>Lets say that you have a scriptable game and you don't want to allow access outside of the "data" folder which holds all the necessary data, with <a href="http://doc.trolltech.com/4.6/qfsfileengine.html">QAbstractFileEngine</a> this can be resolved in a transparent way as shown in the code snippet below.</p> <div class="highlight"><pre><code class="cpp"><span class="p">...</span> <span class="c">//! File System Class</span> <span class="k">class</span> <span class="nc">FileSystem</span> <span class="o">:</span> <span class="k">public</span> <span class="n">QFSFileEngine</span> <span class="p">{</span> <span class="k">public</span><span class="o">:</span> <span class="c">//! Constructor</span> <span class="n">FileSystem</span><span class="p">(</span><span class="k">const</span> <span class="n">QString</span> <span class="o">&amp;</span><span class="n">pFileName</span><span class="p">);</span> <span class="c">//! Destructor</span> <span class="k">virtual</span> <span class="o">~</span><span class="n">FileSystem</span><span class="p">();</span> <span class="p">};</span> <span class="c">//! File System Handler</span> <span class="k">class</span> <span class="nc">FileSystemHandler</span> <span class="o">:</span> <span class="k">public</span> <span class="n">QAbstractFileEngineHandler</span> <span class="p">{</span> <span class="k">public</span><span class="o">:</span> <span class="c">//! Constructor</span> <span class="n">QAbstractFileEngine</span> <span class="o">*</span><span class="n">create</span><span class="p">(</span><span class="k">const</span> <span class="n">QString</span> <span class="o">&amp;</span><span class="n">pFileName</span><span class="p">)</span> <span class="k">const</span><span class="p">;</span> <span class="p">};</span> <span class="p">...</span> <span class="kt">int</span> <span class="n">main</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*</span><span class="n">argv</span><span class="p">[])</span> <span class="p">{</span> <span class="n">FileSystemHandler</span> <span class="n">lFileSystemHandler</span><span class="p">;</span> <span class="n">QFile</span> <span class="n">lFile</span><span class="p">(</span><span class="s">&quot;scripts/test.js&quot;</span><span class="p">);</span> <span class="k">if</span><span class="p">(</span><span class="n">lFile</span><span class="p">.</span><span class="n">open</span><span class="p">(</span><span class="n">QFile</span><span class="o">::</span><span class="n">ReadOnly</span> <span class="o">|</span> <span class="n">QFile</span><span class="o">::</span><span class="n">Text</span><span class="p">))</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span> <span class="p">}</span> </code></pre> </div> <p>In <em>our</em> <strong><em>FileSystem class</em></strong> we preprend our base path to the fileName, i.e <em>"./data/"</em> so <a href="http://doc.trolltech.com/4.6/qfile.html">QFile</a>, <a href="http://doc.trolltech.com/4.6/qdir.html">QDir</a>, <a href="http://doc.trolltech.com/4.6/qfileinfo.html">QFileInfo</a> all work the exact same way they did before registering our file engine handler just the paths get altered in the background.</p> <p>The latest registered handler takes precedence over existing handlers.</p> <p>We could also do another nifty thing and register a handler which would respond to <strong>"fs://myfile.txt"</strong>.</p> <div class="highlight"><pre><code class="cpp"><span class="n">QFile</span> <span class="n">lFile</span><span class="p">(</span><span class="s">&quot;fs://myfile.txt&quot;</span><span class="p">);</span> </code></pre> </div> <p>QT's internal resource system is implemented this way, so that's a good place to study especially if you want to implement a ZIP based virtual filesystem.</p> Tea, Tea, Tea, Lemon Tea 2010-03-04T00:00:00+02:00 http://szabster.net/2010/03/04/tea-tea-tea-lemon-tea <h3>She said: but it makes sense actually; like to make lemon tea you need to know something but it doesn't take a lot of knowledge.</h3> <p>A few days ago I announced Lemon Tea (formerly known as Prototype3D) which is meant to provide a complete development environment for rapid prototyping games (or even non-interactive demos) .</p> <p>I would like to make a few additions/corrections to that announcement; first of all the license will be just <strong>GPLv3</strong> (<em>commercial</em> licenses can be negotiated for a couple of <strong><em>$$$</em></strong>, but let's just stay with the good old GPLv3), this covers the <em>tool code</em> <strong>NOT</strong> the actual <em>user created content</em> which can be licensed as the user sees fit.</p> <p><strong>Lera3D</strong> <em>(un-released, hidden in the dark forests of Git)</em> is meant to be a fully portable next generation 3D engine geared towards Linux; if you take a look in the Linux ecosystem you will notice quite quickly that all the 3D (graphics or game) engines out there are either outdated or doesn't provide "World Editor" so to speak which increases the learning curve and stops the mainstream from adopting it.</p> <p>IMHO, <a href="http://www.ogre3d.org">Ogre</a> is the only one which has some chance to survive especially after being adopted by the <a href="http://www.torchlightgame.com">Torchlight</a> developers (who built their own tool set around it) and now it got a really really permissive MIT license. (the license itself won't make a huge difference anyway)</p> <p>Why is this? Realistically you build the engine itself (the next big thing), but then you realize that a couple of new features just landed in (the scene) or new techniques and you need to upgrade the engine in order to support these features, so basically the engine never matures and there will be no "World Editor", or just the author(s) have no interest in developing something like this.</p> <p>I've been developing the concept and architecture of Lera3D since early 2005, since then its architecture went through a few major overhauls; it felt like that it will never be ready ... but now the core architecture is pretty close to be finished and I got an idea! <em>sparkle, sparkle</em> !??!</p> <p>What it would happen if I temporarily stop working on it and start working on the opposite side? I said, let's build the whole Editor first with a very very basic rendering path which later on can be swapped with Lera3D's highly efficient and optimized rendering paths (this also applies to a few other sub-systems which may find their ways in Lemon Tea).</p> <h3>A crank is someone with a new idea ... until it caches on ...</h3> <p>Even though there is no source code in the wild yet, I would like to publish the planned or expected feature set to land in Lemon Tea.</p> <p>This is all subject to change, <em>but you can't change the plan unless you have the plan</em>.</p> <p>There are no sprints or specific release dates which is normal considering that it's a personal project and I'm not working on it full time. (at least not at the moment)</p> <script src="http://gist.github.com/321972.js"></script> <p>I promise regular updates (builds?!) regarding the development and update this list accordingly. I guess these should be done in the next couple of months, let's say August, early September. (we'll see how this goes in practice ... zzzaayycckksss!)</p> <h3>End of Line</h3> Linux and Games 2010-02-28T00:00:00+02:00 http://szabster.net/2010/02/28/linux-and-games <h3>Business?!</h3> <p>I downloaded the brand new issue of <a href="http://fullcirclemagazine.org/">Full Circle Magazine</a> today and I imediatelly noticed that another user associated his / her story in getting into the Linux world with Games.</p> <p>This isn't the first nor the last user who would try out Linux in order to play games .</p> <p>In my vision the technology powering the games should be free and provided at absolutely no cost whatsovever (of course one can charge for support which is normal), and this is what I'm going to promote with my two projects <strong>Lera3D</strong> and <strong>LemonTea</strong>.</p> <p>Sell the games built on the technology <strong>BUT</strong> with one condition and that's very very important: ALLOW USERS TO SHARE THAT COPY (with the source code) FREELY with their friends, neighboors, etc.</p> <p>OK OK, I hear the crowd already ... <em>money</em>, <em>money</em>, so let me elaborate this a little bit:</p> <p>Joe buys game XYZ for let's say 10$ . He gets the full source code of the game licensed under a specific license (GPLv3 is favored, BSD, whatever) and the Game Assets (textures, models, etc) released under a Creative Commons License (again this is up to the developer).</p> <p>Joe tells Jessica that he just bought a cool game and gives her a copy.</p> <p>Jessica really enjoys the game and decides that it would be a perfect gift for Susanne and buys a nice boxed copy. While she could also just "share" the game, a game in a box looks a lot more better, especially as a birthday present.</p> <p>Susanne likes the game as well and installs it on every PC in her house.</p> <p>In this scenario the developer earned around 25$ (because a boxed copy costs slightly more), there are 3 users already who will also promote the game directly or indirectly which will result in sales; some will just buy it to have it even if they have finished the game already and there is no piracy involved; EVERYBODY can try the full game, it doesn't have to play a crappy demo which might contain the best moments of the game while the rest is just a piece of shit.</p> <p>The users promote the software, that works better than any other promotion channel. They also got the full source code which means that they can modify the game as they see fit, nobody will come to take them to court and charge them; users can even start and sell their modified copy with their OWN ASSETS.</p> <p>The importance of GPL in a business like this is very very obvious, it just won't allow anybody to close your source code . Assets are the most important part of any game and the Creative Commons License comes to solve this issue.</p> <h3>Distribution Channel</h3> <p>Another thing which we really really miss in the Linux community is the lack of a proper distribution channel (like Steam) geared towards games; a huge database of games where users can easily buy / download copies of their favorite games without any hassle.</p> <p>Most of the time, especially when a game is in a very very early stage the developers won't provide packages for the major distros or for Windows, which in my opinion LIMITS the number of users; those who are not tech-savy won't be able to compile the game (they will try though).</p> <p>When I was ranting to the <a href="http://www.frogatto.com/">Frogatto</a> developers about the lack of distribution specific packages (more than a year ago), their reasoning was:</p> <ul> <li>don't have the necessary resources to do it</li> <li>don't care about the users at that early stage</li> </ul> <p>I said, <em>uhmm</em> ... oookaaay.</p> <p>They still (as of NOW) don't provide clear instructions for Linux users on how to run the game (nor packages), while there are pre-built packages for Windows and Mac. Linux users are expected to just checkout the game from the SVN repo and deal with it on their own ... <em>ignorance is bliss</em> .</p> <p>This is where a proper distribution channel could come in the scene to build and maintain packages for games which the developer don't really care about.</p> <h3>End of Line</h3> Prototype3D announcement 2010-02-21T00:00:00+02:00 http://szabster.net/2010/02/21/prototype3d-announcement <h3>WTF?</h3> <p>Prototype3D is a real time shader editor and demo tool all in one. Why another shader editor / designer?</p> <p>There aren't any good shader editors under Linux or MacOSX for that matter, besides that I really wanted to do this for a long long time.</p> <p>Prototype3D is <em>NOT</em> using my cross-platform 3D engine and framework codename <strong>Lera3D</strong>, although they have some traits in common when it comes to the back-end rendering architecture.</p> <h3>Technology</h3> <p>I'm using QT for absolutely everything, from Math to Scripting and Audio. No additional third party libraries have been or will be used.</p> <p>QT's Math classes are quite nice, the Trolls did a nice job in that area.</p> <h3>Licensing</h3> <p>Hmm ... this is the most interesting part ... as always. Sooo ... I will dual license it, GPLv3 and BSD.</p> <h3>How does it looks like?</h3> <p>Here it is an early screenshot.</p> <p><a href="http://dl.dropbox.com/u/1012887/www/szabster.net/images/2010/02/stage01.png" class="image"> <img src="http://dl.dropbox.com/u/1012887/www/szabster.net/images/2010/02/stage01_thumb.png"></a></p> <p>Everything is subject to change in a way or another, but as of now this is how is it looks like.</p> <h3>What's next? When it will be released?</h3> <p>I will post more details later on as I make progress (feature set, how to contribute, etc).</p> <p>There is no specific release date at the moment; the first version is expected to be released during the next few weeks (2-3!).</p> <p><strong><em> Yay! </em></strong></p> Move, Move 2010-02-17T00:00:00+02:00 http://szabster.net/2010/02/17/move-move <p>Successfully moved to <a href="http://www.heroku.com">Heroku</a>. End of Line.</p> <p>Lots of interesting stuff is on the way! Stay tuned!</p> Blogging with Jekyll 2010-02-15T00:00:00+02:00 http://szabster.net/2010/02/15/blogging-with-jekyll <p>My 'editor' trio:</p> <ul> <li>VIM</li> <li>Gedit</li> <li>QtCreator</li> </ul> <p>Here is my .vimrc for those who might want to take a look.</p> <div class="highlight"><pre><code class="vim"><span class="k">set</span> <span class="nb">nowrap</span> <span class="k">set</span> <span class="nb">complete</span><span class="p">-=</span>i <span class="k">set</span> <span class="nb">wildmenu</span> <span class="k">set</span> <span class="nb">fileformats</span><span class="p">=</span>unix<span class="p">,</span>mac<span class="p">,</span>dos <span class="k">set</span> <span class="nb">nocp</span> <span class="k">set</span> <span class="nb">keymodel</span><span class="p">=</span>startsel <span class="k">set</span> <span class="nb">laststatus</span><span class="p">=</span><span class="m">2</span> <span class="k">set</span> <span class="nb">novisualbell</span> <span class="k">set</span> <span class="k">number</span> <span class="k">set</span> <span class="nb">report</span><span class="p">=</span><span class="m">0</span> <span class="k">set</span> <span class="nb">lazyredraw</span> <span class="k">set</span> <span class="nb">listchars</span><span class="p">=</span><span class="k">tab</span>:\<span class="p">|</span>\ <span class="p">,</span>trail:.<span class="p">,</span>extends:<span class="p">&gt;,</span>precedes:<span class="p">&lt;,</span><span class="nb">eol</span>:$ <span class="k">set</span> <span class="nb">autoindent</span> <span class="k">set</span> <span class="nb">cindent</span> <span class="k">set</span> <span class="nb">noexpandtab</span> <span class="k">set</span> <span class="nb">smartindent</span> <span class="k">set</span> <span class="nb">tabstop</span><span class="p">=</span><span class="m">4</span> <span class="k">set</span> <span class="nb">shiftwidth</span><span class="p">=</span><span class="m">4</span> <span class="k">set</span> <span class="nb">softtabstop</span><span class="p">=</span><span class="m">4</span> <span class="k">set</span> <span class="nb">smarttab</span> <span class="k">set</span> <span class="nb">showmatch</span> <span class="k">set</span> <span class="k">nohlsearch</span> <span class="k">set</span> <span class="nb">incsearch</span> <span class="k">set</span> <span class="nb">nocompatible</span> <span class="k">set</span> <span class="nb">backspace</span><span class="p">=</span>indent<span class="p">,</span><span class="nb">eol</span><span class="p">,</span><span class="k">start</span> <span class="k">set</span> <span class="nb">diffopt</span><span class="p">+=</span>iwhite <span class="k">set</span> <span class="nb">hidden</span> <span class="k">set</span> <span class="nb">nostartofline</span> <span class="k">set</span> <span class="nb">shortmess</span><span class="p">=</span><span class="k">as</span> <span class="k">set</span> <span class="nb">showcmd</span> <span class="k">set</span> <span class="nb">ttyfast</span> <span class="k">set</span> <span class="nb">mouse</span><span class="p">=</span>a <span class="k">colorscheme</span> zenburn <span class="k">filetype</span> plugin <span class="k">on</span> <span class="k">filetype</span> plugin indent <span class="k">on</span> <span class="k">filetype</span> <span class="k">on</span> <span class="nb">syntax</span> <span class="k">on</span> <span class="c">&quot; Word Completion</span> <span class="k">function</span><span class="p">!</span> Tab_Or_Complete<span class="p">()</span> <span class="k">if</span> <span class="k">col</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)&gt;</span><span class="m">1</span> &amp;&amp; strpart<span class="p">(</span> getline<span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">),</span> <span class="k">col</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span><span class="m">-2</span><span class="p">,</span> <span class="m">3</span> <span class="p">)</span> <span class="p">=~</span> <span class="s1">&#39;^\w&#39;</span> <span class="k">return</span> <span class="c">&quot;\&lt;C-N&gt;&quot;</span> <span class="k">else</span> <span class="k">return</span> <span class="c">&quot;\&lt;Tab&gt;&quot;</span> <span class="k">endif</span> <span class="k">endfunction</span> inoremap <span class="p">&lt;</span>Tab<span class="p">&gt;</span> <span class="p">&lt;</span>C<span class="p">-</span>R<span class="p">&gt;=</span>Tab_Or_Complete<span class="p">()&lt;</span>CR<span class="p">&gt;</span> <span class="k">set</span> <span class="nb">dictionary</span><span class="p">=</span><span class="s2">&quot;/usr/share/dict/words&quot;</span> <span class="c">&quot; Default Markdown Blog Post Template (to be used with Jekyll)</span> autocmd <span class="nb">BufNewFile</span> *.markdown <span class="k">silent</span><span class="p">!</span> <span class="m">0</span>r $HOME<span class="sr">/.vim/</span>templates/markdown.<span class="k">vim</span> </code></pre> </div> <p>I would like to highlight two things:</p> <ol> <li>Word Completion</li> <li>Default Markdown Blog Post Template</li> </ol> <p>I don't think that the Word Completion feature needs any further explanations, but for the Markdown Blog Post template it worth mentioning that whenever I create <strong>somefile.markdown</strong> it will automatically get filled with the contents of the template file residing in <strong>~/.vim/templates/markdown.vim</strong> .</p> New Life, New Blog, New ... 2010-02-14T00:00:00+02:00 http://szabster.net/2010/02/14/new-life <h3>Reasons, Questions and Answers</h3> <p>If you are a regular visitor here then you imediatelly noticed the changes. Brand new layout and no more WordPress. <strong>sigh</strong>??!! . What does this mean?</p> <blockquote><p><strong>Q. Do I really need a shared hosting plan?</strong></p> <p><strong>A.</strong> No, I don't, because I'm using only a fraction of the provided services which means that I'm wasting money on stuff I don't really make use of. Bad bad!</p> <p><strong>Q. Why I didn't go with GitHub Pages?</strong></p> <p><strong>A.</strong> First of all I'm using my own fork of Jekyll, with enhanced tag support and a few other small convenience changes, on the other hand I want to have at least a minimal server side control for dynamic pages, otherwise GitHub pages would be the perfect solution for blogging with Jekyll; I will re-evaluate this once I get my 7$ GitHub subscription.</p> <p><strong>Q. Why I didn't go with SliceHost?</strong></p> <p><strong>A.</strong> I bought a 256MB slice (which I recently canceled, 20$ / month), setup a Git remote repo with a hook to re-generate the static html via Jekyll and served the pages via Nginx. This worked very very well, but I realized that I don't need full VPS just to host this simple blog and possibly a Trac (Edgewall) instance.</p> <p><strong>Q. Why I didn't go with Posterous, Thumblr or some other blogging platform?</strong></p> <p><strong>A.</strong> I want full control over my <strong>text</strong> (I did that before) plus I want it versioned using Git and hosted GitHub. Even though Posterous and Thumlr can be fully customized, they are still not there for <em>me</em>.</p> <p><strong>Q. Heroku? Why?</strong></p> <p><strong>A.</strong> I'm most definitely not a big Ruby fan, <em>BUT</em> the free plan on <a href="http://www.heroku.com">Heroku</a> really did catch my attention! They have a read-only file-system, so I can generate my static pages locally with my own Jekyll fork, commit and push them to Heroku, plus push the <strong>raw source material</strong> to GitHub for easier access to the masses.</p></blockquote> <h3>(Dr.) Jekyll</h3> <p><a href="http://github.com/mojombo/jekyll">Jekyll</a> is an awesome piece of software written in Ruby, unfortunately I had to hack it a little bit in order to enable generating nice Tag Clouds and Tag Pages. You can check out the <a href="/archives-tags.html">Archives</a> page to see what I mean. You can find my Jekyll fork right <a href="http://github.com/icebreaker/jekyll">here</a> .</p> <p>Like I said, I also had to modify the WordPress importer in order to fetch tags and fix the image paths so I could just move out my "uploads" directory into Jekyll's "images" directory.</p> <script src="http://gist.github.com/303570.js?file=wordpress.rb"></script> <p>I'm still learning Markdown as of typing up these words in VI.</p> <h3>Heroku, Text and Images</h3> <p>Heroku limits the "Slug Size" to 20MB, which is HUGE if you want to server static HTML or other dynamically generated stuff, but it's barely enough if you are planning to use images, they even recommend to go for Amazon S3 if you want to store media files.</p> <p>I rarely write up posts which contain images so I moved them into my DropBox, roughly 49MB (after the import from WordPress); with this my slug size is around 380KB including 130 blog posts, the archives, rss feeds and about pages. Maybe in 20 years I will fill up the 20MB. <em>ha!</em> :)</p> <p>I'm using <a href="http://www.sinatrarb.com">Sinatra</a> to serve off the static HTML and stuff.</p> <script src="http://gist.github.com/304015.js?file=config.ru"></script> <script src="http://gist.github.com/304016.js?file=masquerade.rb"></script> <p>The great thing about <a href="http://www.sinatrarb.com">Sinatra</a> is that I can easily silenty re-route my old URLs in the format <em>/year/month/day/title</em> to <em>/year/month/day/title.html</em> as you can see above.</p> <p>Heroku is definitely a <strong>game changer</strong> compared to other platforms like Google's <a href="http://appengine.google.com">App Engine</a>, primarily because of the tight integration with Git making development and deployment piece of cake.</p> <p>In less then 5 minutes I had my very first "Hello World" app up and running.</p> <h3>End?!</h3> <p>I'm very pleased with this setup, from now on I will blog a lot more, so stay tuned! (amazing stuff will follow). Be sure to checkout my <a href="http://github.com/icebreaker">GitHub repos</a> to get the latest code for all the stuff I've been discussing about here .</p> SexyGrep 2010-01-23T00:00:00+02:00 http://szabster.net/2010/01/23/sexygrep <p>SexyGrep is another experimental prototype project thrown together in a few hours. I really wanted to do this for a long long time now, so here I am!</p> <p>The whole point of the project is to embed WebKit into a C++ application, expose some system functionalities to it, so they can be accessed via JavaScript and build the whole app using the well known and proven trio HTML+CSS+JavaScript.</p> <p>What's better for a setup like this than QT? nothing!</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2010/01/sexygrep.png"><img class="aligncenter size-medium wp-image-798" title="sexygrep" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2010/01/sexygrep-500x281.png" alt="" width="500" height="281" /></a></p> <p>Right now it works under <em>NIX only, but it shouldn't be hard to make it work under Windows as well; also this can be used as a 'base framework' to build other apps using this mindset. Who the hell needs Adobe Air? Most definitely not me! </em>sigh*</p> <p>The source code can be found on GitHub as usual right <a title="Get the source code now!" href="http://github.com/icebreaker/sexygrep/" target="_blank">here</a> .</p> <p>Until next time, as server said END OF LINE.</p> Rant #N 2010-01-17T00:00:00+02:00 http://szabster.net/2010/01/17/rant-n <p>I'm really really irritated and frustrated by Ubuntu's road map; the last release I could call solid is 7.04, now that was A REALLY REALLY solid release from head to toes; all the upcoming releases were getting worse and worse which is unacceptable; don't get me started with 9.10 when it comes to upgrading an existing 9.04 system ... TOTAL MESS, and most of the time you end up with a completely fucked up system.</p> <p>Now to Debian or not to Debian? switch to Debian 'stable' or Not? ... well, gentlemen, Debian 5.0 is very very outdated and Debian 'Sid' is just as worse as Ubuntu but at least it's labeled and marketed as 'unstable' ; the rest of Debian based distros are a sort of mess.</p> <p style="text-align: center;"><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2010/01/ati-amd-fedora-fail.png"><img class="aligncenter" title="ati-amd-fedora-fail" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2010/01/ati-amd-fedora-fail.png" alt="" width="320" height="320" /></a></p> <p>A viable solution to all this mess would be to switch to the good old Fedora which is up to date and it doesn't seem to break UNLESS ... <em>drum rolls</em> ... unless you install the proprietary ATI driver from AMD ... and BOOOM! totally fucked up X, black screen, END OF LINE.</p> <p>Personally I have no idea what the Fedora developers could have been thinking ... we are in fucking 2010, even LINUX people got some serious hardware in their machines ... but no, they are all for their crappy open source  Radeon driver ... what the fuck? I'm all for open source and free software, but no community in this world will be able to make better drivers for a VIDEO CARD but the manufacturer itself. END OF STORY.</p> <p>As a developer I'm always seeking for the best distribution to develop on (especially 3D stuff whatever that means), the open source Radeon driver is fine with people who are willing to use Open Office, develop any non-multimedia thingies (hard to believe these days) or corporate customers, but it definitely won't suit the needs of a home-user or a more extravagant developer (but ... at least you have the freedom of choice).</p> <p>I hear you saying, OPEN SOURCE THE HARDWARE ... you must be fucking kidding (closed source hardware and software are a necessity for COMPETITION, no competition = no market), who the fuck cares if the kernel modules are 'closed source' but WORK GREAT and deliver awesome performance ... just think about it ... what keeps Windows alive? well I can think of two things, the first is MS Office and the other ... I hear you ... I hear you ... VIDEO GAMES .</p> <p>I also realize that Fedora is a 'generic distro' it doesn't focus on any particular area, but that shouldn't stop people from using their hardware if they want to and fully benefit of all the capabilities supported by the hardware; this is not the incompetence of AMD, this is the incompetence of Red Hat, who couldn't care less and synchronize a little bit ... just a little ... I'm sure AMD wouldn't say NO.</p> <p>Ok Ok ... I'm calming down ... cross platform gaming is starting to 'rise' which is a good sign (big thanks to all our fellow Indie game developers),but don't think about this as 'all games will be free and open sourced' take it instead as you can enjoy and play all these games using a completely free software ecosystem ... you don't need to buy Windows licenses, pay for upgrades, etc just buy quality games and play them ... yeaahh ... if you look around you will see that the actual 'small' Linux gamer camp is willing to pay for quality games which run natively under Linux ... almost no piracy involved.</p> <p>I don't know about Nvidia's proprietary driver and Fedora, but I guess that it's pretty much the same story (although people have tendencies to support Nvidia or even Intel more than AMD and ATI; what a shame when they are supporting FOSS); I'm telling you both that Nvidia's and ATI's closed source proprietary drivers work great and deliver good performance on Debian based distributions.</p> <p>Personally, I want to develop on the platform and not spend nights making simple things work, which are meant to work out of the BOX, or work with other distributions, this is not all about the kernel, it's about the software surrounding (and its developers) the kernel  ... anyways ...</p> <p>So, right now I'm back to 9.10 (as Mint 8 'Helena') and waiting for Fedora 13 or the new Debian . <em>fingers crossed</em></p> <p>Good night!</p> DLSB 2010-01-07T00:00:00+02:00 http://szabster.net/2010/01/07/dlsb <p>According to the <a title="Programmer Personality Test" href="http://ppt.doolwind.com/" target="_blank">programmer personality test</a> my programmer personality type is DLSB, which is about right because I'm a hardcore c/c++ and optimization freak; I do "web" stuff just for fun :)</p> <p><strong>You're a <span style="font-size: large;">D</span>oer.</strong> You are very quick at getting tasks done. You believe the outcome is the most important part of a task and the faster you can reach that outcome the better.After all, time is money.</p> <p><strong>You like coding at a <span style="font-size: large;">L</span>ow level.</strong> You're from the old school of programming and believe that you should have an intimate relationship with the computer. You don't mind juggling registers around and spending hours getting a 5% performance increase in an algorithm.</p> <p><strong>You work best in a <span style="font-size: large;">S</span>olo situation.</strong> The best way to program is by yourself. There's no communication problems, you know every part of the code allowing you to write the best programs possible.</p> <p><strong>You are a li<span style="font-size: large;">B</span>eral programmer.</strong> Programming is a complex task and you should use white space and comments as freely as possible to help simplify the task. We're not writing on paper anymore so we can take up as much room as we need.</p> FOSS yada yada ... 2010-01-02T00:00:00+02:00 http://szabster.net/2010/01/02/licensing <center><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2010/01/art54_1.jpg"><img class="size-full wp-image-766 alignleft" title="art54_1" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2010/01/art54_1.jpg" alt="" width="240" height="204" /></a></center> <p>It's not my style to blog yada-yada; I try to focus on the technical side of things, but lately I've been thinking about what it takes to bootstrap a small start-up governed by '<a title="The Hacking Business Model" href="http://askmonty.org/wiki/index.php/The_hacking_business_model" target="_blank">The Hacking Business Model</a>' crafted together by  our fellows Zak Greant and Michael Widenius .</p> <p>Personally, I think that dual-licensing is very important, especially for a 3D Game Engine &amp; Framework; instead of LGPL I will go with EPL. The next question which comes up is why? Well, while EPL guarantees that <em>derived works </em>must be contributed back to the community, it does allow completely separate modules to be licensed under another license, even a proprietary one; the primary benefit of this is that some 3rd party might not want to open source their plugin, with EPL they can do that without any problems.</p> <p>The biggest question is that with a license like EPL, when the <em>alternate commercial license</em> will make sense, if ever? Lets take this step by step; first of all most of the time for any serious project based on a game engine, the programmers will have to touch the engine itself or at least some module of it; it's just impossible to make an engine to suit everyones needs, so if they modify it, but don't want to contribute back their changes to the community (let's say that they re-wrote major parts of some of the existing renderers -- this would be classified as a <em>derivate work</em>), or they just want professional prioritized support (they always have the community as a support free of charge) it's feasible for them to pay a license or just support fee.</p> <center><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2010/01/team.jpg"><img class="alignright size-full wp-image-767" title="team" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2010/01/team.jpg" alt="" width="295" height="225" /></a></center> <p>We'll see how it goes after I release the first <em>community version </em>of Lera3D ; to be able to form a community around it is the most important step, without a developer community an open source project means <em>NOTHING</em>. The <em>bazaar </em>model works so much better than the cathedral model, this have been proven many many times already. I'm not planning to make the <em>alternate commercial license </em>available until the first stable version 1.0 ; obviously to be the <em>next big thing </em>it<em> </em>means mature code, and crafting mature code takes some time, even with a fully open development model. I know that there is a motto which says <em>"release early, release often"</em>, but I'm not releasing any source code until Lera3D reaches beta, it just wouldn't make sense releasing any code earlier, mostly because I want to implement all my ideas first (or stuff I miss in other engines, etc), be them good or bad, they are mine! Wow, this post got really really long ... lots of blah, blah ... just another late night post ... Good Night!</p> Cast yerr vote for Marina Orlova 2009-12-29T00:00:00+02:00 http://szabster.net/2009/12/29/cast-yerr-vote-for-marina-orlova <p><a href="http://www.wired.com/underwire/2009/12/sexy-geeks-2009">http://www.wired.com/underwire/2009/12/sexy-geeks-2009</a></p> <p><a title="Hot For Words!" href="http://www.hotforwords.com" target="_blank" class="image"> <img class="aligncenter size-medium wp-image-720" title="IMG_0071" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/12/IMG_0071-500x375.jpg" alt="" width="500" height="375" /> </a></p> Alma by Rodrigo Blaas 2009-12-25T00:00:00+02:00 http://szabster.net/2009/12/25/alma-by-rodrigo-blaas <p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="225" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=4749536&amp;amp;server=vimeo.com&amp;amp;show_title=0&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="225" src="http://vimeo.com/moogaloop.swf?clip_id=4749536&amp;amp;server=vimeo.com&amp;amp;show_title=0&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p> <p><a href="http://vimeo.com/4749536">Alma</a> from <a href="http://vimeo.com/alma">Rodrigo Blaas</a> on <a href="http://vimeo.com">Vimeo</a>.</p> Triple Ezariks 2009-12-23T00:00:00+02:00 http://szabster.net/2009/12/23/triple-ezariks <p>Triple Ezariks once again!!!</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/12/ezarikxmas.gif"><img class="aligncenter size-full wp-image-714" title="ezarikxmas" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/12/ezarikxmas.gif" alt="" width="480" height="512" /></a></p> Just Cause 2 - Vechicular Stunts Dev Diary HD 2009-12-07T00:00:00+02:00 http://szabster.net/2009/12/07/just-cause-2-vechicular-stunts-dev-diary-hd <div style="width: 480px;"><object id="gtembed" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="392" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="true" /><param name="quality" value="high" /><param name="src" value="http://www.gametrailers.com/remote_wrap.php?mid=59713" /><param name="name" value="gtembed" /><param name="align" value="middle" /><param name="allowfullscreen" value="true" /><embed id="gtembed" type="application/x-shockwave-flash" width="480" height="392" src="http://www.gametrailers.com/remote_wrap.php?mid=59713" align="middle" name="gtembed" quality="high" allowfullscreen="true" allowscriptaccess="sameDomain"></embed></object> <div style="font-size: 10px; font-family: Verdana; text-align: center; width: 480px; padding-top: 2px; padding-bottom: 2px; background-color: black; height: 32px;"> <div><a style="color:#FFFFFF;" title="GameTrailers.com" href="http://www.gametrailers.com">Video Games</a> | <a style="color:#FFFFFF;" title="Just Cause 2" href="http://www.gametrailers.com/game/just-cause-2/11068">Just Cause 2</a> | <a style="color:#FFFFFF;" title="Vehicular Stunts Developer Diary HD" href="http://www.gametrailers.com/video/vehicular-stunts-just-cause-2/59713">Vehicular Stunts Developer Diary HD</a></div> <div style="padding-top: 3px;"><a style="color:#FFFFFF;" title="XBox 360" href="http://xbox360.gametrailers.com/">XBox 360</a> | <a style="color:#FFFFFF;" title="PS3" href="http://ps3.gametrailers.com/">Playstation 3</a> | <a style="color:#FFFFFF;" title="Wii" href="http://wii.gametrailers.com/">Nintendo Wii</a></div> </div> </div> Tripple X 2009-11-21T00:00:00+02:00 http://szabster.net/2009/11/21/tripple-x <p style="text-align: center;"><a title="Click for bigger &amp; better!" class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/11/MG_2361.jpg" target="_blank"><img class="aligncenter size-full wp-image-688" title="_MG_2361" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/11/MG_2361.jpg" alt="_MG_2361" width="545" height="818" /></a></p> <p style="text-align: center;">(Source: <a title="THEM THANGS" href="http://jblyth.com/blog_08.html" target="_blank">THEM THANS</a>)</p> Gedit To QtCreator Style Scheme Converter 2009-11-19T00:00:00+02:00 http://szabster.net/2009/11/19/gedit-to-qtcreator-style-scheme-converter <p>I forged a little script in Python to convert Gedit color schemes into color schemes commestible by QtCreator. The source code can be found on GitHub as usual right <a title="Get the source right now!" href="http://github.com/icebreaker/g2q" target="_blank">here</a> .</p> <p>Any contributions, comments, etc are welcome, especially because this is very very basic, but it's more than enough for my rather primitive taste :)</p> <p>Enjoy and Happy Hacking!</p> Poor Man's setup ... 2009-10-24T00:00:00+03:00 http://szabster.net/2009/10/24/poor-mans-setup <p>Alas, last week my precious Toshiba "war-machine" died, apparently it wasn't the charger (since then I verified it, it provices 19v), neither the battery because the battery was still lasting up to 2 hours.</p> <p>I'm hoping that it's just some internal soldering problem at the DC's input, and that I won't have to replace the whole motherboard, because in that case I will rather buy another <em>brand new</em> laptop :)</p> <p>So, until I get that fixed (hopefully ... <em>fingers crossed</em>) I put my Wibrain to work ( my EEE PC would be way to slow for <em>compiling</em> ) .</p> <p>It works quite well with my 17' widescreen monitor ... so here is my setup ...</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/10/IMG_0005.JPG"> <img class="size-medium wp-image-679 " title="IMG_0005" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/10/IMG_0005-500x375.jpg" alt="IMG_0005" width="500" height="375" /> </a></p> <p>Not bad huh? I would say, not bad at all! :))</p> (G)UI experiments ... 2009-09-20T00:00:00+03:00 http://szabster.net/2009/09/20/gui-experiments <p>I should really work only on Lera3D these days, but the guys from <a title="Overgrowth" href="http://www.wolfire.com/overgrowth" target="_blank">Wolfire Games</a> are freaking me out with their really nice WebKit based UI in <a title="Overgrowth" href="http://www.wolfire.com/overgrowth" target="_blank">Overgrowth</a> .</p> <p>They are using the "Awesonium" library, which I find quite bloathed ... ok ok ... this started from a concret realisation of "I can do this ..."</p> <p>A web based UI with JavaScript+CSS and all the goodies supported by WebKit itself is nirvana for any UI designer; it just brings the whole thing to a new level.</p> <p>What's better for prototyping than QT? NOTHING! I already had some base foundation code laying around from my other prototype projects (Slider3D, Prototype2D) so I started tackling around, NOT THE EASY way, BUT THE HARD WAY.</p> <p>Instead of just cheating and positioning the widget on the top of my custom 3D canvas, I make a snapshot of the content and transform it into an OpenGL Texture, which then I draw on a quad. (this means that any shape can be textured with it)</p> <p>Now here is an early screenshot demoing this:</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/09/ui_experiments.png"><img class="aligncenter size-medium wp-image-673" title="ui_experiments" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/09/ui_experiments-500x165.png" alt="ui_experiments" width="500" height="165" /></a></p> <p>On the left side it's the actual HTML + CSS, displayed in OpenGL ortho (2D) mode on the right side, drawn on the top of the actual 3D scene with blending.</p> <p>The most important thing left to be done is INPUT, which I will implement most probably during next week or so, then I'll release the source code under BSD license as usual ...</p> <p>Please don't ask who's the blondie, it just won't get you anywhere :)</p> <p>Stay tuned :D</p> LeraGames.com 2009-09-09T00:00:00+03:00 http://szabster.net/2009/09/09/leragames-com <p>First <em>'baby'</em> <strong>steps</strong> ...</p> <p><a href="http://www.leragames.com/" class="image"><img src="/images/leragames.png" alt="LeraGames.com" /></a></p> WTF???!!! 2009-09-01T00:00:00+03:00 http://szabster.net/2009/09/01/wtf <p style="text-align: center;"></p> <p><a title="Click to see the bigger version." class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/09/117681_wtf.png" target="_blank"><img class="size-medium wp-image-663" title="117681_wtf" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/09/117681_wtf-500x375.png" alt="Wtf???!!!" width="500" height="375" /></a></p> 3D SlideShow -- Part Deux 2009-08-15T00:00:00+03:00 http://szabster.net/2009/08/15/3d-slideshow-part-deux <p>Here is a major update for the 3D SlideShow prototype thingy I released last weekend ( see my previous <a title="Part One!" href="http://www.szabster.net/2009/08/09/3d-slideshow/" target="_blank">post</a> on how to obtain the source code ).</p> <p>I added a nice configuration dialog, and replaced the --monitor X command line argument with --config which forces the dialog to appear even when "Don't show this again" is checked.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/08/config.png" target="_blank"><img class="aligncenter size-medium wp-image-658" title="config" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/08/config-499x301.png" alt="config" width="499" height="301" /></a></p> <p>Note: 'Dive into sub-directories' has no effect as of now :P'</p> <p>Windows Build: <a title="Download here!" href="http://dl.getdropbox.com/u/1012887/Slider3D/slider3d.zip" target="_blank">download</a></p> <p>Linux Build: Linux users, get the source code and compile it yourself.</p> <p>MacOSX Build: <a title="Download here!" href="http://dl.getdropbox.com/u/1012887/Slider3D/slider3d.dmg" target="_blank">download</a></p> 3D Slideshow 2009-08-09T00:00:00+03:00 http://szabster.net/2009/08/09/3d-slideshow <p>Here is another quick prototype using QT+OpenGL.</p> <p>The source code is hosted at GitHub as usual ... right<a title="Get the source!" href="http://github.com/icebreaker/slider3d/tree/" target="_blank"> here </a>.</p> <p><object width="640" height="360"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=6020605&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=6020605&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360"></embed></object></p> <p>Features (as of now):</p> <ul> <li>scans the current directory for photos (png &amp; jpg)</li> <li>resizes photos internally before converting them to textures to either 512x512 or 1024x0124; so it should work fine with most video cards.</li> <li>keeps the original aspect ratio of the photos</li> <li>tries to activate and use 4x multi-sampling (anti-aliasing) if possible</li> <li>multi-monitor support (by passing in the command line arguments --monitor X ; where X is the desired monitor to use)</li> <li>simple floor reflection using the Stencil Buffer (it may not work with not T&amp;L cards)</li> <li>scrolling left/right by using the arrow keys</li> <li>automatic slide show mode can be switched on / off by pressing 'space' (switches every 3 seconds; two way)</li> <li>displays file names under the current photo</li> </ul> <p>It should work fine on most systems (even with those crappy integrated Intel graphic cards). Enjoy :)</p> <p>(PS: I'm really going to back to Lera3D now ...)</p> Super Baozi vs Sushi Man 2009-07-30T00:00:00+03:00 http://szabster.net/2009/07/30/super-baozi-vs-sushi-man <p><object width="640" height="368"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5758269&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5758269&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="368"></embed></object></p> <p><object width="640" height="368"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5764616&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5764616&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="368"></embed></object></p> Javascript classes ... 2009-07-22T00:00:00+03:00 http://szabster.net/2009/07/22/javascript-classes <p>The one thing I love about YUI is the nice "extend" function which makes everything sooooo much more beautiful and gives almost that nice C++ 'like' object oriented feeling.</p> <p>Now, YUI is quite heavy, even with all the compression, etc. so I came up with a very light-weight extend implementation.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/07/extends.png" target="_blank"><img class="aligncenter size-medium wp-image-646" title="extends" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/07/extends-500x313.png" alt="extends" width="500" height="313" /></a></p> <p>It's nothing new (or extremely brilliant), except that it works just like the "extend" from YUI; the source code can be found right <a title="Click to get the source code!" href="http://github.com/icebreaker/js-magick/" target="_blank">here</a> .</p> <p>Public domain, enjoy :)</p> Prototype2D -- Release v0.1 2009-07-19T00:00:00+03:00 http://szabster.net/2009/07/19/prototype2d-release-v0-1 <p>Officially released! LOL</p> <p>The GIT repository with the source code can be found right <a title="Get the source!" href="http://github.com/icebreaker/prototype2d/" target="_blank">here</a> (GitHub).</p> <p><object width="640" height="496"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5661351&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5661351&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="496"></embed></object></p> Wildfire Games -- 0 A.D 2009-07-17T00:00:00+03:00 http://szabster.net/2009/07/17/wildfire-games-0-a-d <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/07/0ad.jpg" target="_blank"><img class="aligncenter size-medium wp-image-626" title="0ad" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/07/0ad-499x90.jpg" alt="0ad" width="499" height="90" /></a></p> <p>0 A.D was released under the LGPL license some time ago, and it's definitely the BEST "Open Source" RTS available (both technically and visually).</p> <p>Build instructions can be found right <a title="Build 0 A.D!" href="http://trac.wildfiregames.com/wiki/BuildInstructions" target="_blank">here</a> .</p> <p>I built it (under Linux) without any headaches in 20 minutes or so on my Core Duo @ 1,8ghz (2mb L2 cache) ... (totally impressed ... lol).</p> <p>Now here are some screenies ...</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/07/shot2.png" target="_blank"><img class="size-thumbnail wp-image-628" title="shot2" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/07/shot2-400x300.png" alt="shot2" width="400" height="300" /></a></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/07/shot3.png" target="_blank"><img class="size-thumbnail wp-image-629" title="shot3" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/07/shot3-400x300.png" alt="shot3" width="400" height="300" /></a></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/07/shot1.png" target="_blank"><img class="size-thumbnail wp-image-627" title="shot1" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/07/shot1-400x301.png" alt="shot1" width="400" height="301" /></a></p> <p>Enjoy :)</p> Dino And The Aliens ... 2009-07-13T00:00:00+03:00 http://szabster.net/2009/07/13/dino-and-the-aliens <p style="text-align: left;">Initially I wanted to write up and article series about reverse engineering <span><strong><a id="e2lz" title="Click for the DEMO or BUY!" href="http://www.oberongames.com/dino_and_aliens.asp" target="_blank">Dino And the Aliens</a> </strong>by <strong><a id="vg2g" title="Visit NevoSoft!" href="http://www.nevosoft.com/" target="_blank">NevoSoft</a></strong></span>, but I kinda lost interest after I reversed the PAK file format. (I may return later and continue the work here ... who knows .. reversing the custom model format, etc ... lol)</p> <p style="text-align: left;">To make the long story short, the files inside the Package File are encrypted with their filenames, so now I'm releasing the source code to manipulate (extract, replace, create, etc) these PAK files.</p> <p style="text-align: left;">With this it is possible to create new levels because the level files are in plain text format and it's not that hard to figure out what character translates to what just by looking at the other levels.</p> <p style="text-align: left;">I reversed the demo version, but I don't think that there are any differences, so the code should work pretty much fine with the full version as well.</p> <p style="text-align: left;">If you like the game please BUY it . (IMHO, the best INDIE game ever! -- works under <em>Wine</em> as well :))</p> <blockquote>Dino and Aliens Mean aliens land on Dino's peaceful planet intent on blowing it up with lasers and explosives. Help Dino deploy his magic powers to battle the aliens and reclaim his carefree world in this whimsical fantasy game! "</blockquote> <p style="text-align: center;"></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/07/dfzz4ggw_803d2qk9xfg_b.jpeg" target="_blank"><img class="size-thumbnail wp-image-611" title="dfzz4ggw_803d2qk9xfg_b" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/07/dfzz4ggw_803d2qk9xfg_b-400x300.jpg" alt="Click for bigger version!" width="400" height="300" /></a></p> <p>The source code is located in <strong><a title="Get the source!" href="http://github.com/icebreaker/daa/tree/" target="_blank">here</a></strong> ; it's pure ANSI C and will compile pretty much anywhere with a decent ANSI C standard compliant C compiler like GCC.</p> <p>There is no ready made executable, so <em>please</em> <strong>don't</strong> ask.</p> Prototype2D -- Teaser 2 2009-07-05T00:00:00+03:00 http://szabster.net/2009/07/05/prototype2d-teaser-2 <p>Another teaser featuring my small 2d engine, this time with some pretty "royalty free" graphics from <a title="Lost Garden!" href="http://lostgarden.com/labels/free%20game%20graphics.html" target="_blank">Lost Garden</a>.</p> <p>I'll work on it for a few more days (roughly 1-2h a day) then release it as-is, so stay tuned :)</p> <p><object width="640" height="416"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5463316&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5463316&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="416"></embed></object></p> <p>It's about time to get back to Lera3D after this little side project (it was fun indefinitely); actually with a few, very very good ideas which happened to struck me in the meantime ... :D :D :D</p> <p>I'm still working <em>"hard"</em> on the actual core of Lera3D, trying hard to not overengineer anything, but I just want it to be rock solid :)</p> EPIC FAIL 2009-06-26T00:00:00+03:00 http://szabster.net/2009/06/26/epic-fail <p>Today, I stumbled across this blog <a href="http://theunixgeek.wordpress.com/">TheUnixGeek</a> and discovered the following:</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/06/epicfail.png"><img class="alignleft size-full wp-image-596" title="epicfail" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/06/epicfail.png" alt="epicfail" width="447" height="137" /></a></p> <p><em><strong>EPIC FAIL!!!! </strong></em>(Fellow programmers (but not only) will know what I'm talking about <em><em>cough, cough</em></em>)</p> <p>IMHO, one shouldn't publish stuff on the internet unless he really has something to say, and HE IS ABSOLUTELY sure that he fully understands the given TOPIC.</p> <p>It's always wise to evaluate your skills before getting into something, because it's totally useless wasting your time trying to 'build' something; you know from the very begining that you just can't.</p> <p>Just my two eurocents ... apples and oranges ... LOL</p> Prototype2D teaser ... 2009-06-22T00:00:00+03:00 http://szabster.net/2009/06/22/prototype2d-teaser <p>This is a little side project to get my attention away from Lera3D, but also a proof of concept for building an small 2d engine using QT + OpenGL, BOX2D for Physics and irrKLang for the Sound.</p> <p>Features:</p> <ul> <li>Base Actor class with support for tile based animation and multiple layers with z ordering (  done )</li> <li>Texture Manager (all textures reference counted) (done)</li> <li>World Manager ( manages all actors, offers factory methods for easy actor creation, etc ) (done)</li> <li>Sound System via irrKLang ( to be done )</li> <li>Box2D integrate physics with the Base Actor and World classes ( work in progress )</li> <li>other misc. features (blending, etc) (partially done)</li> </ul> <p>So far it's around 4 days of work, I really hope to finish it this weekend, then push it out into an repo over Gitorious or Github with a basic platformer demo game or something.</p> <p>So here is a little teaser:</p> <p><object width="640" height="480"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5277984&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5277984&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480"></embed></object></p> Hitler was a vegetarian. 2009-06-18T00:00:00+03:00 http://szabster.net/2009/06/18/hitler-was-a-vegetarian <p>... don't be like Hitler.</p> <h2><span style="color: #ffff00;"><a title="... don't be like Hitler." href="http://www.supermeatboy.com" target="_blank"><em><strong>SuperMeatBoy.com</strong></em></a></span></h2> Murmurs of Facebook 2009-06-15T00:00:00+03:00 http://szabster.net/2009/06/15/murmurs-of-facebook <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/06/facebook.png"><img class="alignleft size-full wp-image-582" title="facebook" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/06/facebook.png" alt="facebook" width="558" height="75" /></a></p> QtCreator - Murmurs of the Code 2009-06-07T00:00:00+03:00 http://szabster.net/2009/06/07/qtcreator-murmurs-of-the-code <p>QtCreator has a quite strict coding style, but there is one important thing I would like to highlight. The pollution of the header files is minimal ... and when I'm say pollution I'm referring to the inclusion of other header files.</p> <p>If you look at a regular header file from the code base, you will notice stuff like this:</p> <div class="highlight"><pre><code class="cpp"><span class="k">namespace</span> <span class="n">Core</span> <span class="p">{</span> <span class="k">class</span> <span class="nc">someclass</span><span class="p">;</span> <span class="k">namespace</span> <span class="n">Internal</span> <span class="p">{</span> <span class="k">class</span> <span class="nc">anotherclass</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> <span class="k">namespace</span> <span class="p">{</span> <span class="kt">bool</span> <span class="n">debug</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span> <span class="p">}</span> <span class="k">class</span> <span class="nc">MyClass</span> <span class="o">:</span> <span class="k">public</span> <span class="n">Core</span><span class="o">::</span><span class="n">Internal</span><span class="o">::</span><span class="n">anotherclass</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> </code></pre> </div> <p>Instead of doing something like this:</p> <div class="highlight"><pre><code class="cpp"><span class="cp">#include &lt;Core/Internal&gt;</span> <span class="k">using</span> <span class="k">namespace</span> <span class="n">Core</span><span class="o">::</span><span class="n">Internal</span><span class="p">;</span> <span class="kt">bool</span> <span class="n">debug</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span> <span class="k">class</span> <span class="nc">MyClass</span> <span class="o">:</span> <span class="k">public</span> <span class="n">anotherclass</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> </code></pre> </div> <p>Why is the 1st approach important, clean and a lot more self explaining?</p> <p>Now think about that you will include the file containing MyClass in some other file, this will lead to the inclusion of &lt;Core/Internal&gt; and even worse the whole Core::Internal name-space, which can lead to variable collisions and tons of other frustrations.</p> <p>With the first approach, everything is fully incapsulated, and there are virtually no side effects thus leading to a way much cleaner design with almost no extra work.</p> <p>The anonymous name-space does pretty much the same thing (it's more like the good old "static") .</p> <p>Personally I think that this is a very very good practice, regardless of the actual size of the code base.</p> QtCreator Twitter Plugin 2009-06-06T00:00:00+03:00 http://szabster.net/2009/06/06/qtcreator-twitter-plugin <p>I pushed out an Twitter status updater plugin for QtCreator today, you can select some text in the editor then press Alt+C followed by Alt+U, and there you go :)</p> <p style="text-align: center;"><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/06/config.jpg" target="_blank"><img class="size-thumbnail wp-image-564 aligncenter" title="config" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/06/config-400x286.jpg" alt="config" width="400" height="286" /></a></p> <p>It is available in my forked repository:</p> <p>UPDATE: Sep 18, 2009 -- I REMOVED THE FORKED REPO, THE SOURCE CODE IS AVAILABLE ON REQUEST!</p> Qt Creator - best thing since sliced bread 2009-05-31T00:00:00+03:00 http://szabster.net/2009/05/31/qt-creator <p>Today, I started again my never ending race for the perfect cross platform IDE (duhh, instead of working on Lera :P), and stumbled across Qt Creator. I was quite sceptical while waiting for the "binary" version to install, but once it was installed BOOOOOOMMM!!!!</p> <p>QtCreator is fully modular, everything is a plugin and it has an pleasant and very very clean interface, besides that its speed is comparable to a naked GEdit with a few plugins ( this is what I was using until now ).</p> <p>Then I did a simple project and included (without generating any tag database etc ), some files form Lera3D and the code completion worked out of the box (CodeLite is close to this, but I hate the Scintilla editor component).</p> <p>After this, it was clear ... I WANT THE SOURCE code ... haha, so I headed over Gitorious and "forked" (cloned) the repository in order to make my own changes and eventually submit them to the "official" master branch.</p> <p>The first thing I added is a persistent settings dialog for the "Generic Project" wizard, in order to allow to follow symbolic links when creating a new project.</p> <p>I like to keep my "framework" separately from the actual projects using the "framework", this way when something changes in the framework I don't need to bother updating the various copies, this is where Symbolic Links come into the scene.</p> <p><a title="Click to see the bigger version." class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/05/screenshot.png" target="_blank"><img class="size-thumbnail wp-image-549" title="Click to see the bigger version." src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/05/screenshot-400x132.png" alt="Click to see the bigger version." width="400" height="132" /></a></p> <p>Another thing I would like to add (in the near future) is the ability to "add directories" to a project instead of just manually selecting files.</p> <p>Here is my "cloned" repository, where I will push all my changes.</p> <p><a title="Click to go and fork!" href="http://gitorious.org/~icebreaker/qt-creator/qt-creator-personal" target="_blank"></a>UPDATE: Sept 17, 2009 -- REMOVED THE FORK!</p> <p>The original "master" branch is here:</p> <p><a title="Original Qt Creator Master Branch!" href="http://qt.gitorious.org/qt-creator/qt-creator" target="_blank">http://qt.gitorious.org/qt-creator/qt-creator</a></p> <p>Oh, and I "ported" over the "Desert" color scheme from Gedit, and set the default font to Droid Sans Mono ( but you already noticed that from the screenshot ) :P</p> <p>From now on Qt Creator is definitely my IDE of choice, even though I don't have any QT based projects at the moment.</p> <p>It can work with Scons as well, all we need is a simple "wrapper" makefile like this:</p> <div class="highlight"><pre><code class="basemake"><span class="nf">all</span><span class="o">:</span> <span class="err">scons</span> <span class="err">-Q</span> <span class="err">-j3</span> <span class="nv">nocolors</span><span class="o">=</span>1 clean: scons -c <span class="nv">nocolors</span><span class="o">=</span>1 distclean: clean realclean: clean .PHONY: all clean distclean realclean </code></pre> </div> <p><em>(Qt Creator seems to be the only viable enemy to Visual Studio at the time being)</em></p> <p><em>Update: Nov 17, 2009</em></p> <p><em><a title="Desert" href="http://dl.dropbox.com/u/1012887/www/szabster.net/files/desert.xml" target="_blank">Desert Theme Port</a></em></p> <p><em><a title="Oblivion" href="http://dl.dropbox.com/u/1012887/www/szabster.net/files/oblivion.xml" target="_blank">Oblivion Theme Port</a> </em></p> Game Developer Magazine 2009-05-09T00:00:00+03:00 http://szabster.net/2009/05/09/game-developer-magazine <p>Game Developer Magazine, is just purely awesome, the quality of the content is just breath taking, worth every single cent, so yesterday for just 19.95$, I subscribed ( 6 months ) and got my "bonus issues" :)</p> <p style="text-align: center;"><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/05/0904gd_cover_576x780.jpg"><img class="size-thumbnail wp-image-540 aligncenter" title="0904gd_cover_576x780" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/05/0904gd_cover_576x780-295x399.jpg" alt="0904gd_cover_576x780" width="295" height="399" /></a></p> <p style="text-align: left;">I'll definitely be a regular subscriber after the current one is over.</p> <p style="text-align: left;">PS: Already started devorating the issues from April :))</p> C++ like format for std::string ... 2009-05-02T00:00:00+03:00 http://szabster.net/2009/05/02/c-like-format-for-stdstring <p>Now, the 'quite heavy' BOOST libs have some nice format(), and also MFC has it, but not the poor STL string container.</p> <p>I came up with a very nice and compact way to do this, and thought that I should share it.</p> <p>So, here we are, let's see the code ...</p> <div class="highlight"><pre><code class="cpp"><span class="cp"> #include &lt;cstdarg&gt; </span> </code></pre> </div> <p>... the format ...</p> <div class="highlight"><pre><code class="cpp"><span class="cp">#define BUFF_SIZE 4096</span> <span class="n">string</span> <span class="n">format</span><span class="p">(</span> <span class="k">const</span> <span class="n">string</span> <span class="o">&amp;</span><span class="n">msg</span><span class="p">,</span> <span class="p">...</span> <span class="p">)</span> <span class="p">{</span> <span class="n">va_list</span> <span class="n">ap</span><span class="p">;</span> <span class="kt">char</span> <span class="n">text</span><span class="p">[</span><span class="n">BUFF_SIZE</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">0</span><span class="p">,};</span> <span class="n">va_start</span><span class="p">(</span><span class="n">ap</span><span class="p">,</span> <span class="n">msg</span><span class="p">);</span> <span class="n">vsnprintf</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">BUFF_SIZE</span><span class="p">,</span> <span class="n">msg</span><span class="p">.</span><span class="n">c_str</span><span class="p">(),</span> <span class="n">ap</span><span class="p">);</span> <span class="n">va_end</span><span class="p">(</span><span class="n">ap</span><span class="p">);</span> <span class="k">return</span> <span class="n">string</span><span class="p">(</span> <span class="n">text</span> <span class="p">);</span> <span class="p">}</span> </code></pre> </div> <p>BUFF_SIZE as 4096 should be enough, in most cases, but of course it can be tweaked as necessary, the rest is just the normal way to play with functions which have variable number of arguments.</p> <p>vsnprintf have been used in order to avoid buffer overflows and the like.</p> <div class="highlight"><pre><code class="cpp"><span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">format</span><span class="p">(</span><span class="n">string</span><span class="p">(</span><span class="s">&quot;%s hello&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="n">string</span><span class="p">(</span><span class="s">&quot;world %d&quot;</span><span class="p">),</span><span class="s">&quot;this is&quot;</span><span class="p">,</span><span class="mi">13</span><span class="p">)</span><span class="o">&lt;&lt;</span><span class="n">endl</span><span class="p">;</span> </code></pre> </div> <p>From the one liner above it is clearly visible, the cleanness and elegance of this approach.</p> <p>Neat isn't it?</p> <p>PS: I like the new Syntax Highlighter plug-in :P</p> Pittsburgh Penguins Game 2009-04-29T00:00:00+03:00 http://szabster.net/2009/04/29/pittsburgh-penguins-game <p>double ezariks??!! ... where is the third ... ???</p> <p><a href="http://www.flickr.com/photos/ijustine/3485405184/" title="Pittsburgh Penguins Game" class="image"> <img src="http://farm4.static.flickr.com/3298/3485405184_23085a2595_m.jpg" width="240" height="180" /> </a></p> Panda Neck Pillow 2009-04-29T00:00:00+03:00 http://szabster.net/2009/04/29/panda-neck-pillow <p><a href="http://www.flickr.com/photos/ijustine/3485365848/" title="Panda Neck Pillow" class="image"> <img src="http://farm4.static.flickr.com/3548/3485365848_5dc6eafcb7_m.jpg" width="240" height="180" alt="Panda Neck Pillow" /> </a></p> OpenSolaris -- Part X 2009-04-12T00:00:00+03:00 http://szabster.net/2009/04/12/opensolaris-part-x <p>I have <strong><em>OpenSolaris 2008.11</em></strong> installed on an external HDD, and boot it up from time to time, when there is some time to loose.</p> <p>Today, I went over to NVIDIA Developers area and grabbed the Solaris version of the Cg Toolkit, which is a nice Solaris package, installs and works flawlessly under OpenSolaris, except the example programs won't compile because of the evil GLUT.</p> <p>I tried to compile GLUT 3.7, but after 2 hours of pain I gave up, and installed the freeglut which is available in the Blastwave repo. In the next few lines I will illustrate how to get one of the samples compiling and working with freeglut without much pain.</p> <p>The best way to go is to copy the examples directory into your home directory or desktop for convenience. I will modify the examples/OpenGL/basic/26_toon_shadding sample program.</p> <p>First we need to edt 26_toon_shading.c in order to change the <em><strong>"GL/GLUT.h"</strong></em> include to <em><strong>"GL/freeglut.h"</strong></em>, and after this modifying the Makefile.</p> <p>First of all I added :</p> <div class="highlight"><pre><code class="basemake"><span class="nv">CFLAGS</span> <span class="o">+=</span> -I<span class="s2">&quot;/opt/csw/include&quot;</span> </code></pre> </div> <p>This is required because the Freeglut package will install there, and modified <strong><em>CLINKFLAGS</em></strong> by appending <em><strong>-L/opt/csw/lib</strong></em> so it looks like this:</p> <div class="highlight"><pre><code class="basemake"><span class="nv">CLINKFLAGS</span> <span class="o">+=</span> -L/usr/X11R6/lib64 -L/usr/X11R6/lib -L/opt/csw/lib </code></pre> </div> <p>After this, a regular 'make' will do the job, but when running the executable there will be an error saying that the freeglut shared object cannot be found. This is fixed by prepending the <strong><em>/opt/csw/lib</em></strong> to the <em><strong>LD_LIBRARY_PATH</strong></em> environment variable with the following shell command:</p> <div class="highlight"><pre><code class="bash"><span class="nb">export </span><span class="nv">LD_LIBRARY_PATH</span><span class="o">=</span>/opt/csw/lib:<span class="nv">$LD_LIBRARY_PATH</span> </code></pre> </div> <p>... there you go :D up and running.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/04/screen.jpg"> <img class="alignnone size-thumbnail wp-image-485" title="screen" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/04/screen-400x330.jpg" alt="screen" width="400" height="330" /> </a></p> <p>Personally, I think that it's an good idea installing all the 3rd party stuff inside the /opt dir instead of /usr or /usr/local, which seems to be a common practice in the existing Linux communities, of course this is more or less a matter of tastes.</p> <p><em>"Gustibus non, disputatum est.</em>"</p> <p>PS:  can't wait for the native Skype port, especially for OpenSolaris :D</p> C++ like 'string' transform ... 2009-04-05T00:00:00+03:00 http://szabster.net/2009/04/05/c-like-string-transform <p>All we need is a naked class with the<strong> () operator</strong> overloaded to execute and wrap the "real" <em><strong>tolower</strong></em>.</p> <div class="highlight"><pre><code class="cpp"><span class="k">struct</span> <span class="n">toLower</span> <span class="p">{</span> <span class="kt">int</span> <span class="k">operator</span><span class="p">()(</span><span class="kt">int</span> <span class="n">ch</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">tolower</span><span class="p">(</span><span class="n">ch</span><span class="p">);</span> <span class="p">};</span> <span class="p">};</span> </code></pre> </div> <p>With this our <em>transform</em> will resume to this <em>beautiful</em> and <em>elegant</em> line ...</p> <div class="highlight"><pre><code class="cpp"> <span class="n">transform</span><span class="p">(</span> <span class="n">s</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">s</span><span class="p">.</span><span class="n">end</span><span class="p">(),</span> <span class="n">s</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">toLower</span><span class="p">()</span> <span class="p">);</span> </code></pre> </div> <p>... instead of the very <em>'C like'</em> looking (even if we used C++ like casting):</p> <div class="highlight"><pre><code class="cpp"> <span class="n">transform</span><span class="p">(</span> <span class="n">s</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">s</span><span class="p">.</span><span class="n">end</span><span class="p">(),</span> <span class="n">s</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="p">(</span><span class="kt">int</span><span class="p">(</span><span class="o">*</span><span class="p">)(</span><span class="kt">int</span><span class="p">))</span><span class="n">tolower</span> <span class="p">);</span> </code></pre> </div> <p>Pretty, pretty :D</p> Python and Co. 2009-03-15T00:00:00+02:00 http://szabster.net/2009/03/15/embed-python <p>Last night, I started playing a little bit with embedding python + exposing classes via Boost::Python, because I wanna integrate this kind of functionalities in my 3D engine.</p> <p>Since my system is fully modular, and each sub-system lives in its own shared object ( or dynamic linking library under win32 ), it turned out quite easy to make those python modules as well.</p> <p>(I use Gists @ GistHub to post the source code instead of having it in the post itself, since it's easier to manage over time)</p> <p>Here is some boilerplate code for a sample sub-subsystem header and implementation:</p> <p><script src="http://gist.github.com/79333.js"></script> <script src="http://gist.github.com/79334.js"></script></p> <p>It is clearly visibile that it is a singleton class, hence the getInstance static method. I've also chosen to use the "py" prefix for the actual module name.</p> <p>Now this can be compiled to a nice shared object or dynamic linking library and used right away.</p> <div class="highlight"><pre><code class="bash">g++ LeraSystem.cpp -shared -o pyLeraSystem.so -I/usr/include/python2.6 -lboost_python </code></pre> </div> <p>I provide compile commands for Linux + GCC only, since it is my primary development platform, but this is very similar under Windows, there you one would get two files like pyLeraSystem.dll + pyLeraSystem.lib .</p> <p>Again some boilerplate code and the expected output produced by it here ( cmd -- <em>python pyLeraTest.py</em> ):</p> <p><script src="http://gist.github.com/79339.js"></script> Produced Output:</p> <div class="highlight"><pre><code class="bash">hello world Instance check ... &lt;pyLeraSystem.leraSystem object at 0xb7cb7534&gt; &lt;pyLeraSystem.leraSystem object at 0xb7cb7534&gt; &lt;pyLeraSystem.leraSystem object at 0xb7cb7534&gt; hello world </code></pre> </div> <p>Yayy! With this the singleton thingy was working, but wasn't the end of the journey :) Why? The answer is quite simple, I had  to embed the python interpreter in order to take full advantage of this. <script src="http://gist.github.com/79342.js"></script></p> <p>I already had my sub-system as an shared object (even before exposing anything to python), so I just had to link it to interpreter stub to make the full magic happen between C++ &amp; Python working with truly the same instance of a sub-system.</p> <p>A hack needs to be done here by doing an symbolic link from pyLeraSystem.so to libLeraSystem.so which can be achieved with the following command (assuming that the files are in the current working directory):</p> <p>ln -s pyLeraSystem.so libLeraSystem.so</p> <p>( this is not necessary under Windows, because there the .lib file is used to link against an dynamic linking library )</p> <p>... to compile the embedded python interpreter ...</p> <div class="highlight"><pre><code class="bash"> g++ LeraPythonEmbed.cpp -I/usr/include/python2.6 -L. -lpython2.6 -lm -lLeraSystem -o leraTestEmbed </code></pre> </div> <p>To make it run one more hack is necessary, and that is adjusting the LD_LIBRARY_PATH to include the current working directory with a command like:</p> <div class="highlight"><pre><code class="bash"><span class="nb">export </span><span class="nv">LD_LIBRARY_PATH</span><span class="o">=</span>.:<span class="nv">$LD_LIBRARY_PATH</span> </code></pre> </div> <p>( this is again not necessary under Windows )</p> <p>Also the python script needs to be adjusted a little:</p> <p><script src="http://gist.github.com/79347.js"></script></p> <p>Now running ./leraTestEmbed produces the following output:</p> <div class="highlight"><pre><code class="bash">this message was <span class="nb">set </span>from C++ and printed by Python this message was <span class="nb">set </span>from Python and printed by C++ </code></pre> </div> <p>With this I reached my final goal, python and c++ fully interacting, using the same singleton sub-system class at runtime.</p> <p>The approach of using modules instead of exposing classes, etc. directly from the embed interpreter adds a great deal of flexibility, and makes exposing existing plugins to python using Boost::Python piece of cake.</p> <p>In the real life scenario ( my 3d engine and framework ) the actual sub-subsystems are not linked against the stub, they are dynamically loaded, and instantiated once in their full lifetime, but this is pretty much the same story.</p> <p>Uffff, 548 words at the moment of typing this ... duhhh, I really need to get a life :))</p> Ubuntu Jaunty 9.04 Alpha 4 2009-02-15T00:00:00+02:00 http://szabster.net/2009/02/15/ubuntu-jaunty-904-alpha-4 <p>I did a clean-up on my system and decided to wipe out everything and do a clean install, but instead of the stable 8.10, I installed Jaunty 9.04 alpha 4.</p> <p>At first this didn't seemed to be a very wise decision, but later on it turned out quite the opposite.</p> <p>There are issues with Video + Sound out of the box @ the moment. The sound can be easily fixed by re-compiling alsa, as usual, but with the video part largely depends on X11 and the proprietary NVIDIA drivers.</p> <p>nvidia-settings doesn't seem to be working properly, it's something with the metamodes, of course I had my old xorg.conf, so my dual monitor setup works 98% great, the remaining 2% will be fixed with further updates ... I hope!</p> <p>The sound quality is a whole lot better, I wouldn't be wrong if I would say that it was taken to a completely new dimension, so thumbs up for this.</p> <p>The horizontal "volume slider" is quite sexy as well, in the Gnome version bundled with this release.</p> <p>If you have lots of music like I do in the MP3 format, it's worth installing the <strong><em>"Fluendo"</em></strong> mp3 decoder GStreamer plugin, to get the most out of sound quality.</p> <p>For the first time since the very first Ubuntu release, I didn't had to remove the "network manager" in order to make my wireless work flawlessly with WPA2-TKIP.</p> <p>Anyway I'm most impressed by the improved 'font rendering', it's getting quite close to the smoothed and antialised font look popular and well know from MacOSX. Good job here ;)</p> <p><img class="alignnone size-medium wp-image-422" title="font-rendering-ubuntu" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/02/font-rendering-ubuntu-500x236.png" alt="font-rendering-ubuntu" width="500" height="236" /></p> <p><strong>Font</strong> : <em>Droid Sans Mono</em></p> <p><strong>GEdit Theme</strong>: <em>Django</em></p> <p>There is a lot of buzz about the blazing fast boot time, but yeah, with ext4 partitions it's about 10-14 seconds on my modest system ( dual core @ 1,8ghz, 2GB ram, and 120gb 5400 rpm hdd ) .</p> <p>In overall 9.04 alpha 4 is looking rock solid and a lot more responsive, it's really really fast.</p> <p>I also installed the themes, etc. from "Ubuntu Satanic Edition" for Intrepid, so here is a screenshot :)</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/02/desktop.jpg"><img class="alignnone size-thumbnail wp-image-423" title="desktop" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/02/desktop-400x132.jpg" alt="desktop" width="400" height="132" /></a></p> <p>To be continued ...</p> Mystic Mine Demo 2009-02-03T00:00:00+02:00 http://szabster.net/2009/02/03/mysticmine <p>Mystic Mine finally arrived .... hooorraaaay!</p> <p><img class="alignnone size-thumbnail wp-image-412" title="startup" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/02/startup-400x300.jpg" alt="startup" width="400" height="300" /></p> <p><img class="alignnone size-thumbnail wp-image-413" title="gameplay" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2009/02/gameplay-400x300.jpg" alt="gameplay" width="400" height="300" /></p> <p>Get the demo <a title="Get it here!" href="http://www.koonsolo.com/mysticmine/" target="_blank">here</a> .</p> Basic Terrain 2009-01-06T00:00:00+02:00 http://szabster.net/2009/01/06/basic-terrain <p>Here is a very 1st version of my 'terrain engine' which is part of Lera3D Game engine and Framework, thrown together in a few minutes.</p> <p><object width="640" height="488"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2731730&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=2731730&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="488"></embed></object></p> <p>Sorry for the flickering video, but , I'll have to find a better recorder than "Record My Desktop".</p> Scons output colorizer 2008-12-15T00:00:00+02:00 http://szabster.net/2008/12/15/scons-output-colorizer <p>I put together a nice little project for customizing and colorizing <a title="Get Scons!" href="http://www.scons.org" target="_blank">SCons</a>'s output.</p> <p>It can be found right <a title="Go, go Gadget!" href="http://code.google.com/p/scolorizer/" target="_blank">here</a> .</p> Hot Babe 2008-11-30T00:00:00+02:00 http://szabster.net/2008/11/30/hot-babe <blockquote> <h2>What's Hot-Babe?</h2> Hot-babe is a small graphical utility which displays the system activity in a very special way. When the CPU is idle, it displays a dressed girl, and when the activity goes up, as the temperature increases, the girl begins to undress, to finish totally naked when the system activity reaches 100%. Of course, if you can be shocked by nudity, don't use it!</blockquote> <p>Screenshot with 0% CPU utilization :</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/11/hb.png"><img class="alignnone size-thumbnail wp-image-389" title="hb" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/11/hb.png" alt="" width="245" height="339" /></a></p> <p>Screenshot with 100% CPU utilization (NSFW) :</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/11/hb_nsfw.png"><img class="alignnone size-thumbnail wp-image-390" title="hb_nsfw" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/11/hb_nsfw.png" alt="" width="201" height="334" /></a></p> <p>( while compiling Blender with 4 jobs "scons -j4" )</p> <p>Get it <a title="Get Hot babe here!" href="http://dindinx.net/hotbabe/" target="_blank">here</a> .</p> <p>Pretty cool, but it's gets boring after a while, even though it's a cool way to spice up your desktop.</p> <p>Enjoy :)</p> <blockquote></blockquote> vte_terminal_set_alternate_screen_scroll 2008-11-01T00:00:00+02:00 http://szabster.net/2008/11/01/vte_terminal_set_alternate_screen_scroll <p>I upgraded to Intrepid last night, and it broke my gnome-terminal. So after some digging, etc. here is what I did to make it work:</p> <div class="highlight"><pre><code class="bash">wget http://ftp.gnome.org/pub/gnome/sources/vte/0.17/vte-0.17.4.tar.gz tar xzvf vte-0.17.4.tar.gz <span class="nb">cd </span>vte-0.17.4 wget http://patches.ubuntu.com/v/vte/extracted/93_add_alt_screen_scroll_toggle.patch patch -p1 &amp;lt; 93_add_alt_screen_scroll_toggle.patch ./configure make make install </code></pre> </div> <p>... and BOOM, now it should work since the method is there :)</p> <p>Enjoy :)</p> <p><strong>UPDATE: 2/26/2009</strong></p> <p>The latest available version of the VTE library should be downloaded instead of the old 0.17.4 from <a title="Get VTE!" href="http://ftp.gnome.org/pub/gnome/sources/vte" target="_blank">here</a> .</p> Autumn ... 2008-10-17T00:00:00+03:00 http://szabster.net/2008/10/17/autumn <p>Errrmm ... nothing serious ... this is the result of some late night hacking with some coke, using an early version of my 3D engine codename 'Lera3D' :)</p> <p><object width="640" height="462"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=1987969&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=1987969&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="462"></embed></object></p> Bitjam Music Diskz 2008-10-12T00:00:00+03:00 http://szabster.net/2008/10/12/bitjam-music-diskz <p>Music Diskz are core part of the 'demo scene'. Here are two .... ermmm actually three of my new favorites :D</p> <p><strong>Bitjam Vol. 1.1</strong></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/10/bitjam_cover.jpg"><img class="alignnone size-thumbnail wp-image-373" title="Bitjam Cover" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/10/bitjam_cover-400x262.jpg" alt="" width="400" height="262" /></a></p> <p>This is quite a big download, 657229824 bytes = 626.8 mega bytes. Grab it <a title="Grab it!" href="http://pouet.net/prod.php?which=31658" target="_blank">here</a> .</p> <p>( the 3D cover preview was made with the DVD-Cover python script for GIMP )</p> <p><strong>Bitjam RMX 001</strong></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/10/bitjam_rmx.jpg"><img class="alignnone size-thumbnail wp-image-374" title="bitjam_rmx" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/10/bitjam_rmx-400x250.jpg" alt="" width="400" height="250" /></a></p> <p>No strings attached, this one is still big ... around 137 mega bytes. Grab it <a title="Grab it!" href="http://pouet.net/prod.php?which=51219" target="_blank">here</a> .</p> <p><strong>Jailhouse Voices</strong></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/10/jailhouse.jpg"><img class="alignnone size-thumbnail wp-image-375" title="jailhouse" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/10/jailhouse-400x300.jpg" alt="" width="400" height="300" /></a></p> <p>( don't forget about the F9 - F10 trick during the "intro" if you wanna extract all the tracks )</p> <p>Again, no strings attached, ufff ... a bit smaller ... around 74 mega bytes. Grab it <a title="Grab it!" href="http://www.pouet.net/prod.php?which=51760" target="_blank">here</a> .</p> <p>Enjoy indefinitely :)</p> Frogatto 2008-10-07T00:00:00+03:00 http://szabster.net/2008/10/07/frogatto <p><em>"Frogatto is an old-style platform game, starring an anthropomorphic frog!" </em></p> <p>Linux is officially not supported, but it works perfectly with some slight modifications of the "Makefile".</p> <p>I checked out the latest version from the SVN, and modified the make file so it looks like this:</p> <div class="highlight"><pre><code class="bash">svn checkout http://frogatto.googlecode.com/svn/trunk/ frogatto <span class="nb">cd </span>frogatto vim Makefile </code></pre> </div> <div class="highlight"><pre><code class="basemake"><span class="nv">objects</span> <span class="o">=</span> background.o character.o character_type.o color_utils.o custom_object.o custom_object_functions.o custom_object_type.o draw_number.o draw_scene.o draw_tile.o editor.o entity.o filesystem.o fluid.o font.o formula.o formula_function.o formula_tokenizer.o frame.o geometry.o item.o item_type.o joystick.o key.o level.o level_logic.o level_object.o load_level.o main.o message_dialog.o preferences.o preprocessor.o prop.o raster.o sound.o string_utils.o surface_cache.o surface_formula.o surface.o texture.o tile_map.o variant.o wml_node.o wml_parser.o wml_utils.o wml_writer.o <span class="nv">formula_test_objects</span> <span class="o">=</span> filesystem.o formula_function.o formula_tokenizer.o string_utils.o variant.o wml_node.o wml_parser.o wml_utils.o wml_writer.o %.o : src/%.cpp g++ -g -O2 -I/usr/local/include/boost-1_34 -I/usr/include/SDL -I/usr/X11R6/include -D_GNU_SOURCE<span class="o">=</span>1 -D_REENTRANT -Wnon-virtual-dtor -Wreturn-type -fthreadsafe-statics -c <span class="nv">$&lt;</span> game: <span class="k">$(</span>objects<span class="k">)</span> g++ -g -O2 -L/usr/lib -L/usr/X11R6/lib -lX11 -D_GNU_SOURCE<span class="o">=</span>1 -D_REENTRANT -Wnon-virtual-dtor -Wreturn-type -L/usr/lib -lSDLmain -lSDL -lGL -lGLU -lSDL_image -lSDL_ttf -lSDL_mixer -lboost_regex -lboost_thread-mt -fthreadsafe-statics *.o -o game formula_test: <span class="k">$(</span>formula_test_objects<span class="k">)</span> g++ -O2 -g -I/usr/include/SDL -D_GNU_SOURCE<span class="o">=</span>1 -D_REENTRANT -DUNIT_TEST_FORMULA -Wnon-virtual-dtor -Wreturn-type -L/usr/lib -lSDL -lGL -lGLU -lSDL_image -lSDL_ttf -lSDL_mixer -lboost_regex src/formula.cpp <span class="k">$(</span>formula_test_objects<span class="k">)</span> -o <span class="nb">test</span> clean: rm *.o game </code></pre> </div> <div class="highlight"><pre><code class="bash">:wq </code></pre> </div> <p>Of course you will need SDL, SDL_Image, SDL_ttf, SDL_mixer and Boost Regexp and Thread in order to successfully compile it, since there is no configure script at the moment.</p> <p>Basically all I did is removing the '-framework' paramters and modifying the SDL include and lib paths.</p> <div class="highlight"><pre><code class="bash">make ./game </code></pre> </div> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/10/screenshot-game.jpg"> <img class="alignnone size-thumbnail wp-image-360" title="screenshot-game" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/10/screenshot-game-400x300.jpg" alt="" width="400" height="300" /> </a></p> <p>Enjoy!</p> Sphere Cubes 2008-10-02T00:00:00+03:00 http://szabster.net/2008/10/02/sphere-cubes <p>The "<a title="Holograms" href="http://holograms.untergrund.net/" target="_blank">Holograms</a>" demo group released a demo named "Temptation" at SceneCon 2008, in which there was an very very nice looking yet simple effect.</p> <p>Here you can see this "Sphere Cubes" effect using my 3D engine, codenamed 'Lera3D'.</p> <p>( the guys left in the code for this, so I just made it more object oriented and C++ like, the heritage of Delphi (Object Pascal) is clearly visible in their code -- I'm saying this being an Delphi developer myself too for a long time )</p> <p><object width="640" height="360"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=1862776&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=1862776&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=FF7700&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360"></embed></object></p> <p>I'm also planning to take this further, by making the whole effect to "pulse" on music, and adding a few post processing effects like motion and radial blur, just to name a few, eventually making a basic music player out of it.</p> <p>Since "Lera3D" is not open source yet, I'm providing the source code only for the "client". You can see the source code by clicking <a title="Source Code!" href="http://dl.dropbox.com/u/1012887/www/szabster.net/files/cubes.cpp" target="_blank">here</a> .</p> <p>More on this later ...</p> Epiphany + WebKit = meh{} 2008-09-22T00:00:00+03:00 http://szabster.net/2008/09/22/epiphany-webkit-meh <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/about_epiphany.jpg"><img class="size-full wp-image-339 aligncenter" title="about_epiphany" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/about_epiphany.jpg" alt="" width="446" height="262" /></a></p> <p>I'm one of those who are waiting for the Linux version of Chrome. I downloaded Chrome and even compiled and ran the executable which tests the sub-systems, amazing! lol</p> <p>Today, I grabbed Epiphany and Webkit trying to see if I can get something similar to Chrome ... lol well, they both compiled, etc, but it's not really stable. Maybe because of the nightly build of WebKit, or maybe because Epiphany's Webkit support is <em>still</em> experimental.</p> <p>Compiling WebKit took around 30 minutes on my Dual Core @ 1.8ghz ... what a monster!!!</p> <p>In overall, it's really fast and the rendering is good as far as WebKit can go with the rendering, the fonts are a bit crappy though, with both the FreeType and Pango backend.</p> <p>I think that I'll give it another try later on ... lol until then viva Firefox 3.0, and waiting for Chrome :D</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/linux_games_epiphany.jpg"><img class="alignnone size-thumbnail wp-image-340" title="linux_games_epiphany" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/linux_games_epiphany-400x224.jpg" alt="" width="400" height="224" /></a></p> <p>Happy Compiling! :)</p> The Free Software Song 2008-09-13T00:00:00+03:00 http://szabster.net/2008/09/13/the-free-software-song <p>Just for those who never got a chance / patience to listen to it :)) :P</p> <p><em><strong>The Song</strong></em></p> <p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/xSkCny-HtTw&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/xSkCny-HtTw&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p> <p><em><strong>The Lyrics</strong></em></p> <blockquote>Join us now and share the software; You'll be free, hackers, you'll be free. x2 Hoarders can get piles of money, That is true, hackers, that is true. But they cannot help their neighbors; That's not good, hackers, that's not good. When we have enough free software At our call, hackers, at our call, We'll kick out those dirty licenses Ever more, hackers, ever more. Join us now and share the software; You'll be free, hackers, you'll be free. x2</blockquote> <p>More info at <a title="The Free Software Song" href="http://en.wikipedia.org/wiki/Free_Software_Song" target="_blank">Wikipedia.org</a> :)</p> CodeLite 2008-09-10T00:00:00+03:00 http://szabster.net/2008/09/10/codelite <p>Today I found CodeLite, which seems to be a nice IDE. I compiled the latest version from the SVN, but haven't tested it yet. I'll write more about it later ...</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/screenshot-codelite.jpg"><img class="alignnone size-thumbnail wp-image-331" title="screenshot-codelite" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/screenshot-codelite-400x225.jpg" alt="" width="400" height="225" /></a></p> <p>You can get it <a title="Get it here!" href="http://codelite.org/" target="_blank">here</a> .</p> Simple Video Converter Helper 2008-09-07T00:00:00+03:00 http://szabster.net/2008/09/07/simple-video-converter-helper <p>I made this little script to be able to convert - resize videos easily, without typing in kilometric strings into the terminal.</p> <p>It's not the most elegant script you ever seen, but hey, it works :)</p> <p>As always, make it executable and put it in a safe place like /usr/bin :P</p> <div class="highlight"><pre><code class="bash"><span class="c">#!/bin/bash</span> <span class="c"># Author: Icebreaker</span> <span class="c"># Description: Resize a video to 1280x720 (HD).</span> <span class="c"># I&#39;m using this script to resize videos to 1280x720</span> <span class="c"># ( maintaining the source quality )</span> <span class="c"># which can be posted to Vimeo.com for example and be converted</span> <span class="c"># automatically to a HD quality video.</span> <span class="c">#</span> <span class="c"># This could be done a lot more elegantly ... I&#39;m sure, but it does</span> <span class="c"># the job for me and that&#39;s all what matters :)</span> <span class="c">#</span> <span class="c"># The argument &quot;parsing&quot; is not completely n00b proof :P</span> <span class="c">#</span> <span class="c"># PS: vimeo.com is cool :P</span> <span class="c">#</span> <span class="c"># Requires: ffmpeg</span> <span class="c">#</span> <span class="c"># Public Domain</span> <span class="k">if</span> <span class="o">[</span> <span class="nv">$# </span>-lt 2 <span class="o">]</span> ; <span class="k">then</span> <span class="nb">echo </span>Usage: mkhdv input.video output.video <span class="o">[</span>-t <span class="s2">&quot;some video title&quot;</span><span class="o">]</span> <span class="se">\</span> <span class="o">[</span>-s 1280x720<span class="o">]</span> <span class="nb">exit </span>13 <span class="k">fi</span> <span class="k">if</span> <span class="o">[</span> <span class="nv">$# </span>-eq 4 <span class="o">]</span> ; <span class="k">then</span> <span class="c"># title</span> <span class="k">if</span> <span class="o">[</span> <span class="s2">&quot;$3&quot;</span> <span class="o">=</span> <span class="s2">&quot;-t&quot;</span> <span class="o">]</span> ; <span class="k">then</span> <span class="k"> </span>ffmpeg -i <span class="s2">&quot;$1&quot;</span> -sameq -s 1280x720 -title <span class="s2">&quot;$4&quot;</span> <span class="s2">&quot;$2&quot;</span> <span class="k">else</span> <span class="c"># size</span> <span class="k">if</span> <span class="o">[</span> <span class="s2">&quot;$3&quot;</span> <span class="o">=</span> <span class="s2">&quot;-s&quot;</span> <span class="o">]</span> ; <span class="k">then</span> <span class="k"> </span>ffmpeg -i <span class="s2">&quot;$1&quot;</span> -sameq -s <span class="s2">&quot;$4&quot;</span> <span class="s2">&quot;$2&quot;</span> <span class="k">else</span> <span class="k"> </span><span class="nb">echo </span>Usage: mkhdv input.video output.video <span class="se">\ </span> <span class="o">[</span>-t <span class="s2">&quot;some video title&quot;</span><span class="o">]</span> <span class="o">[</span>-s 1280x720<span class="o">]</span> <span class="nb">exit </span>666 <span class="k">fi</span> <span class="k"> fi</span> <span class="k">else</span> <span class="c"># we have size and title</span> <span class="k">if</span> <span class="o">[</span> <span class="nv">$# </span>-eq 6 <span class="o">]</span> ; <span class="k">then</span> <span class="k"> </span><span class="nv">TITLE</span><span class="o">=</span><span class="s2">&quot;&quot;</span> <span class="nv">SIZE</span><span class="o">=</span><span class="s2">&quot;&quot;</span> <span class="c"># look for title</span> <span class="k">if</span> <span class="o">[</span> <span class="s2">&quot;$3&quot;</span> <span class="o">=</span> <span class="s2">&quot;-t&quot;</span> <span class="o">]</span> ; <span class="k">then</span> <span class="k"> </span><span class="nv">TITLE</span><span class="o">=</span><span class="s2">&quot;$4&quot;</span> <span class="k">fi</span> <span class="k"> if</span> <span class="o">[</span> <span class="s2">&quot;$5&quot;</span> <span class="o">=</span> <span class="s2">&quot;-t&quot;</span> <span class="o">]</span> ; <span class="k">then</span> <span class="k"> </span><span class="nv">TITLE</span><span class="o">=</span><span class="s2">&quot;$6&quot;</span> <span class="k">fi</span> <span class="c"># look for size</span> <span class="k">if</span> <span class="o">[</span> <span class="s2">&quot;$3&quot;</span> <span class="o">=</span> <span class="s2">&quot;-s&quot;</span> <span class="o">]</span> ; <span class="k">then</span> <span class="k"> </span><span class="nv">SIZE</span><span class="o">=</span><span class="s2">&quot;$4&quot;</span> <span class="k">fi</span> <span class="k"> if</span> <span class="o">[</span> <span class="s2">&quot;$5&quot;</span> <span class="o">=</span> <span class="s2">&quot;-s&quot;</span> <span class="o">]</span> ; <span class="k">then</span> <span class="k"> </span><span class="nv">SIZE</span><span class="o">=</span><span class="s2">&quot;$6&quot;</span> <span class="k">fi</span> <span class="k"> if</span> <span class="o">[</span> -z <span class="s2">&quot;$TITLE&quot;</span> <span class="o">]</span> ; <span class="k">then</span> <span class="k"> </span><span class="nv">TITLE</span><span class="o">=</span><span class="s2">&quot;Untitled Video&quot;</span> <span class="k">fi</span> <span class="k"> if</span> <span class="o">[</span> -z <span class="s2">&quot;$SIZE&quot;</span> <span class="o">]</span> ; <span class="k">then</span> <span class="k"> </span><span class="nv">SIZE</span><span class="o">=</span><span class="s2">&quot;1280x720&quot;</span> <span class="k">fi</span> <span class="k"> </span>ffmpeg -i <span class="s2">&quot;$1&quot;</span> -sameq -s <span class="s2">&quot;$SIZE&quot;</span> -title <span class="s2">&quot;$TITLE&quot;</span> <span class="s2">&quot;$2&quot;</span> <span class="k">else</span> <span class="k"> </span>ffmpeg -i <span class="s2">&quot;$1&quot;</span> -sameq -s 1280x720 <span class="s2">&quot;$2&quot;</span> <span class="k">fi</span> <span class="k">fi</span> <span class="nb">echo </span>Done <span class="nb">exit </span>1 </code></pre> </div> Games @ Scene Parties 2008-09-07T00:00:00+03:00 http://szabster.net/2008/09/07/games-scene-parties <p>Today, I've taken a look at the 'Games' on Pouet.net and made a selection of the ones I liked.</p> <p>Here they are, in no particular order ... yeah, my arse! I won't post any links only "production name" + "team name", you can find them at Pouet.net :P</p> <p>Please note that I'm running them under Linux using Wine, just in case you didn't noticed :)</p> <p>I will also include a small analysis on the technologies I believe they are using. Reverse engineering is one of my older hobbies ... lol</p> <p><strong><em>London Game</em> by Team Fragment</strong></p> <p>This is a lovely GTA 3 clone. It's one of the most impressive game <em>demos</em> I've seen @ a Scene Party ... correct me, if I'm wrong :)</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/london_game.jpg"><img class="alignnone size-thumbnail wp-image-300" title="london_game" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/london_game-400x300.jpg" alt="" width="400" height="300" /></a></p> <p>Game Engine: in-house game engine ( proof GSystem.dll ) . A closer exanimation of the DLL Imports revealed that it's using Direct Input (DINPUT8) for input, and OpenGL (also GLU32 is imported) for rendering.</p> <p>Sound System: FMod ( proof fmodex.dll )</p> <p>Physics: NVidia PhysX ( proof PhysXLoader.dll )</p> <p>Other Notes: Uses Zlib for virtual filesystem (proof zwlibapi.dll -- which is probably a wrapper )</p> <p>PAK files have GS extension. This doesn't seem to be a complex format, because I checked out one of the files with a hex editor, and the file "signatures" were there, possibly followed by the offsets to the "real meat" ... You know, data is a sleeping monster, and code is a living monster :) The 1st part seems to be the table of contents.</p> <p>There are two data files "data.gs" and "london.gs" as of now.</p> <p>Signature: GS10 -- this means GS v1.0 most probably</p> <p>The sounds are in WAV format. Most of the textures seem to be either PNG or DDS. There are also ".font" with associated DDS files, which most probably contain the dimensions, positions, etc. of the letters used for text rendering.</p> <p>There are scripts which have the ".script" extension, vertex and pixel shaders have ".vertex", and ".fragment" respectively.</p> <p>Material (script) files have the extension ".material" .</p> <p>At the end of the PAK files, there is a text which says: "If you are reading this, you have no life!" .</p> <p>This amused me a lot ... lol, now I'm scared to death ... haha!</p> <p>It has an external configuration utility named Config.exe, but it definitely worths checking out the "userdata/settings.script", especially if you wanna enable "debug" mode and a few other interesting stuff, though setting "motion blur" to true, didn't take any effect.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/london_game2.jpg"><img class="alignnone size-thumbnail wp-image-301" title="london_game2" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/london_game2-400x290.jpg" alt="" width="400" height="290" /></a></p> <p>I didn't go any further, and waiting for new updated versions as promised in the "readme" file :)</p> <p><strong><em>Sylph Wind</em> by Pieslice Productions</strong></p> <p>This is a really cool shoot-em up arcade game, really immersing, nice graphics, very good music, and good game-play .</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/sylph_wind.jpg"><img class="alignnone size-thumbnail wp-image-303" title="sylph_wind" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/sylph_wind-400x300.jpg" alt="" width="400" height="300" /></a></p> <p>Game Engine: in-house game engine, statically linked, so there is no separate <em>engine</em> dynamic library. Analyzing the imports, this also seems to be using Direct Input for Input (DINPUT8) and OpenGL (also GLU32 is imported ) for rendering.</p> <p>Sound System: FMod ( proof fmodex.dll, and also credited in the "Manual.html" )</p> <p>Other Notes: Uses the Cg Shader Technology from NVidia ( proof cg.dll and cggl.dll, and also credited in the "Manual.html" ) instead of pure GLSL .</p> <p>Some of the resources are exposed like ...</p> <p>The "devscripts" directory contains the "script" files which manipulate different variables, setup "spawn points" or facilitate the loading of content arrays with predefined presets.</p> <p>The "devshaders" directory obviously contains the "Cg Shader" script files.</p> <p>The level file have "lvl" extension and seems to have a long signature "pie_sylphengine_level3Ddata_v001d" .</p> <p>Other resources like textures, sounds reside in the "data" directory as PAK files with "pr" extension. The signature of these files is "_PieResource02" . At the 1st glance i couldn't indentify any clearly visible patterns like file headers, etc.</p> <p>It also imports the ChooseColor, GetOpenFileName and GetSaveFileName from comdlg32, which makes me think that a some sort of "level editor" is also included somewhere, but that's just a guess, because as always, I didn't go any further :)</p> <p>This is a good game, worth playing :)</p> <p><strong><em>Kiuasturvat feat Vastaisku</em> by Sx Cracked by Taat</strong></p> <p>This is the typical "rag-doll" type game. No strings attached.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/kiuasturvat.jpg"><img class="alignnone size-thumbnail wp-image-308" title="kiuasturvat" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/kiuasturvat-400x300.jpg" alt="" width="400" height="300" /></a></p> <p>Game Engine: Irrlicht</p> <p>Sound System: Bass</p> <p>Other Notes: N/A :P</p> <p><strong><em>Flipout</em> by Mikkosoft Productions</strong></p> <p>Flipout is breakout game with pinball style controls. This is an innovative concept, IMHO ... but at first it's a bit difficult to control.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/flipout.jpg"><img class="alignnone size-thumbnail wp-image-310" title="flipout" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/flipout-400x300.jpg" alt="" width="400" height="300" /></a></p> <p>It has a Linux port, and obviously uses a great deal of open source libraries.</p> <p>Game Engine: in-house game engine. Obviously it uses OpenGL for rendering. ( no GLU32 this time )</p> <p>Sound System: OpenAL with Ogg Vorbis (proof libvorbis-0.dll, OpenAL32.dll, wrap_oal.dll )</p> <p>Other Notes: Uses DevIL ( DevIL.dll ) for (image) texture loading loading. Also uses libsigc++ (proof libsigc-2.0-0.dll) which is typesafe callback system for standard C++ .</p> <p>Uses a virtual filesystem to store most of it's data. The extension of the PAK file is ".data" . There aren't any clearly identifiable signatures, etc. inside, but again I didn't go any further :)</p> <p><strong><em>Frontal Assault</em> by Eturintama</strong></p> <p>No comments, but not X-rated, neverthless interesting and spicy :P</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/frontal_assault.jpg"><img class="alignnone size-thumbnail wp-image-316" title="frontal_assault" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/frontal_assault-400x300.jpg" alt="" width="400" height="300" /></a></p> <p>Game Engine: in-house game engine. It uses GLUT32 ( proof glut32.dll ) and obviously OpenGL for rendering.</p> <p>Sound System: FMod ( proof fmod.dll )</p> <p>Other Notes: there is no virtual file system, so all the data files are exposed.</p> <p><strong><em>A Tribute To The Rolling Boulder</em> by Kloonigames</strong></p> <p>This is a nice 2D platform game.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/tribute.jpg"><img class="alignnone size-thumbnail wp-image-317" title="tribute" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/tribute-400x300.jpg" alt="" width="400" height="300" /></a></p> <p>Game Engine: in-house game engine, uses SDL for rendering.</p> <p>Sound System: SDL_mixer</p> <p>Physics: Box2D</p> <p>Other Notes: Uses SDL_Image for texture loading, and SDL_rotozoom for texture manipulation. There is no virtual filesystem all the data can be found in the "data" directory.</p> <p>It has a nice "autoexec.txt" script file, which setups key bindings, pre-loads sound effects, etc. It also seems to have it's own in-house GUI framework. ( some of these is mentioned in the "readme.html" )</p> <p><strong><em>Dust</em> by Sandbox Software</strong></p> <p>I was talking about no particular order, but I should have mentioned this one right after the 1st two as a 3rd. :P</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/dust.jpg"><img class="alignnone size-thumbnail wp-image-319" title="dust" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/dust-400x300.jpg" alt="" width="400" height="300" /></a></p> <p>Game Engine: in-house game engine. Uses SDL + OpenGL for rendering ( imports GLU32 ). It seems to import GLUT just for gluSolidSphere , also uses GLEW for extension handling. There are lots of XML files,  because of the Collada file format ( proof FColladaR.dll, FColladaD.dll ) .</p> <p>Sound System: FMod (proof fmodex.dll, and fmod_event.dll )</p> <p>Physics: Ode ( proof ode.dll )</p> <p>Networking: Raknet a cross-platform C++ game networking engine. ( proof RakNet.dll )</p> <p>Other Notes: uses SDL_image for (image) texture loading. The config.ini worth checking :)</p> <p>The shaders are GLSL, textures mostly in PNG, sounds and effects in MP3 and WAV. Alos there are few FMOD specific files for sounds / sound effects.</p> <p>Again, as always I didn't go any further.</p> <p><strong><em>TTS Demo</em> by Aukiogames</strong></p> <p>This is another GTA clone, with a huge playable level, and lovely graphics.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/tts1.jpg"><img class="alignnone size-thumbnail wp-image-320" title="tts1" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/tts1-400x300.jpg" alt="" width="400" height="300" /></a></p> <p>Game Engine: in-house game engine, using DirectX8 for rendering and input, it also seems to be written in Delphi 7 which means that it's Object Pascal :) niceeee :) ... just check those nice TParticleSystem, etc. with an hex editor ;) :P</p> <p>Sound System: Fmod ( proof fmod.dll )</p> <p>Other Notes: again there is no virtual filesystem, but it does have a proprietary model format, with the generic "obj" extension.</p> <p>Textures are in DDS, sounds and music in WAV, MP3 and OGG ... Scripts have the extension "tsl" and the language seems to be a subset of Pascal, combined with some PHP.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/tts2.jpg"><img class="alignnone size-thumbnail wp-image-321" title="tts2" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/09/tts2-400x300.jpg" alt="" width="400" height="300" /></a></p> <p>I stopped right here!</p> <p>Uffff, this was a long long journey, it took my whole Sunday afternoon ... :) There were a few other games, but mostly they were seriously lacking quality or just failed to run reasonably.</p> <p>I think that these prove that Indie Game Development do exists, and it is possible for a small team to create really nice games, even if some are just "tech demos", showcasing the engines behind :)</p> <p>Also, this post has more than 1285 words now, so probably I should stop!!!</p> <p>Be nice, and happy coding or gaming !!!</p> Girl Of The Day - Stephie Coplan 2008-09-06T00:00:00+03:00 http://szabster.net/2008/09/06/girl-of-the-day-stephie-coplan <h3>Stephie Coplan</h3><p><b>Year: </b>Senior<br><b>School: </b>Tufts<br><b>Hometown: </b>Rockville, MD<br><b>Major: </b>Philosophy/Pre-Law</p><p><a class="image" href="http://www.collegehumor.com/cutecollegegirl/StephieC" target="_blank"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/cutecollegegirl/Stephie-Coplan_3d19d68079e443a3ecc704bc36592274.jpg" alt="Stephie Coplan" /></a></p><p>Click <a href="http://www.collegehumor.com/cutecollegegirl/StephieC" target="_blank">here</a> for more.</p> Girl Of The Day - Rebecca Kelly 2008-09-05T00:00:00+03:00 http://szabster.net/2008/09/05/girl-of-the-day-rebecca-kelly <h3>Rebecca Kelly</h3><p><b>Year: </b>Sophomore<br><b>School: </b>UNC Charlotte<br><b>Hometown: </b>Durham, NC<br><b>Major: </b>Education</p><p><a class="image" href="http://www.collegehumor.com/cutecollegegirl/RebeccaK" target="_blank"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/cutecollegegirl/Rebecca-Kelly_4ccd6b5bbba8b6e4623bbc063b78e67f.jpg" alt="Rebecca Kelly" /></a></p><p>Click <a href="http://www.collegehumor.com/cutecollegegirl/RebeccaK" target="_blank">here</a> for more.</p> Girl Of The Day - Nikki Pekovitch 2008-09-04T00:00:00+03:00 http://szabster.net/2008/09/04/girl-of-the-day-nikki-pekovitch <h3>Nikki Pekovitch</h3><p><b>Year: </b>Sophomore<br><b>School: </b>Mount Marty College<br><b>Hometown: </b>Chicago<br><b>Major: </b>Childhood Education</p><p><a class="image" href="http://www.collegehumor.com/cutecollegegirl/NikkiP" target="_blank"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/cutecollegegirl/Nikki-Pekovitch_60a678caef9818a1223161d6fbbb4fc7.jpg" alt="Nikki Pekovitch" /></a></p><p>Click <a href="http://www.collegehumor.com/cutecollegegirl/NikkiP" target="_blank">here</a> for more.</p> Girl Of The Day - Tiffany Reed 2008-09-03T00:00:00+03:00 http://szabster.net/2008/09/03/girl-of-the-day-tiffany-reed <h3>Tiffany Reed</h3><p><b>Year: </b>Junior<br><b>School: </b>Texas<br><b>Hometown: </b>Tulle, France<br><b>Major: </b>Psychology</p><p><a class="image" href="http://www.collegehumor.com/cutecollegegirl/TiffanyR" target="_blank"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/cutecollegegirl/Tiffany-Reed_657b61ec28823a190ca97cc27738d29a.jpg" alt="Tiffany Reed" /></a></p><p>Click <a href="http://www.collegehumor.com/cutecollegegirl/TiffanyR" target="_blank">here</a> for more.</p> Jedi Tool #1 -- Regexxer 2008-08-31T00:00:00+03:00 http://szabster.net/2008/08/31/jedi-tool-1-regexxer <p>I just stumbled across <a href="http://regexxer.sourceforge.net/" target="_blank">Reggexer</a> today while searching for a tool to replace stuff in multiple files in an easy and convenient way.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/08/screenshot-regexxer.png"><img class="alignnone size-thumbnail wp-image-286" title="screenshot-regexxer" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/08/screenshot-regexxer-400x300.png" alt="" width="400" height="300" /></a></p> <p>Just as it says on it's homepage, my first thought was <em>"Hey, I must have this!" :)</em></p> How to fix broken folder icons in Ubuntu? 2008-08-30T00:00:00+03:00 http://szabster.net/2008/08/30/how-to-fix-broken-folder-icons-in-ubuntu <p>This have been hauting me for some time now, and finally i found out an easy solution which works.</p> <p>The key is to edit the <em><strong>index.theme</strong></em> file usually located in <em><strong>/home/[username]/.icons/[theme-name]</strong></em> ( after the theme is installed, but it can be done before installing and then just re-pack the patched version to use it right away ) and changing the <em><strong>"inherits=gnome"</strong> line to <strong>"inherits=none"</strong></em>, then copying <strong>gnome-fs-directory.png </strong>to <strong>folder.png </strong>and finally reloading the theme.</p> <p>The location of the <em><strong>gnome-fs-directory.png</strong></em> is dependent on how each individual theme is organized, so there no exact location for it, but it's there inside the theme directory.</p> <p>One of my favorite icon themes is the <strong><em>"Glossy Glass"</em></strong> . You can grab it right <a title="Glossy Glass" href="http://www.gnome-look.org/content/show.php/Glossy-Glass?content=27166" target="_blank">here</a> .</p> <p>Probably the best way is to re-pack the theme after, to avoid repeating these if you wanna use the same icon theme on another machine, or you re-install your system, etc.</p> <p>It seems easy when you already know the solution huh? haha :))</p> Girl Of The Day - Jenna Zidansek 2008-08-30T00:00:00+03:00 http://szabster.net/2008/08/30/girl-of-the-day-jenna-zidansek <h3>Jenna Zidansek</h3><p><b>Year: </b>Freshman<br><b>School: </b>Duquesne<br><b>Hometown: </b>PA<br><b>Major: </b>Nursing</p><p><a class="image" href="http://www.collegehumor.com/cutecollegegirl/JennaZ" target="_blank"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/cutecollegegirl/Jenna-Zidansek_d5bd75410da058bc287ba0e92d0794e5.jpg" alt="Jenna Zidansek" /></a></p><p>Click <a href="http://www.collegehumor.com/cutecollegegirl/JennaZ" target="_blank">here</a> for more.</p> It's never too late ... 2008-08-29T00:00:00+03:00 http://szabster.net/2008/08/29/its-never-too-late <div class="mceTemp"><dl id="attachment_276" class="wp-caption alignnone" style="width: 410px;"><dt class="wp-caption-dt"><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/08/3327.jpg" mce_class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/08/3327.jpg"><img class="size-thumbnail wp-image-276" title="Grandma Learning Linux" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/08/3327-400x347.jpg" mce_src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/08/3327-400x347.jpg" alt="It's never too late!" height="347" width="400"></a></dt></dl></div> Girl Of The Day - Maya Ma 2008-08-27T00:00:00+03:00 http://szabster.net/2008/08/27/girl-of-the-day-maya-ma <h3>Maya Ma</h3><p><b>Year: </b>Freshman<br><b>School: </b>Santa Monica Community<br><b>Hometown: </b>china<br><b>Major: </b>Fashion Design</p><p><a class="image" href="http://www.collegehumor.com/cutecollegegirl/MayaM" target="_blank"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/cutecollegegirl/Maya-Ma_cb7d1f7e5c360ee537e77aa23136f9e1.jpg" alt="Maya Ma" /></a></p><p>Click <a href="http://www.collegehumor.com/cutecollegegirl/MayaM" target="_blank">here</a> for more.</p> Girl Of The Day - Jacque Fuller 2008-08-26T00:00:00+03:00 http://szabster.net/2008/08/26/girl-of-the-day-jacque-fuller <h3>Jacque Fuller</h3><p><b>Year: </b>Freshman<br><b>School: </b>Mercer<br><b>Hometown: </b>McDonough GA<br><b>Major: </b>Marketing</p><p><a class="image" href="http://www.collegehumor.com/cutecollegegirl/JacqueF" target="_blank"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/cutecollegegirl/Jacque-Fuller_03e0cc02d9db57b217764ab9c6cad42c.jpg" alt="Jacque Fuller" /></a></p><p>Click <a href="http://www.collegehumor.com/cutecollegegirl/JacqueF" target="_blank">here</a> for more.</p> Girl Of The Day - Samantha Haynes 2008-08-23T00:00:00+03:00 http://szabster.net/2008/08/23/girl-of-the-day-samantha-haynes <h3>Samantha Haynes</h3><p><b>Year: </b>Freshman<br/><b>School: </b>Missouri Southern State<br/><b>Hometown: </b>Joplin<br/><b>Major: </b>Art Education</p><p><a href="http://www.collegehumor.com/cutecollegegirl/SamanthaH" target="_blank" class="image"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/cutecollegegirl/Samantha-Haynes_035d88e36207389482948313e469e40d.jpg" alt="Samantha Haynes" /></a></p><p>Click <a href="http://www.collegehumor.com/cutecollegegirl/SamanthaH" target="_blank">here</a> for more.</p> FreeDroid 2008-08-17T00:00:00+03:00 http://szabster.net/2008/08/17/freedroid <p>It was a long time since I last posted about a game, so here we go "FreeDroid" :)</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/08/screenshot-freedroidrpg-011svn.png"><img class="alignnone size-thumbnail wp-image-269" title="screenshot-freedroidrpg-011svn" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/08/screenshot-freedroidrpg-011svn-400x300.png" alt="" width="400" height="300" /></a></p> Moved to Eclipse ... 2008-07-27T00:00:00+03:00 http://szabster.net/2008/07/27/moved-to-eclipse <p>I've been living with GEdit + a few plugins, but today I moved my project to Eclipse with the C/C++ extensions. It took a bit longer to setup everything, but in the end, I got everything plus a lot more.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/07/screenshot-1.png"><img class="alignnone size-thumbnail wp-image-263" title="Eclipse" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/07/screenshot-1-400x132.png" alt="" width="400" height="132" /></a></p> <p>I also customized the color scheme a bit and changed the font to Bitstream Vera Sans Mono .</p> Randy Pausch, 47, Dies 2008-07-25T00:00:00+03:00 http://szabster.net/2008/07/25/last-lecture-professor-randy-pausch-47-dies <p>Randy Pausch, the Carnegie Mellon computer science professor whose last lecture became an Internet sensation and bestselling book, has died of pancreatic cancer. He was 47.</p> <p>( Source: <a title="Click to read the full story!" href="http://well.blogs.nytimes.com/2008/07/25/last-lecture-professor-randy-pausch-dies-at-47/?hp" target="_blank">New York Times</a> )</p> No Strings Attached ... 2008-07-24T00:00:00+03:00 http://szabster.net/2008/07/24/no-strings-attached <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/07/oral.jpg"><img class="alignnone size-full wp-image-255" title="oral" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/07/oral.jpg" alt="" width="350" height="477" /></a></p> Chet's speech 2008-07-21T00:00:00+03:00 http://szabster.net/2008/07/21/chets-speech <p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/e2xLnCXujVk&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/e2xLnCXujVk&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p> Brick Walls and childhood dreams ... 2008-07-16T00:00:00+03:00 http://szabster.net/2008/07/16/brick-walls-and-childhood-dreams <p>This is a quite an old video, but neverthless it's worth watching.</p> <p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/ji5_MqicxSo&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ji5_MqicxSo&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p> <p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/RcYv5x6gZTA&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/RcYv5x6gZTA&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p> <p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/oTugjssqOT0&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/oTugjssqOT0&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p> <p>It's really really good stuff :) Enjoy ... :D</p> Google Desktop + Google Gadgets 2008-07-14T00:00:00+03:00 http://szabster.net/2008/07/14/google-desktop-google-gadgets <p>Here we go :) I installed Google Desktop and Google Gadgets on my Ubuntu box. Personally I find the RSS feed and the Google Calendar gadgets the most useful :)</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/07/2008-07-14-200859_2720x900_scrot.jpg"><img class="alignnone size-thumbnail wp-image-245" title="2008-07-14-200859_2720x900_scrot" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/07/2008-07-14-200859_2720x900_scrot-400x132.jpg" alt="" width="400" height="132" /></a></p> <p>Hmm ... what else you can see there? Well, the <a href="http://apricot.blender.org">Apricot</a> production SVN + the Blender Apricot branch which is also compiling on the right side, and some other random stuff :P</p> <p>N.B: the name of the girl in the background is Valeria :P</p> Big Buck Bunny 2008-07-01T00:00:00+03:00 http://szabster.net/2008/07/01/big-buck-bunny <p>A while back I posted about a similar movie created by the <em>Orange Open Project</em> using entirely with open source software (Blender, etc), it was called <em>Elephants Dream</em>, and now here we go again with <em>Big Buck Bunny</em> ... Be sure to check out the project at <a title="Go!" href="http://www.bigbuckbunny.org" target="_blank">BigBuckBunny.org</a> and download the movie.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/07/poster_bunny_bunnysize.jpg"><img class="alignnone size-thumbnail wp-image-241" title="poster_bunny_bunnysize" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/07/poster_bunny_bunnysize-265x400.jpg" alt="" width="265" height="400" /></a></p> Mono Spaced Font Hunting ... 2008-06-28T00:00:00+03:00 http://szabster.net/2008/06/28/mono-spaced-font-hunting <p>I do lots of coding in different languages and under Linux, I use the excellent light-weight GEdit. It's really important to find a color scheme + font which really suits your needs, because you need a pleasant environment to work in on day to day basis.</p> <p>I found the theme, which is the <em>text-mate like</em> <em>"DarkMate"</em> ( if I remember well I posted about this one ), as for the font I was oscillating between <em>"MonoSpace"</em> and <em>"DejaVu Sans Mono"</em> ... here they are side by side:</p> <p><em><strong>MonoSpace</strong></em></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/gedit_monospace.png"><img class="alignnone size-thumbnail wp-image-236" title="gedit_monospace" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/gedit_monospace-400x221.png" alt="" width="400" height="221" /></a></p> <p><em><strong>DejaVu Sans Mono</strong></em></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/dejavu_sans_mono_gedit.png"><img class="alignnone size-thumbnail wp-image-237" title="dejavu_sans_mono_gedit" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/dejavu_sans_mono_gedit-400x221.png" alt="" width="400" height="221" /></a></p> <p>Well, there is no big difference between the two, but recently I stumbled across the <em>"Droid Sans Mono</em>", here is a screenshot:</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/droid_sans_mono_gedit.png"><img class="alignnone size-thumbnail wp-image-238" title="droid_sans_mono_gedit" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/droid_sans_mono_gedit-400x221.png" alt="" width="400" height="221" /></a></p> <p>This has that smoothed <em>MacOSX like</em> font look, so this is definitely <em>the droid I was looking for</em> so long!</p> <p>Since is it distributed under the <em>Apache license</em>, I also uploaded a copy just in case it disappears from the other locations. You can grab it right <a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/droidsansmono.zip">here</a> .</p> <p>Happy Coding!</p> ... is the shit! 2008-06-15T00:00:00+03:00 http://szabster.net/2008/06/15/is-the-shit <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/cbinsxfl.jpg"><img class="alignnone size-full wp-image-228" title="cbinsxfl" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/cbinsxfl.jpg" alt="" width="500" height="437" /></a></p> <p><img class="alignnone size-full wp-image-229" title="dygmjspz" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/dygmjspz.jpg" alt="" width="413" height="456" /></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/hdfqrfty.jpg"><img class="alignnone size-thumbnail wp-image-230" title="hdfqrfty" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/hdfqrfty-400x188.jpg" alt="" width="400" height="188" /></a></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/jmthpumr.jpg"><img class="alignnone size-thumbnail wp-image-231" title="jmthpumr" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/jmthpumr-400x287.jpg" alt="" width="400" height="287" /></a></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/nzrgvlrk.jpg"><img class="alignnone size-thumbnail wp-image-232" title="nzrgvlrk" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/nzrgvlrk-400x331.jpg" alt="" width="400" height="331" /></a></p> LoL 2008-06-08T00:00:00+03:00 http://szabster.net/2008/06/08/lol <p>I just had to post this ... click on the image for the bigger version :)</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/12127624005pjj3kxwq4_1_1_l.jpg"><img class="alignnone size-medium wp-image-226" title="12127624005pjj3kxwq4_1_1_l" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/06/12127624005pjj3kxwq4_1_1_l-500x452.jpg" alt="" width="500" height="452" /></a></p> Programming Tip #0 2008-06-05T00:00:00+03:00 http://szabster.net/2008/06/05/programming-tip-0 <p>I'll start a series of programming tips and tricks in various languages, and this will be the first one :)</p> <p>These are very rare, strange and uncommon stuff for the normal mortals ... oK enough chit-chat let's see some code.</p> <p>What's wrong with the following code snippet?</p> <div class="highlight"><pre><code class="cpp"><span class="k">template</span> <span class="o">&lt;</span><span class="k">typename</span> <span class="n">T</span><span class="o">&gt;</span> <span class="k">class</span> <span class="nc">obj</span> <span class="p">{</span> <span class="k">public</span><span class="o">:</span> <span class="n">obj</span><span class="p">(){};</span> <span class="k">virtual</span> <span class="o">~</span><span class="n">obj</span><span class="p">()</span> <span class="p">{</span> <span class="n">map</span><span class="o">&lt;</span><span class="kt">unsigned</span> <span class="kt">long</span><span class="p">,</span> <span class="n">T</span><span class="o">*&gt;</span><span class="p">;</span><span class="o">::</span><span class="n">iterator</span> <span class="n">it</span><span class="p">;</span> <span class="c">//...</span> <span class="c">//...</span> <span class="p">};</span> <span class="c">//...</span> <span class="c">//...</span> <span class="c">//...</span> <span class="k">private</span><span class="o">:</span> <span class="n">map</span><span class="o">&lt;</span><span class="kt">unsigned</span> <span class="kt">long</span><span class="p">,</span><span class="n">T</span><span class="o">*&gt;</span> <span class="n">items</span><span class="p">;</span> <span class="p">};</span> </code></pre> </div> <p>Well this will fail, at this line <em>map&lt;unsigned long, T*&gt;::iterator it;</em> giving a rather confusing and cryptic error message which looks something like this <em>error: expected `;' before ‘it’</em> . Hmmm ...</p> <p>This can be solved by putting the <em>typename</em> keyword at the beginning of that line. It took me some time to figure out what was the problem :)</p> <p>Happy coding, and may the source be with you!</p> The Sixty One 2008-05-31T00:00:00+03:00 http://szabster.net/2008/05/31/the-sixty-one <p>I just stumbled across this awesome place ... <a title="Go!" href="http://www.thesixtyone.com/" target="_blank">TheSixtyOne.com</a> :)</p> <p>No comments!</p> OpenSolaris 2008-05-31T00:00:00+03:00 http://szabster.net/2008/05/31/opensolaris <p>I downloaded the OpenSolaris cd image and tried to boot it up in an virtual machine using Virtual Box. First I tried 256mb of ram, but with that it just got stuck up during the bootup process. With 512mb of ram it runs but it's still slow and sluggish compared to Ubuntu or other Linux distros running in a virtual machine.</p> <p>I have 2GB of ram in my system, and it eats up around 500MB with compiz and stuff running Ubuntu 8.04 ( hardy ) ...</p> <p>Other than the system requirements OpenSolaris looks quite polished and I quickly fired up the package manager to upgrade the installed packages ... but oooopppsssyy! ~ 1800mb to be downloaded??? are you kidding me????</p> <p>Well, I won't download 1800mb of stuff, no way, that never gonna happen.</p> <p>The "Virtual Box" additions are not available for OpenSolaris so it's really annoying when you wanna do something you need to click inside the virtual machine window, then press the host key to release it, etc. quite annoying.</p> <p>I'll leave it installed for a few more days, just for fun ... I also found out that there is <a title="Ohh?" href="http://www.nexenta.org/" target="_blank">Nexenta</a> a distro built around the OpenSolaris kernel with lots of open source software. It's really interesting, and I'll have to check it out in the near future ...</p> <p>As a conclusion ... I'm a developer myself so I could build my own stuff, though I won't drop my Ubuntu for OpenSolaris yet, but that may change :)</p> Textmate like color scheme for GEdit ... 2008-05-29T00:00:00+03:00 http://szabster.net/2008/05/29/textmate-like-color-scheme-for-gedit <p>I found this awesome Textmate like color scheme for GEdit <a title="Get it!" href="http://grigio.org/textmate_gedit_few_steps" target="_blank">here</a> . You can see it in action in the screenshot below.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/05/screenshot.jpg"><img class="alignnone size-thumbnail wp-image-220" title="screenshot" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/05/screenshot-400x132.jpg" alt="" width="400" height="132" /></a></p> <p>(oops, you can see OpenSolaris booting from the Live CD on the right, and on the left a portion of a component from my 3D engine )</p> Another day, another script ... 2008-05-29T00:00:00+03:00 http://szabster.net/2008/05/29/another-day-another-script <p>A few weeks ago I posted a script I made to make customized wallpapers for my system using twinview. Recently I made another nice little script to convert all the images in PNG format from a folder to JPG format.</p> <p>This is really simple and it fits my needs ... of course as always there is room for improvement :)</p> <div class="highlight"><pre><code class="bash"><span class="c">#!/bin/bash</span> ls *.png | awk <span class="s1">&#39;{ printf(&quot;Converting %s ... &quot;,$0); \</span> <span class="s1">system(&quot;convert &quot; $0 &quot; &quot; substr($0,0,length($0)-3)&quot;.jpg&quot; ); \</span> <span class="s1">printf(&quot;Done!\n&quot;); }&#39;</span> </code></pre> </div> <p>I made it executable and copied it as mkjpg to /usr/bin/ for convenience.</p> <p>Happy scripting!</p> Beach Volley 2008-05-26T00:00:00+03:00 http://szabster.net/2008/05/26/beach-volley <p><a href="http://www.flickr.com/photos/gymstar/2513681326/" class="image"> <img class="alignnone size-full wp-image-218" title="Beach Volley" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/05/2513681326_7db6159bd0.jpg" alt="" width="319" height="500" /> </a></p> Logging & Filters ... etc 2008-05-21T00:00:00+03:00 http://szabster.net/2008/05/21/logging-filters-etc <p>I think that is extremely beneficial for every desktop application having an flexible yet powerful logging system.</p> <p>This can "log" to a file, to a console (internal or not) or both. Anyway, the most important thing are the different log levels, and filters.</p> <p>Let's say that we have Text, Info, Warning, Error ... each represents an level. Then we can setup a filter to "show" only the Warnings, or the Errors supressing all the other messages. This is extremly useful if you have bunch messages showing up in your log file / console.</p> <p>Now let's see some code :)</p> <div class="highlight"><pre><code class="cpp"><span class="cp">#define SAFE_ARRAY_DELETE(x) if(x) {delete [] x; x=NULL;}</span> <span class="cp">#define INRANGE(x,min,max) ( (x &amp;gt;= min) &amp;amp;&amp;amp; (x &amp;lt; max) )</span> <span class="k">namespace</span> <span class="n">Log</span> <span class="p">{</span> <span class="k">const</span> <span class="kt">int</span> <span class="n">Text</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="k">const</span> <span class="kt">int</span> <span class="n">Info</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="k">const</span> <span class="kt">int</span> <span class="n">Warning</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="k">const</span> <span class="kt">int</span> <span class="n">Error</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="c">// used only by the filtering</span> <span class="k">const</span> <span class="kt">int</span> <span class="n">Any</span> <span class="o">=</span> <span class="mi">4</span><span class="p">;</span> <span class="p">};</span> <span class="k">static</span> <span class="kt">int</span> <span class="n">g_logFilter</span> <span class="o">=</span> <span class="n">Log</span><span class="o">::</span><span class="n">Any</span><span class="p">;</span> <span class="kt">void</span> <span class="n">setConsoleLogFilter</span><span class="p">(</span> <span class="k">const</span> <span class="kt">int</span> <span class="n">logFilter</span> <span class="p">)</span> <span class="p">{</span> <span class="k">if</span><span class="p">(</span> <span class="n">INRANGE</span><span class="p">(</span><span class="n">logFilter</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span> <span class="n">g_logFilter</span> <span class="o">=</span> <span class="n">logFilter</span><span class="p">;</span> <span class="k">return</span><span class="p">;</span> <span class="p">}</span> <span class="n">g_logFilter</span> <span class="o">=</span> <span class="n">Log</span><span class="o">::</span><span class="n">Any</span><span class="p">;</span> <span class="p">}</span> <span class="kt">void</span> <span class="n">consoleLog</span><span class="p">(</span> <span class="k">const</span> <span class="kt">int</span> <span class="n">logLevel</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">msg</span><span class="p">,</span> <span class="p">...</span> <span class="p">)</span> <span class="p">{</span> <span class="n">va_list</span> <span class="n">ap</span><span class="p">;</span> <span class="c">// is filtering turned on?</span> <span class="k">if</span><span class="p">(</span> <span class="n">g_logFilter</span> <span class="o">!=</span> <span class="n">Log</span><span class="o">::</span><span class="n">Any</span> <span class="o">&amp;</span><span class="n">amp</span><span class="p">;</span><span class="o">&amp;</span><span class="n">amp</span><span class="p">;</span> <span class="n">g_logFilter</span> <span class="o">!=</span> <span class="n">logLevel</span> <span class="p">)</span> <span class="p">{</span> <span class="k">return</span><span class="p">;</span> <span class="p">}</span> <span class="kt">char</span> <span class="o">*</span><span class="n">text</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">char</span><span class="p">[</span> <span class="mi">2048</span> <span class="p">];</span> <span class="n">assert</span><span class="p">(</span> <span class="n">text</span> <span class="p">);</span> <span class="n">memset</span><span class="p">(</span><span class="n">text</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="k">sizeof</span><span class="p">(</span><span class="n">text</span><span class="p">));</span> <span class="n">va_start</span><span class="p">(</span><span class="n">ap</span><span class="p">,</span> <span class="n">msg</span><span class="p">);</span> <span class="n">vsprintf</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">msg</span><span class="p">,</span> <span class="n">ap</span><span class="p">);</span> <span class="n">va_end</span><span class="p">(</span><span class="n">ap</span><span class="p">);</span> <span class="k">switch</span><span class="p">(</span> <span class="n">logLevel</span> <span class="p">)</span> <span class="p">{</span> <span class="k">case</span> <span class="n">Log</span><span class="o">::</span><span class="nl">Info:</span> <span class="n">printf</span><span class="p">(</span> <span class="s">&quot;INFO: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">text</span> <span class="p">);</span> <span class="k">break</span><span class="p">;</span> <span class="k">case</span> <span class="n">Log</span><span class="o">::</span><span class="nl">Warning:</span> <span class="n">printf</span><span class="p">(</span> <span class="s">&quot;WARNING: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">text</span> <span class="p">);</span> <span class="k">break</span><span class="p">;</span> <span class="k">case</span> <span class="n">Log</span><span class="o">::</span><span class="nl">Error:</span> <span class="n">printf</span><span class="p">(</span> <span class="s">&quot;ERROR: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">text</span> <span class="p">);</span> <span class="k">break</span><span class="p">;</span> <span class="k">default</span><span class="o">:</span> <span class="n">printf</span><span class="p">(</span> <span class="s">&quot;%s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">text</span> <span class="p">);</span> <span class="k">break</span><span class="p">;</span> <span class="p">}</span> <span class="n">SAFE_ARRAY_DELETE</span><span class="p">(</span> <span class="n">text</span> <span class="p">);</span> <span class="p">}</span> </code></pre> </div> <p>This is very very straightforward ... it's C++, but it can be adapted to C, by replacing the memory managment stuff ... new with malloc, delete [] with free :) and moving out the constants into an enum :)</p> <p>It works out great for me, and I use something very very similar to this on a day to day basis :D</p> <p>Happy coding!</p> Spread Linux with a chick 2008-05-20T00:00:00+03:00 http://szabster.net/2008/05/20/spread-linux-with-a-chick <p>Original source <a title="Click and go! Wohooo!" href="http://florchakh.com/2007/08/15/ubuntu-girl-spread-the-linux-with-a-chick.html" target="_self">here</a> .</p> <p><a href="http://www.ubuntu.com" class="image"> <img class="alignnone size-full wp-image-213 alignleft" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/05/ubuntu-girl.jpg" alt="Ubuntu Girl" width="498" height="863" /> </a></p> Automatic Build number incrementation 2008-05-10T00:00:00+03:00 http://szabster.net/2008/05/10/automatic-build-number-incrementation <p>Automatic build number incrementation always was a <em>hot topic</em> especially under Linux. My solution is fairly simple to implement, so let's see some "code" right away:</p> <div class="highlight"><pre><code class="bash"><span class="c">#!/bin/bash</span> <span class="nb">echo </span>Fetching and updating build number ... cat Core/Build.cpp | <span class="se">\</span> awk <span class="s1">&#39;{ printf(&quot;unsigned int g_internalbuildNumber = %d ;\n&quot; \</span> <span class="s1">,$5+1); }&#39;</span> &gt; Core/_Build.cpp rm Core/Build.cpp mv Core/_Build.cpp Core/Build.cpp </code></pre> </div> <p>This is a nice little bash script, but you already knew that, what it does? Well it reads in the previous build number and writes it back after incrementing it with 1.</p> <p>The initial "Build.cpp" must contain the line:</p> <p><strong>unsigned int g_internalbuildNumber = 0 ;</strong></p> <p>... please notice the spacing because it is very very important, since awk parses the tokens based on the spaces.</p> <p>Now make this script to be executed as the first thing inside your makefile, and make sure that the "Build.cpp" is compiled and linked with your executable, shared object or whatever.</p> <p>To access the build number from within the code, you just have to do an "<em>extern unsigned int g_internalbuildNumber;</em>" and there you go, nothing fancy but still cool :P</p> <p>Maybe it's not the most elegant solution, but hey ... it works for me and that's all what matters :D</p> Windows Mail high CPU utilization fix 2008-05-07T00:00:00+03:00 http://szabster.net/2008/05/07/windows-mail-high-cpu-utilization-fix <p>I know that Thunderbird is a lot more powerful than Windows Mail, but I prefer it under Windows Vista, mostly because it's simple, and I absolutely love the "Junk Mail Filter". Anyway I don't want to open a war between the two camps, and that's not the point of this post.</p> <p>After some time, I noticed that once I start Windows Mail, my CPU goes to 100% and it stay there forever which obviously made the system unresponsive and very very unstable. Please note that the CPU  was an single core AMD Turion ( 64bit ) running at 2.2Ghz with just 512kb as L2 cache.</p> <p>I started digging around, and stumbled accross users with similar issues, but none of the suggested "solutions" solved my problem, and then I took a look under the folder where Windows Mail actually stores the files, and BOOOM!</p> <p>What? There were like 10k EML files with 0kb size no subject, etc. Hmmm? I deleted them all, and started Windows Mail again, and it worked prefectly ever after. This is why it was struggling, and I have no idea how those files were created or anything, but deleting them solved the problem, and that's all what counts.</p> <p>What a story huh? LoL</p> Libtouch and more ... 2008-05-05T00:00:00+03:00 http://szabster.net/2008/05/05/libtouch-and-more <p>Today I saw this excellent HOWTO at <a title="Click and whoooo!" href="http://ssandler.wordpress.com/mtmini/" target="_blank">http://ssandler.wordpress.com/mtmini/</a> on how to make your very own multi-touch pad, which is the coolest thing i've ever seen during the last two decades ... <em>cough, cough</em> ...</p> <p>I haven't made one myself yet, but I downloaded touchlib and I found it quite annoying that it used my built-in cam from my toshiba sattelite laptop however I plugged in another external one.</p> <p>So, I did a quick fix to be able to use /dev/video1 ... oh yeah, I tried this under Linux, more specifically Ubuntu, because I was lazy to setup all the libs with headers and shits under Windows.</p> <p>In the CvCaptureFilter.cpp right in the void CvCaptureFilter::setParamater( ... ) I added two more lines, so my version looks like this:</p> <div class="highlight"><pre><code class="cpp"><span class="kt">void</span> <span class="n">CvCaptureFilter</span><span class="o">::</span><span class="n">setParameter</span><span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">value</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="n">capture</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span><span class="p">(</span><span class="n">strcmp</span><span class="p">(</span> <span class="n">name</span><span class="p">,</span> <span class="s">&quot;source&quot;</span> <span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="n">strcpy</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">value</span><span class="p">);</span> <span class="k">if</span><span class="p">(</span><span class="n">strcmp</span><span class="p">(</span> <span class="n">value</span><span class="p">,</span> <span class="s">&quot;cam&quot;</span> <span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="n">capture</span> <span class="o">=</span> <span class="n">cvCaptureFromCAM</span><span class="p">(</span> <span class="n">CV_CAP_ANY</span> <span class="p">);</span> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="n">strcmp</span><span class="p">(</span> <span class="n">value</span><span class="p">,</span> <span class="s">&quot;cam1&quot;</span> <span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="n">capture</span> <span class="o">=</span> <span class="n">cvCaptureFromCAM</span><span class="p">(</span> <span class="mi">1</span> <span class="p">);</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="n">capture</span> <span class="o">=</span> <span class="n">cvCaptureFromAVI</span><span class="p">(</span><span class="n">value</span><span class="p">);</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> </code></pre> </div> <p>With this done, i can just change in the "config.xml" the "source" to "cam1" and make use of my other camera device on /dev/video1 :)</p> <p>That's all I need :D</p> <p>A few other thoughts ... you can give an index from 0..99 to the cvCaptureFromCam( ... ) and then it will try to find the first available driver for that particular device, or if you give something &gt;=100 then it will try to use that particular driver with the first available video device; CV_CAP_ANY = 100 .</p> Nimuh 2008-05-04T00:00:00+03:00 http://szabster.net/2008/05/04/nimuh <p>This is another sweet game i stumbled across a while ago, but I don't think that I blogged about it, or maybe I'm wrong? Hmm... anyway, here are two screenshots as a teaser, and if you like it then grab it over <a title=")" href="http://www.nimuh.com/" target="_blank">here</a> .</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/05/screenshot-nimuh-en-busca-del-tesoro-andaluz-1.png"><img class="alignnone size-medium wp-image-198" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/05/screenshot-nimuh-en-busca-del-tesoro-andaluz-1.png?w=300" alt="" width="300" height="225" /></a></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/05/screenshot-nimuh-en-busca-del-tesoro-andaluz.png"><img class="alignnone size-medium wp-image-199" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/05/screenshot-nimuh-en-busca-del-tesoro-andaluz.png?w=300" alt="" width="300" height="225" /></a></p> Digg a Tech Girl 2008-05-03T00:00:00+03:00 http://szabster.net/2008/05/03/digg-a-tech-girl <p>Vote for <a title=")" href="http://leahculver.com" target="_blank"><em><strong>Leah Culver</strong></em></a> on <em>Digg a Tech Girl</em> by clicking right <a title="Click &amp;amp; Vote!" href="http://www.digatechgirl.com/SiliconValley/Leah_Culver_-_Pownce_geek/" target="_blank">here</a> .</p> <p><a href="http://www.digatechgirl.com/SiliconValley/Leah_Culver_-_Pownce_geek/" target="_blank" class="image"> <img class="alignnone size-full wp-image-196" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/05/2585223_96f87acb5b.jpg" border="0" alt="" width="334" height="500" /> </a></p> Another day, another game ... 2008-05-02T00:00:00+03:00 http://szabster.net/2008/05/02/another-day-another-game <p>As I'm a developer myself (i'm writing my own cross-platform 3d engine), I love to check out different game sources which can be a valuable inspiration source when it comes to engine design, etc.</p> <p>Todays game is <strong>Battle Thanks</strong>, a 2D tank arcade game with multiplayer and split screen modes.</p> <p>I grabbed the sources and compiled it, because I prefer to compile myself where possible rather than installing precompiled packages.</p> <p>( it uses "scons" instead of automake, or jam )</p> <p>... here is an in-game screenshot:</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/05/screenshot-battle-tanks-5800-beta.png"><img class="alignnone size-medium wp-image-194" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/05/screenshot-battle-tanks-5800-beta.png?w=300" alt="" width="300" height="225" /></a></p> <p>If I raised your interest check it out <a href="http://btanks.sourceforge.net" target="_blank">here</a> .</p> Short Skirt/Long Jacket (Geek Version) 2008-04-30T00:00:00+03:00 http://szabster.net/2008/04/30/short-skirtlong-jacket-geek-version <p>... original source <a title="Click and win!" href="http://proslacker.blogspot.com/" target="_blank">here</a> .</p> <p><em>I want a girl with a kernel like a diamond I want a girl who knows what's best I want a girl who ctrl +x's to cut And eyes that burn like cigarettes</p> <p>I want a girl with the right memory allocations Who is funny and witty And geeky as a white hat She's playing with her compiler She's putting up her source She's touring the lab And picking up slackware</p> <p>I want a geek girl with a short skirt and a long jacket</p> <p>I want a girl who plays games early I want a girl who stays up late I want a girl with uninterrupted uptime Who uses a debugger to hunt down mem leaks With fingernails that shine like justice And hair that is red like fire</p> <p>Who is funny and witty And geeky as a black hat She's touring the lab And picking up slackware</p> <p>I want a geek girl with a short skirt and a long jacket</p> <p>I want a girl with a smooth leather cuirass I want a girl with good stat rolls At a gaming session we will meet accidentally We'll start to talk when she borrows my dice</p> <p>She wants a computer that is penguin powered She wants a computer that will get things done She's changing her name from Kitty to Karen She's trading her win box for a white Apple laptop</p> <p>I want a geek girl with a short skirt and a long jacket</em></p> Just because ... 2008-04-29T00:00:00+03:00 http://szabster.net/2008/04/29/just-because <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/macgenius.jpg"><img style="border-right:0;border-top:0;border-left:0;border-bottom:0;" height="382" alt="macgenius" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/macgenius-thumb.jpg" width="448" border="0" /></a></p> 73lab.com 2008-04-20T00:00:00+03:00 http://szabster.net/2008/04/20/73labcom <p><a href="http://www.73lab.com" target="_blank" class="image"> <img class="alignnone size-full wp-image-181" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/banner_miss2_73lab.jpg" alt="" /> </a></p> XMoto the Open Source Elma clone 2008-04-19T00:00:00+03:00 http://szabster.net/2008/04/19/xmoto-the-open-source-elma-clone <p>XMoto is a really really good cross platform open source 'Elma' clone with thousands of user created levels.</p> <p>If you liked Elma, you will love XMoto for sure :)</p> <p>Here are some screenshots ... if you like what you see then grab a copy right <a title="Grab Xmoto!" href="http://xmoto.tuxfamily.org/" target="_blank">here</a> .</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/screenshot-042.png"><img class="alignnone size-medium wp-image-178" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/screenshot-042.png?w=400" alt="" width="400" height="300" /></a></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/screenshot-042-1.png"><img class="alignnone size-medium wp-image-179" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/screenshot-042-1.png?w=400" alt="" width="400" height="300" /></a></p> Using Subversion (svn) locally ... 2008-04-18T00:00:00+03:00 http://szabster.net/2008/04/18/using-subversion-svn-locally <p>It does makes sense using Subversion locally even for small projects, because later it can be easily exported and imported into Sourceforge, Google Code for instance.</p> <p>On Windows this can be done fairly easy with TortoiseSVN, under Linux there are also a bunch of GUI svn clients, my favorite one is KDESVN, but you can always fire up a terminal and use "svn" ...</p> <p>We can create a repository with the following command:</p> <p><em><strong>svnadmin create /home/user/svn_repo</strong></em></p> <p>Now let's import some "initial" content into with the following command:</p> <p><em><strong>svn import /home/user/projects/krad_proj file:///home/user/svn_repo -m 'initial import of krad_proj'</strong></em></p> <p>We don't work right in the repository so let's make another directory and get a copy of the project from the newly create repository with the following command:</p> <p><em><strong>svn checkout file:///home/user/svn_repo/krad_proj</strong></em></p> <p>So this way we can alter our "copy" and then just commit the changes, all locally without any server or exposing our system in any way, which is great.</p> <p>For more commands, information feel free to visit <a title="SVN rocks!" href="http://subversion.tigris.org/" target="_blank">http://subversion.tigris.org/</a> .</p> <p>May the source be with you, and good night!</p> R.I.P 2008-04-13T00:00:00+03:00 http://szabster.net/2008/04/13/rip <p>I've seen that lots of people are looking for these two wallpapers so I decided to "host" a copy of them over my place. Enjoy! (click for the bigger version )</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/51275-ubuntu-titi-color.jpg"><img class="alignnone size-medium wp-image-172" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/51275-ubuntu-titi-color.jpg?w=400" alt="" width="400" height="319" /></a></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/70889-1.png"><img class="alignnone size-medium wp-image-173" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/70889-1.png" alt="" width="211" height="300" /></a></p> Forging wallpapers ... 2008-04-13T00:00:00+03:00 http://szabster.net/2008/04/13/forging-wallpapers <p>Recently I bought a nice 19' wide LCD monitor with an 1440x900 resolution, so I quickly setup <strong>Twinview</strong> between my laptop running at 1280x800 and obviously moved down the first screen by 100 pixels, to achieve the same effect as "Extend my ..." Wind0ze.</p> <p>Everything was fine, until I wanted to set a wallpaper, and it hurt my eyes ... duhh, it was horible ... stretched between the two screens. yuck!</p> <p>The wallpapers designed for dual monitors assume that both have the same height, which obviously wasn't my case ... so the only viable solution was to create my own wallpaper by arranging two images in GIMP.</p> <p>I like to have the same wallpaper on both screens, so that wasn't a problem, but it was rather annoying after trying 2-3 wallpapers.</p> <p>Instead I thought of the nice utility package called "ImageMagick" ... Yay! and wrote a nice little bash script to generate the desired wallpaper from two images given as input.</p> <p>Here is the contents of the script:</p> <div class="highlight"><pre><code class="bash"><span class="c">#!/bin/bash</span> <span class="k">if</span> <span class="o">[</span> <span class="nv">$# </span>-ne 3 <span class="o">]</span> ; <span class="k">then</span> <span class="nb">echo</span> <span class="s2">&quot;Usage: $0 image1.png image2.png outimage.png&quot;</span> <span class="nb">exit </span>13 <span class="k">fi</span> convert -size 2720x900 xc:black <span class="s2">&quot;$1&quot;</span> -geometry +0+100 -composite <span class="s2">&quot;$2&quot;</span> -geometry +1280+0 -composite <span class="s2">&quot;$3&quot;</span> <span class="nb">echo</span> <span class="s2">&quot;Done ...&quot;</span> <span class="nb">exit </span>1 </code></pre> </div> <p>I named it "mkwlp" , made it executable (chmod u+x mkwlp) then copied it into /usr/bin for convenience ...</p> <p>This can be customized for other resolutions, etc and it's fairly straight forward so i won't go into this.</p> <p>(I highlighted the customizable parts for convenience)</p> <p>Voilà!!!</p> <p>Here are a few wallpapers i "forged" with this little script :) Enjoy! (click to see the bigger version)</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/rihanna_wall1.png"><img class="alignnone size-medium wp-image-162" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/rihanna_wall1.png?w=400" alt="" width="400" height="132" /></a></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/rihanna_wall2.png"><img class="alignnone size-medium wp-image-163" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/rihanna_wall2.png?w=400" alt="" width="400" height="132" /></a></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/arielle_wall1.png"><img class="alignnone size-medium wp-image-168" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/arielle_wall1.png?w=400" alt="" width="400" height="132" /></a></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/rihanna_wall3.png"><img class="alignnone size-medium wp-image-164" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/rihanna_wall3.png?w=400" alt="" width="400" height="132" /></a></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/swanepoel_wall1.png"><img class="alignnone size-medium wp-image-165" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/swanepoel_wall1.png?w=400" alt="" width="400" height="132" /></a></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/elisha_wall1.png"><img class="alignnone size-medium wp-image-166" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/elisha_wall1.png?w=400" alt="" width="400" height="132" /></a></p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/angelina_wall1.png"><img class="alignnone size-medium wp-image-167" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/angelina_wall1.png?w=400" alt="" width="400" height="132" /></a></p> <p>Oh, I almost forgot to tell that <a title="Click to visit!" href="http://www.ewallpapers.eu" target="_blank">EWallpapers.eu</a> is my number #1 landing place when I'm looking for high resolution wide screen wallpapers ( but not only! ) and also <a title="Click to visit!" href="http://www.hollywooddesktop.com/" target="_blank">Hollywood Desktop</a>.</p> Elephants Dream 2008-04-13T00:00:00+03:00 http://szabster.net/2008/04/13/elephants-dream <p><a title="Elephants Dream" href="http://www.elephantsdream.org/" target="_blank"><em>Elephants Dream</em></a> is the world’s first open movie, made entirely with open source graphics software such as <a href="http://www.blender.org/">Blender</a>, and with all production files freely available to use however you please, under a <a href="http://www.creativecommons.org/">Creative Commons</a> license.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/s5_both.jpg"><img class="alignnone size-medium wp-image-170" src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/04/s5_both.jpg?w=400" alt="" width="400" height="225" /></a></p> Drunken escapades with Glest ... 2008-03-23T00:00:00+02:00 http://szabster.net/2008/03/23/drunken-escapades-with-glest <p>I grabbed Glest tonight, and wanted to compile it, but BOOM! when I wanted to compile the map editor, tons of errors related to wxWidgets popped up ... of course the 1st thing on what I was thinking is that my wxWidgets version is too old ... and so it was, so I grabbed the latest wxWidgets and after compiling it several times enabling one by one every feature required by the Glest map editor i did it ... Yay!</p> <p>Here is my "configure" command ( just for the curious ):</p> <div class="highlight"><pre><code class="bash">./configure --enable-unicode --enable-config --enable-std_string --enable-std_iostreams --with-gl --with-gtk </code></pre> </div> <p>wxWidgets takes quite some time to compile, even on my dual-core @ 1.8Ghz ... damn, usually I compile in a "yakuake" session so I can forget about it :P</p> <p>One thing I noticed though, if I compiled wxWidgets with X11 the editor didn't flicker, but with GTK flickers heavily ...</p> <p>I think that wouldn't be wrong if I would say that Glest is the best open source RTS at the moment in all means, graphics, ai, etc...</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/03/glest_screenshot.png" title="glest_screenshot.png"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/03/glest_screenshot.png" alt="glest_screenshot.png" height="353" width="563" /></a></p> <p>Anyway I'm planning to contribute to Glest ... maybe fixing some bugs, or making some improvements, we'll see ...</p> <p>Until then, happy coding and may the source be with you!</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/03/glest_screenshot-1.png" title="glest_screenshot-1.png"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/03/glest_screenshot-1.png" alt="glest_screenshot-1.png" height="353" width="563" /></a></p> Live On Care is lame big time ... 2008-03-07T00:00:00+02:00 http://szabster.net/2008/03/07/live-on-care-is-lame-big-time <p>Awwwwww ... a virus ... how nice ???</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/03/clipboard01.png" title="clipboard01.png"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/03/clipboard01.png" alt="clipboard01.png" /></a></p> <p>... and the contents of the "virus" ... haha!</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/03/clipboard02.png" title="clipboard02.png"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/03/clipboard02.png" alt="clipboard02.png" /></a></p> <p>... this is soooooooooo lame, it seriously cracked me up :)</p> Operation Sexy Men Vids ... Yay! 2008-03-04T00:00:00+02:00 http://szabster.net/2008/03/04/operation-sexy-men-vids-yay <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/03/sexy_man_vids.png" title="sexy_man_vids.png"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/03/sexy_man_vids.png" alt="sexy_man_vids.png" /></a></p> My 'new' favorite geek chick ... 2008-03-01T00:00:00+02:00 http://szabster.net/2008/03/01/my-new-favorite-geek-chick <p>My new favorite geek chick is <a href="http://leahculver.com/" title="Leah Culver" target="_blank"><span style="font-weight:bold;" class="Apple-style-span">Leah Culver</span></a>. You can see her <span style="font-style:italic;" class="Apple-style-span">"in action"</span> in this <span style="font-weight:bold;" class="Apple-style-span">Systm</span> episode by clicking <a href="http://revision3.com/systm/cracked/" title="Systm" target="_blank">here</a> .</p> <p><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/03/665437087_4e09a2b1d4.jpg" alt="665437087_4e09a2b1d4.jpg" /></p> My final Compiz Theme + Wallpaper 2008-03-01T00:00:00+02:00 http://szabster.net/2008/03/01/my-final-compiz-theme-wallpaper <p>Here is a screenshot with my favorite Compiz Theme and wallpaper featuring this great black sista' ... Ciara :D</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/03/screenshot_latest.png" title="screenshot_latest.png"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/03/screenshot_latest.png" alt="screenshot_latest.png" height="415" width="653" /></a></p> Finally ... Ubuntu + Compiz + Kiba Dock 2008-02-29T00:00:00+02:00 http://szabster.net/2008/02/29/finally-ubuntu-compiz-kiba-dock <p>We all know that the Geforce 7300 series are somewhat problematic under Linux and obviously under Ubuntu especially when it comes to Compiz ... and if you don't have compiz you can't run 'eye' candy apps which make use of a composition manager ... yeaaak!</p> <p>Compiz was working fine for me except that the Windows Borders never showed up, no matter what I did. So here is how I made this work ... make sure that you have this line in your /etc/X11/xorg.conf .</p> <div class="highlight"><pre><code class="bash">Option <span class="s2">&quot;AddARGBGLXVisuals&quot;</span> <span class="s2">&quot;True&quot;</span> </code></pre> </div> <p>The easiest way to do this, is to fire up a terminal and type in the following:</p> <div class="highlight"><pre><code class="bash">sudo nvidia-xconfig --add-argb-glx-visuals -d 24 </code></pre> </div> <p>Then restart compiz, and the borders should appear. Of course this assumes that you have installed the "NVidia" drivers (restricted) .</p> <p>I also compiled the latest version of the "Kiba Dock", and played around with the Compiz settings. Now i'm in the hunt for the perfect theme and maybe background ...</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/02/compiz_ubu.png" title="compiz_ubu.png"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/02/compiz_ubu.png" alt="compiz_ubu.png" height="409" width="648" /></a></p> <p>May the source be with you, and good night :D</p> <p>PS: until now I didn't had the will to play around with these extensively ... haha!</p> Spring 2008-02-28T00:00:00+02:00 http://szabster.net/2008/02/28/spring <p>Today I grabbed the latest version of the "Spring" RTS from the svn, and compiled it ... it took quite some time, but worth it. Then I downloaded a few maps and one mod to test it out... so here is a screenshot :D</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/02/spring.png" title="spring.png"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/02/spring.png" alt="spring.png" height="445" width="709" /></a></p> <p>Looks really nice ... i like it!</p> Nice stumbles ... 2008-02-27T00:00:00+02:00 http://szabster.net/2008/02/27/nice-stumbles <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/02/nice-stumbles.jpg" title="nice-stumbles.jpg"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/02/nice-stumbles.jpg" alt="nice-stumbles.jpg" border="0" height="469" width="589" /></a></p> My "dark" VS theme ... 2008-02-24T00:00:00+02:00 http://szabster.net/2008/02/24/my-dark-vs-theme <p>I am in the race for a good "dark" theme for some time now, but today I just came up with my very own one ... haha!</p> <p>When it comes to fixed size fonts, I prefer "Monaco" :D Also the guy who proposed that "blue" background for Borland C, Borland Pascal, etc was really clever ... haha.</p> <p>Here is a screenshot with my very own theme.</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/02/blueish.png" title="blueish.png"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/02/blueish.png" alt="blueish.png" border="0" height="396" width="631" /></a></p> <p>If you like it, you can download it right <a href="http://nympho3d.googlecode.com/files/blueish.zip" title="Click here to download!" target="_blank">here</a> .</p> Skype Bug ... 2008-02-11T00:00:00+02:00 http://szabster.net/2008/02/11/skype-bug <p><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/02/skype_bug.png" alt="skype_bug.png" /></p> Anon?mous 2008-02-08T00:00:00+02:00 http://szabster.net/2008/02/08/anonmous <p><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/02/anonymoussp5.gif" alt="anonymoussp5.gif" /></p> Girl Hack ... 2008-01-28T00:00:00+02:00 http://szabster.net/2008/01/28/girl-hack <p>Here is an old "document" I stumbled across some time ago, and now I decided to post it :)) PSYCHOLOGICAL PROFILE OF THE TROUBLED FEMALE TEEN Author - Seth McGann Date - 5/25/98</p> <ol> <li>OVERVIEW</li> </ol> <p>In this report I will attempt to quantify the personality traits of the troubled teen with the intent of creating a psychological profile (or signature). The techniques used to arrive at these conclusions are the same used by the FBI to profile unknown serial killers to facilitate their capture. All the conclusions are based on real-life interviews, long exposure to several people possessing the target personality, as well as some behavioral psychology. This report is divided into a theory and a practice section as well as a small section on exploitation. At the end of this report you should have all the information you need to identify the personality type defined in this report and with practice should be able to exploit the female for your enjoyment.</p> <ol> <li>THEORY</li> </ol> <p>The personality we are defining is that of a troubled teen. Specifically, we seek female teens from 12 to 18 years of age (possibly older) with severe unipolar depression. The reason for this will become evident later. We also seek a highly extroverted personality with little or no inhibitions. A side effect of this will be mild to severe hyperactivity, which we must also look for. So, we desire a depressed, extroverted, hyperactive female. Luckily, these traits go hand in hand. Additionally, the behavior associated with them is easy to identify, even from a distance. In the next section, a behavioral profile will be provided that can be used a template for this personality.</p> <ol> <li>PRACTICE</li> </ol> <p>We begin our profile with an examination of the subject. This can be broken into several pieces. As with any profile, not everything will be the same for every subject. The more parts that fit, the better the chance of a match.</p> <p>HEAD: Examine the subjects head. Is her hair dyed? Does it show evidence of being dyed multiple times? The more times the better. Next look at her ears. Multiple self-inflicted piercings with strange studs should be evident. Also look for make-up. We want a purple color scheme, though this may, or may not be evident. Also look for scarring, (white or red lines). The more scarring the better.</p> <p>ARMS and LEGS: Look closely at the subjects wrists and forearms. Search for evidence of scarring in these locations. Heavy scarring on the wrists is an indication of attempted suicide (a plus for us). Also look for names that have been carved into her skin. She may chose to hide her names by carving them in hard to see places, so don't be discouraged just yet. Another good sign is burn marks. Be careful though, severe physical or sexual abuse will produce the wrong type of personality, we want all the damage to be self-inflicted.</p> <p>BODY: The overall female should be very thin most of the time, although obesity is a possibility too. She will have used starvation as a means to attempt suicide in the past. We seek a physically attractive female, so feel free to discard females that are disturbing to look at.</p> <p>Now that we have screened for a female with the above physical characteristics we have to take a look at her mind. Even here, observation is key. It will be easier to inventory her mind if you try to start a conversation. The proper type will undoubtedly start the conversation for you, and begin telling her life story, given a little prodding. Watch her body language as she talks. She will subconsciously emphasize certain points, which we want to know about. Here is what we are looking for:</p> <p>BEHAVIOR: The female will try to always be at the center of attention. Given the proper setting (a house party, for instance) she will not hesitate to run around completely naked. This is a very good sign as it requires a VERY uninhibited personality (even with large amounts of alcohol). She will begin to talk to whoever is near her, and will continually steer the conversation back to her. She will complain about her life, how bad her day was, and given enough time she will drop important details. This release of information will happen whether the subject is inebriated or not, the hallmark of this personality. Areas to question the subject on are as follows:</p> <p>DRUG and ALCOHOL USE: The subject should use drugs heavily, if not now, in the past. She may have convictions and be on probation for use and sale of marijuana. Generally, she will not use harder drugs than pot, if anything else it will usually be "shrooms" or LSD. She will also use alcohol heavily, generally in a social setting. All this drug use will generally take place with her friends in a closed setting. Don't expect to see this at bar or other open gathering.</p> <p>MEDICAL HISTORY: Here is the most important section. If you've gotten this far everything here should fit perfectly. She will have been treated for "depression" in the past, most likely with an in-patient stay at a mental facility. The reason for her stay will be attempted suicide or suicidal ideations (thinking about ending it). The methods she will use will not be effective (like a shotgun blast to the head) but will be designed to attract attention. Horizontal wrist slashing will bleed a lot, but is generally not fatal and can be repaired. Overdosing on over the counter drugs, and consuming household cleaning products are also popular. While these methods can work, the subject will call her friend and tell the friend that she just tried to commit suicide. This leads to the hospital, a suicide watch, and in-patient commitment. The subject will also be seeing a therapist. The reason for this is that the medication she is taking requires monitoring by a psychiatrist. Popular brand names are Prozac, Paxil, Zoloft, but they all are anti-depressants. Specifically they are selective seritonin reuptake inhibitors, in other words they work by increasing the pool of seritonin in the brain, thus reducing depression. She will most likely not be taking the old school anti-depressants. These so called MAO inhibitors have so many side effects that is usually prescribed when nothing else will work. She will also need something for that hyperactivity, Ritalin being the drug of choice. To summarize: she is currently on anti-depressants and is seeing a therapist due to depression and attempted suicide. If you can come to this conclusion from your conversation, then you are in good shape.</p> <p>FAMILY HISTORY and CHILDHOOD: The subject will have had a relatively sheltered childhood with in a small town. This can vary actually, she may in fact live in a city and may have one or both parents, who can have a varying amount of financial security. Obviously, you want to find a female with rich parents. Something goes horribly wrong. The female will be rejected by her mother, who will continually disapprove of everything she does. This will lead to continuos feelings of rejection and anxiety. In an attempt to get attention she will latch on to anyone who approves of her and soothes the pain in her mind. This is where the promiscuous sex comes in. She uses sex as a tool to ease her mental pain, but this will not work. No matter how much sex she has, how many boyfriends she gets, no matter how much she drinks, or smokes, the underlying pain always comes back. She will do a good job covering it up, but she overcompensates, leading to exaggerated reactions. If you spend enough time with the female you will see that she does not deal well with change. Her personality will "break" for awhile, during which you will be treated to fits of screaming and crying. During these episodes the female will be feeling completely alone. If the episode last long enough she will try to commit suicide. To her, physical pain is nothing compared to the mental torture she has to endure. This also explains the need to carve her body, and do her own piercings. The control she exerts on her body, and the pain she inflicts, gives her an escape. To find out how closely the female fits in here requires good conversation skills. Watch her body language and try to see what you can pick up. Chances are, all this will hit dead on.</p> <p>FRIENDS: She will have many friends and acquaintances. Her best friend will usually be fairly normal, so it would be good for you to question her alone. Not to much in this area, take mental notes about who she likes and dislikes, it will be useful in the future if you try to start any sort of "relationship".</p> <p>SEXUAL ORIENTATION: The subject will almost always be bi-sexual. Depending on how much she likes you, she will be willing to have a sex with you and two or more girls. In fact, your best bet for group sex is with this personality type. The other partners will usually be her friends, or someone she feels comfortable with. Due to the sensitive nature of this topic, you should find a way to figure it out without direct questioning or until you've known the subject for awhile.</p> <p>After you've done a satisfactory interview you will know whether you have found the right person or not. If you are sure you have a proper personality fix you can move on to the next section. Otherwise, try somebody else, in the next section we talk about ways to increase your success.</p> <ol> <li>EXPLOITATION</li> </ol> <p>To actually exploit this type of personality you must first find some candidate girls. Here are some excellent locations:</p> <p>Boarding Schools for Girls: Basically these are psychiatric facilities for rich girls. Try and find a party near the school, chances are some of the most lucrative finds will show up. If possible, through your own party (this is kind of extreme though).</p> <p>Rural High Schools: Everyone knows people out in a rural setting have nothing to do. Use this to your advantage by infiltrating the party scene. You will undoubtedly find several targets.</p> <p>Colleges: Less likely, due to the fact that someone as mentally disturbed as we want would most likely not make it to college (though there are exceptions). Worth a try any ways. Get into the party scene, go to bars around the college, frat parties are great, IF you can get in.</p> <p>Clubs and Bars: Everyone who goes to these are underage. Use this to your advantage. Profiling is harder in this setting, but if your good you should have no problem.</p> <p>What you do once you have found your target? Well, I'm sure you can figure it out. Capitalize on the person for sex, money and drugs. The more involved you get with the one girl, chances are you can get her friends too. One thing to keep in mind though, you will either get a positive or negative reaction. Discard the person if she responds negatively. If you really want a particular girl, you can try, but with this personality, there is an immediate reaction. If the reaction is positive, your in with about 5 minutes effort. Otherwise, it will take much, much longer. Don't bother, find another one.</p> <ol> <li>CONCLUSION</li> </ol> <p>If you have completed this report you have all the necessary information to identify this personality. Now all you need is practice, and lots of it. A disregard for ethics is also helpful. In no time you should be getting more sex than you know what to do with.</p> Understanding art for geeks 2008-01-24T00:00:00+02:00 http://szabster.net/2008/01/24/understanding-art-for-geeks <p>I found this over <a href="http://www.flickr.com/photos/paulthewineguy/sets/72157603619920398/" target="_blank">here</a> , and I find it extremely interesting. haha!</p> Customize Your Ubuntu ... 2008-01-15T00:00:00+02:00 http://szabster.net/2008/01/15/customize-you-ubuntu <p>I'm posting this, mostly because some people showed interest in how do I customized my Ubuntu's look and feel. So here we go ... an image worths more than 1 million words ... ha!</p> <p>First take a look at the following screenshot.</p> <p><a title="screenshot.png" class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/01/screenshot.png"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/01/screenshot.png" border="0" alt="screenshot.png" width="420" height="240" /></a></p> <p>Nice huh? If you liked what you have seen, then continue, else STOP reading now.</p> <p>The background can be found <a title="Roar!" href="http://icebreaker.wordpress.com/2008/04/13/rip/" target="_self">here</a> .</p> <p>The theme is customized, so here are some screenshots:</p> <p><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/01/screenshot-customize-theme.png" alt="screenshot-customize-theme.png" /></p> <p><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/01/screenshot-customize-theme-1.png" alt="screenshot-customize-theme-1.png" /></p> <p><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/01/screenshot-customize-theme-2.png" alt="screenshot-customize-theme-2.png" /></p> <p><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/01/screenshot-customize-theme-3.png" alt="screenshot-customize-theme-3.png" /></p> <p>Now a few words about the panel on the bottom. Well that's not the Kiba dock, that's just a normal dock. So here is an image on how to set that up to achieve the look and feel of the one in the screenshot.</p> <p><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2008/01/screenshot-panel-properties.png" alt="screenshot-panel-properties.png" /></p> <p>The themes, etc. are from either <a href="http://www.gnome-look.org" target="_blank">Gnome Look</a> or <a href="http://art.gnome.org" target="_blank">Gnome Art</a> .<a href="http://art.gnome.org" target="_blank"> </a></p> <p>Enjoy indefinitely .... haha!</p> Brain test ... 2007-12-31T00:00:00+02:00 http://szabster.net/2007/12/31/brain-test <p>This thing is really, really freaking me out :)) I found it over <a href="http://delicategeniusblog.com/?p=552" title="))" target="_blank">here</a>.</p> <p><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2007/12/0568782000.gif" alt="Dancer" border="0" /></p> <p>I can see it spin clockwise too, but can reverse it at will.</p> <p>Can you???</p> Easter Egg in Winamp 5.5 2007-11-27T00:00:00+02:00 http://szabster.net/2007/11/27/easter-egg-in-winamp-55 <p>I did a search after I found this on Google and found nothing relevant, so maybe I'm the first one who discovered this. :))</p> <p>To see the easter egg, start winamp, go to the "Preferences" then to "Modern Skins" and select the last tab which says "Current Skin", then double click on the "Bento" text, BOOOM! there you have a nice "snake" like game :))</p> <p>Enjoy, and have fun!!!</p> <p>PS: be sure to eat all the Lamas !!! Haha!</p> Tiny3D Winamp Visualizer Framework w/ OpenGL 2007-11-18T00:00:00+02:00 http://szabster.net/2007/11/18/tiny3d-winamp-visualizer-framework-w-opengl <p>Today I released Tiny3D under GPL license -- my very own framework for writing 3D visualizer plugins for Winamp 5+. It also includes the "demo" why this framework was born. More info and the sources can be found over <a href="http://code.google.com/p/nympho3d/" title=")" target="_blank">here</a>.  It was written in the last few days, so don't expect too much ... haha!</p> Great texture & music resources ... 2007-11-18T00:00:00+02:00 http://szabster.net/2007/11/18/great-texture-music-resources <p>Well, if you are an lone wolf developer like I am, and you want some nice textures and music then you should check out these two websites, and most probably you will find something you like. Of course I'm assuming that your productions won't be commercial, lol -- so you will be able to use them :P</p> <p><a href="http://ccmixter.org/" title=")" target="_blank">http://ccmixter.org/</a> -- music</p> <p><a href="http://www.imageafter.com/" title=")" target="_blank">http://www.imageafter.com/</a>-- textures</p> <p>I'm planning on using some resources from these to commit a few experimental "scene demos/intros/games" in the near future :) with my new 3D engine :P but shhh, everything at its time :))</p> 4kb Intro Kit 2007-11-18T00:00:00+02:00 http://szabster.net/2007/11/18/4kb-intro-kit <p>This is a bit old -- it was released by the Northern Dragons demo group, but it's still an useful resource for someone who wants to break into the "demo scene". :)) It contains useful tutorials, examples, which can be useful even for those who are planning to make a 64k intro, or why not a "demo" which can be up to 16mb :)</p> <p>I definitely found it useful -- so greetz fly out to <a href="http://www.northerndragons.ca/" title="Norther Dragons" target="_blank">Northern Dragons</a> :))</p> <p>... oh yeah -- you can get it <a href="http://www.scene.org/file.php?file=/resources/docs/nd_4kb_intro_kit.zip&amp;amp;fileinfo" title=")" target="_blank">here</a>.</p> Skype + Linux + Video = Love 2007-11-10T00:00:00+02:00 http://szabster.net/2007/11/10/skype-linux-video-love <p>A new Skype beta was released for Linux, which finally has Video support. I quickly grabbed and installed it on my Ubuntu system. It works perfectly with the integrated webcam in my toshiba sattelita a200 pro :))) I'm happy with it.</p> <p>I guess this will be a major hit for aMSN, Pidgin, etc, because they all lack the Video support and isn't planned in the near future for either of them.</p> <p>Hip-Hip ... Hoooraay! Go you Skype!</p> Wireless + Ubuntu 7.10 = love 2007-11-03T00:00:00+02:00 http://szabster.net/2007/11/03/wireless-ubuntu-710-love <p>As almost everyone around here, I was waiting for the new Ubuntu mostly because it promised improved wireless support. 7.04 haven't even recognized my wireless card, after install, and also I had sound problems, though anything else seemed to work great.The 7.10 solved these right out of the box, <strong>but</strong> I still wasn't able to connect via WPA-TKIP and WPA2-AES to my wireless Netgear router.</p> <p>So, after a few days of digging and reading, I managed to make my wireless connection working. It's not the most elegant solution, but for me it works, and that's all what matters. In this guide, I assume that your wireless card is recognized by Ubuntu, and it's functional. In 7.10 you have the wpa_supplicant installed by default, so you won't have to worry about it. Here is with what I came up, and making my wireless working, exactly as it works under Windows.</p> <ol> <li>I removed the silly network-manager by typing "sudo apt-get remove network-manager" in a terminal.</li> <li>Now go to System-&gt;Administration-&gt;Networking, and make sure to fill the fields with the correct info, and enable the wireless connection.</li> <li>To make sure that everything is right, check your /etc/network/interfaces file. Open up the file by typing "gksudo gedit /etc/network/interfaces".</li> </ol> <p>For WPA-TKIP:</p> <p style="margin-left:40px;">iface wlan0 inet static address 192.168.0.25 netmask 255.255.255.0 gateway &lt;your router's ip&gt; wpa-ap-scan 1 wpa-pairwise TKIP wpa-group TKIP wpa-psk &lt;your long wpa key&gt; wpa-driver wext wpa-key-mgmt WPA-PSK wpa-proto WPA wpa-ssid &lt;your essid&gt;</p> <p>auto wlan0</p> <p>For WPA2-AES:</p> <p>iface wlan0 inet static address 192.168.0.25 netmask 255.255.255.0 gateway &lt;your router's ip&gt; wpa-ap-scan 1 wpa-pairwise CCMP wpa-group CCMP wpa-psk &lt;your long wpa key&gt; wpa-driver wext wpa-key-mgmt WPA-PSK wpa-proto WPA2 wpa-ssid &lt;your essid&gt;</p> <p>auto wlan0</p> <p>Make sure that these, are in the file, if not then add the lines, and save the file, then you can close the gedit window. 4. In a terminal type in the followings, exactly in this order: "sudo killall wpa_supplicant" [enter] "sudo /etc/init.d/networking stop" [enter] "sudo /etc/init.d/networking start" [enter]</p> <ol> <li>Now we should take a look at our connection status in the "Network Monitor" applet.</li> <li>Finally we can do a "ping google.com" right from the terminal.</li> </ol> <p>So, by now we should have a working wireless connection, but if you will restart your PC, you will have to type in the commands from "section 4.". That's really, really annoying, so here is the solution to get wireless at startup automatically.</p> <p>Type in a terminal "sudo gedit /etc/init.d/wifi" and paste the followings in the file (basically our 3 commands):</p> <p style="margin-left:40px;">#!/bin/bash</p> <h1>kill all wpa_supplicant instances</h1> <p>killall wpa_supplicant</p> <h1>stop the network interfaces</h1> <p>/etc/init.d/networking stop</p> <h1>start the network interfaces</h1> <p>/etc/init.d/networking start</p> <p>Close the gedit window, and type "sudo chmod +x /etc/init.d/wifi" to make the script "executable". When done, we must add it to be executed at every system start-up as the last "thing". :))</p> <p>To do that type the following in a terminal window:</p> <p style="margin-left:40px;">"sudo update-rc.d wifi defaults 99"</p> <p>Later if you will like to disable this you have two choices:</p> <p style="margin-left:40px;">1. "sudo update-rc.d -f wifi remove" OR 2. "sudo chmod -x /etc/init.d/wifi"</p> <p>Too test out this, just restart your computer and you should have internet access right after boot-up, just like on a Wind0ze machine. Totally rad huh?</p> <p><strong>[Updates Sun Mar 30, 2008]</strong></p> <p>This "post" proven to be really popular, so here are a few updates, to make even more users happy :)</p> <p>If you are getting your IP from your router automatically then you can replace this:</p> <p>iface wlan0 inet static address 192.168.0.25 netmask 255.255.255.0</p> <p>with this</p> <p>iface wlan0 inet dhcp</p> <p>If you ping and you get no "reponse", then it worth to check out your /etc/resolv.conf and make sure that it contains the following lines:</p> <p>nameserver &lt;your router's ip&gt;</p> <p>You can edit / create this file by "sudo gedit /etc/resolv.conf".</p> <p>If it still doesn't work, you may try changing "wlan0" to "wifi0","ath0" ...</p> <p>If you get disconnected you can always fire up a terminal and run "sudo /etc/init.d/wifi" to get your connection back, without any hassle ...</p> <p>Because the silly "network-manager" was removed you can add an "Network Monitor" to one of your Gnome Panels ...</p> <p>Also I'm thinking on coding a nice little GUI tool to do all this stuff, so stay tuned!</p> <p><strong>[Updates Sat Apr 26, 2008]</strong></p> <p>This works perfectly in the final release of Ubuntu 8.04 (Hardy Heron), just like Dave confirmed that it works with the beta.</p> <p><strong>[Updates Sat May 10, 2008]</strong></p> <p>The development of little GUI tool is on hold, eventually I will continue the development if there will be enough requests, but I seriously doubt it :)</p> <p>Please feel free to post any comments/suggestions/experiences, etc. related to this. :))</p> More Common Ubuntu 7.10 problem fixes :)) 2007-11-03T00:00:00+02:00 http://szabster.net/2007/11/03/more-common-ubuntu-710-problem-fixes <p>Today I found solutions to two other frequent problems with Ubuntu and newer laptops.</p> <p>1). When the headphone jack is plugged in the sound doesn't stops in the internal speakers.</p> <ul> <li><p>The workaround to this problem is the following:</p></li> <li><p>compiling the latest alsa-driver, alsa-lib, alsa-utils and alsa-firmwire</p></li> <li><p>try adding the "options snd-hda-intel model=lenovo" line to the end of the "/etc/modprobe.d/alsa_base" file.</p></li> <li><p>and after a restart it will work as expected, or very very close to that :))</p></li> </ul> <p>2). Getting hardware acceleration enabled with the 'problematic' Geforce Go 7300.</p> <ul> <li><p>Well in this case we could go the hard way, and re-compile our kernel and nvidia module by ourself,etc -- but there is a lot more simple solution, and it will work almost 100% guaranteed.</p></li> <li><p>All we need to do is to get "envy". Debian/Ubuntu users just type in a terminal: "sudo apt-get install envy".use</p></li> <li><p>Now that we have envy installed we switch to the "real terminal" by pressing Ctrl+Alt+F1, and kill the GDM.</p></li> <li><p>"sudo /etc/init.d/gdm stop"</p></li> <li><p>after this we call "envy -t", and press 1. You may have to solve some dependecies manually if the "process halts", but that's piece of cake especially under Debian/Ubuntu, because the problems will be listed by "apt" :)</p></li> <li><p>repeat the previous step after you solved the dependencies, and let the "envy" do his job.</p></li> </ul> <p>When "envy" done, will ask you if you wanna let him to modify the "xorg.conf" -- answer yes to this question, then it will ask if you want to reboot -- chose yes again.</p> <p>Now, if everything worked well, you should get to the "login" screen. If anything goes wrong just copy back the backed up "xorg.conf" and restart just X or the whole machine.</p> <p>If you get "direct rendering: yes" then you can celebrate and you have 3D acceleration, if you get something else, then you may have to digg, and modify your xorg.conf, because there are big chances that the problem is in there.</p> <p>Also to check the 3D in action, type "glxgears" in a terminal window. :)) Enjoy :)</p> <p>Regarding to issue number two, I tried: Unreal Tournament 2003 (with all the details to maximum), OpenArena,Sauerbraten (a.k.a Cube2), just to name a few, and they all worked very very well :)</p> U-Tsu-Shi-O-Mi! 2007-10-14T00:00:00+03:00 http://szabster.net/2007/10/14/u-tsu-shi-o-mi <p><em>This is the coolest fucking thing ever!!! Totally <strong>rad</strong>!!!</em></p> <p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/s-hg4qCaR74&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/s-hg4qCaR74&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p> Medal Of Honor - Collectors Edition :)) 2007-10-14T00:00:00+03:00 http://szabster.net/2007/10/14/medal-of-honor-collectors-edition <p>I was wondering if I would buy the game, I would get the <strong>bundle</strong>? It's hard to say ... but do <em>creatures like "this" exist???</em></p> <p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/B8lVDajFcP8&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/B8lVDajFcP8&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p> <p>I'll let you decide ... :)</p> Hottest Geek Chick ever ... 2007-10-14T00:00:00+03:00 http://szabster.net/2007/10/14/hottest-geek-chick-ever <p>No matter what <em>she</em> says, she's still the <em>hottest geek chick</em> <strong>ever </strong>:))</p> <p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/gSnm06KEd3A&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/gSnm06KEd3A&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p> <p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/8lAB0URq8QU&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/8lAB0URq8QU&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p> <p>Now that you watched the videos, I guess you fully agree with me ... but there is one thing I don't like about her? What's that? Well, she likes to whisper lol .... :)))</p> Simple 'hack' 2007-07-06T00:00:00+03:00 http://szabster.net/2007/07/06/simple-hack <p>Ever wanted to download all the photos in located in one album on <a href="http://www.photobucket.com" title="Click to visit!" target="_blank">PhotoBucket.com</a> ? If the answer is positive then here is my very <em>own</em> and very simple trick to do it.</p> <p>All you need is a browser and the little downloader named wget. Linux users most probably have it on their systems, and windows users can get it from <a href="http://users.ugent.be/~bpuype/wget/" title="Click to download wget!" target="_blank">here</a>.</p> <p>Now what this 'hack' consists of? Go to the PhotoBucket album you want to download and chose the "View All" to get a page with all the photos. Now view the source of the page and check the last "urlcodeN" where N is the total number of photos. Write down this or keep it in your mind, and paste the following script in your browsers address bar and replace the N with your number of photos.</p> <h6><em>javascript:var wnd=window.open("about:blank"); for(var i=0;i&lt;N;i++){ wnd.document.write(document.getElementById("urlcode"+i).value+"&lt;br&gt;"); }</em></h6> <p>Now press [Enter] and wait until the script finishes. It can take a few seconds.</p> <p>What this script will do anyway? First of all it will open a new window with blank contents, and it will write all the "paths" to the photos inside it, each on a new line.</p> <p>Now that you have all the download paths to the photos, copy and paste the contents into a text file and open a terminal (windows users a command prompt - cmd) navigate to the directory where you saved the file with the list, and execute "wget -i saved_urls.txt" and sit back. This will download all the files. Windows users make sure that you have wget in your path else the command won't work.</p> <p>It's great to create a new directory and place the "saved_urls.txt" inside that, and this way you already organized the photos.</p> <p>This works 100% all the time, and you can have the photos you wanted almost with no effort.</p> <p>Enjoy :-)</p> <p>The script can be improved to prompt for the number of files, and this way we transformed it into a "bookmarklet" script!</p> <p>Here is the improved version:</p> <h6><em>javascript:var n = prompt('Enter the number of photos:',0); if(n != null &amp;&amp; n &gt; 0) { var wnd=window.open("about:blank"); for(var i=0;i&lt;n;i++){ wnd.document.write(document.getElementById("urlcode"+i).value+"&lt;br&gt;"); }}</em></h6> <p>You can put the last version in your Firefox "bookmarks" toolbar, and have it just a click away, when you want to get some photos.</p> <p>We always get what we want, because we can!</p> A Poem ... just for me ... 2007-04-29T00:00:00+03:00 http://szabster.net/2007/04/29/a-poem-just-for-me <p>Here is a poem written by one of my friends (lol ... Gem) for Mickey (Yay, that's me!!!) ...</p> <blockquote> <p align="center">&nbsp;</p> </blockquote> <h1 class="title" align="center"><em>tell, tell, tell, tell</em></h1> <p align="center">&nbsp;</p> <p class="richp itembody" align="center"><em> tell, tell, tell, tell</em></p> <p align="center">&nbsp;</p> <p align="center"><em>i shall tell him- who he is? i shall tell him of the barriers to be climbed?</em> </p><p align="center">&nbsp;</p> <p align="center"><em>A sunny day- go out and cherish one, or many (i love a mouse, she says but i'm not minnie).</em> </p><p align="center">&nbsp;</p> <p align="center"><em>shall i tell him- the truth of it? the eternal secret?</em> </p><p align="center">&nbsp;</p> <p align="center"><em>what is real?</em></p> <p align="center">&nbsp;</p> <p align="center"><em>to tell some things would be folly, the mouse learns but trial and error. </em> </p><p align="center">&nbsp;</p> <p class="richp" align="center"><em> </em></p> <p align="center">&nbsp;</p> <p class="richp" align="center"><em>for mickey... hehe</em></p> <blockquote></blockquote> <p>Thankx Gem ... :D</p> Chinese girls can piss you off so badly ... 2007-03-08T00:00:00+02:00 http://szabster.net/2007/03/08/chinese-girls-can-piss-you-off-so-badly <p>Quote:</p> <p><em>Icebreaker: hey ... all Chinese girls have that attitude which can piss you off badly?</em></p> <p><em>MoonShine: most of the time</em></p> <p><em>MoonShine: i always figure it's some cultural thing that doesn't translate</em></p> <p><em>MoonShine: gotta run!</em></p> <p><em>MoonShine: later</em></p> <p><em>Icebreaker: thankx, my life saver</em></p> <p>They just turn you off with their attitude.</p> <p>Any comments are welcome, and will be appreciated!</p> RantRadio 2007-02-25T00:00:00+02:00 http://szabster.net/2007/02/25/rantradio <p><a href="http://www.rantradio.com" title=";-)" target="_blank">RantRadio</a> . Sean Kennedy rocks!!!</p> <p><a class="image" href="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2007/02/seank.jpg" title="Sean Kennedy"><img src="https://dl.dropbox.com/u/1012887/www/szabster.net/images/2007/02/seank.jpg" alt="Sean Kennedy" border="0" /></a></p> <p>Nothing more to say! Be sure to check it out ;-)</p> Spruzme a MySpace Killer?!! 2007-02-24T00:00:00+02:00 http://szabster.net/2007/02/24/spruzme-a-myspace-killer <p>I am subscribed to some YouTube video bulletins, and I stumbled across <a href="http://www.spruzme.com" title="Visit Spruzme!" target="_blank">Spruzme.com</a> in one of <a href="http://www.xgobobeanx.com" title="Visit xGobobeanx Official Site!" target="_blank">xGobobeanx</a> videos (my favorite YouTuber ... Jill you rock!!!). I quickly checked out the site, signed up and I was pleasantly impressed.</p> <p>The community is small right now, but the Bug Reporting/Suggestion feedback thingy is really working. I posted a topic on the forum that profiles are not displayed correctly in browsers like Firefox, Opera, and the thing got fixed in less than a day. The developer team has all my respect.</p> <p>I am developer myself too, so when I visit a website or I try a certain program I always try to look at it from the developers point of view first, and only after that from the end users point of view. I also know that creating a social networking site is not a hard thing if you have the necessary server/client side scripting skills (PHP or ASP and HTML/CSS/Javascript), but maintaining it, keep it secure, patch the holes to prevent exploits, etc are the hard work.</p> <p>I think that Spruzme has potential, and it could grow to a MySpace killer, all it depends on the number of users, and on how many spread the word.</p> <p>The guys behind Spruzme have 5 stars from me, however there are more bugs to fix, but if they keep up this tempo the reward won't be disappointing.</p> <p>Good work guys :D</p>