<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7685634228233600353</id><updated>2011-09-19T13:10:54.521-07:00</updated><category term='install'/><category term='alienware'/><category term='mysql.socket'/><category term='solution'/><category term='package'/><category term='encoding'/><category term='gentoo'/><category term='system tray'/><category term='spawn'/><category term='hyperray'/><category term='upgrade'/><category term='KSM'/><category term='t60'/><category term='library'/><category term='includegraphics'/><category term='send'/><category term='audio'/><category term='summer'/><category term='renaming'/><category term='push'/><category term='ati'/><category term='window'/><category term='vista vs 7'/><category term='binary search tree'/><category term='server 2008'/><category term='glut'/><category term='not open while executing'/><category term='peon.developments'/><category term='c++'/><category term='CFQ'/><category term='[PDFLaTeX] finished with exit code 70'/><category term='mysql'/><category term='ogg'/><category term='example'/><category term='ffmpeg'/><category term='school'/><category term='ubuntu 9.10'/><category term='bash'/><category term='hal'/><category term='freeglut'/><category term='compile'/><category term='intrepid'/><category term='used'/><category term='radeon'/><category term='thinkpad'/><category term='theora'/><category term='holidays'/><category term='software'/><category term='kubuntu 9.10'/><category term='AppArmor'/><category term='expect'/><category term='Kile'/><category term='mp3'/><category term='change password'/><category term='ubuntu'/><category term='amarok'/><category term='blocks'/><category term='silicon'/><category term='dynamic'/><category term='not registered at dbus'/><category term='Gnu/Linux'/><category term='mask'/><category term='partitions'/><category term='massive'/><category term='windows server'/><category term='openoffice'/><category term='KVM'/><category term='opengl'/><category term='3780'/><category term='computer'/><category term='script'/><category term='windows'/><category term='kolourpaint'/><category term='catalyst'/><category term='code'/><category term='80070490'/><category term='database'/><category term='operating system'/><category term='linux'/><category term='k3b'/><category term='id3'/><category term='krita'/><category term='error code'/><category term='kubuntu'/><category term='howto'/><category term='update-notifier-kde'/><category term='tutorial'/><category term='world'/><category term='music'/><category term='rename'/><category term='simple'/><category term='amarok 2'/><category term='update-notifier'/><category term='weekend'/><category term='kde 4'/><category term='amarok 1.4'/><category term='kde'/><category term='emerge'/><category term='libraries'/><category term='Akonadi server process not registered at D-Bus'/><category term='KDE 4.4.2'/><category term='windows update'/><category term='akonadi'/><category term='programmers notepad'/><category term='shared'/><category term='selling'/><category term='microsoft'/><category term='capstone'/><category term='vorbis'/><category term='fail'/><category term='qt'/><category term='g++'/><category term='sold'/><category term='LaTeX'/><category term='breaks'/><category term='system administration'/><title type='text'>PeonDevelopments</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-604648389104773182</id><published>2011-07-02T16:00:00.000-07:00</published><updated>2011-07-02T18:22:42.723-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamic'/><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='example'/><category scheme='http://www.blogger.com/atom/ns#' term='g++'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='shared'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='simple'/><category scheme='http://www.blogger.com/atom/ns#' term='libraries'/><title type='text'>Creating and Using C++ shared libraries using g++</title><content type='html'>It's been an eventful couple of months. I worked my first 90+ hour week, will be moving for a second time, and learned a heck of a lot about C++.&lt;div&gt;In this post, I will explain in simplified terms, how to create your own C++ shared Library.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It took me a couple hours to figure it out. It's not exactly straightforward, but neither is it overly complex.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I assume that you, the reader, have experience writing C++ classes and headers.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;h1&gt;Step 1: Create your library&lt;/h1&gt;&lt;div&gt;Before you go and build a gigantic, powerful library, it is better to create something simple to start, then build upon it. I used a header file in addition to my c++ class file.&lt;/div&gt;&lt;div&gt;I'd recommend writing a simple class with just a constructor, deconstructor, and a method that outputs something like "Hello World" using cout.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;Libraries do NOT contain a main() method.&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;&lt;br&gt;&lt;/u&gt;&lt;/div&gt;&lt;h1&gt;Step 2: Compile your library&lt;/h1&gt;&lt;div&gt;The following code will compile your .cpp file as a shared library. Replace the file names and library names with your own.&lt;/div&gt;&lt;div&gt;Be sure to name your library &lt;b&gt;lib[name].so.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;It needs the lib prefix and .so suffix. If you have multiple version of your library, the suffix can be .so.1, .so.1.0, .so.1.0.5, etc. as long as one with &lt;b&gt;.so&lt;/b&gt; exists.&lt;/div&gt;&lt;pre&gt;&amp;nbsp;g++ -Wall -shared -fPIC -o ~/libs/libmylibrary.so libmylibrary.cpp&lt;/pre&gt;&lt;p&gt;The format goes like this: g++ [options] [library placement on filesystem] [file(s) that make up library]&amp;nbsp;&lt;/p&gt;&lt;p&gt;I also had a ~/libs/ folder created so I could compile and install as user. If you want system-wide access, run the command as root and use "-o /usr/local/lib/libfilename.so".&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;h1&gt;Step 3: Test your library&lt;/h1&gt;&lt;div&gt;Now the fun part:&lt;/div&gt;&lt;div&gt;Create a test file (test.cpp) with just a main() method.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;You will have to include the library in the file like so:&lt;/div&gt;&lt;pre&gt;#include "libmylibrary.h"&lt;/pre&gt;&lt;p&gt;If you are using a namespace in your library, be sure to use it or prefix any methods or constructors with it.&lt;/p&gt;&lt;p&gt;In your main() method, create an instance of the object, call its method(s), and delete it at the end. An example would be so:&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;pre&gt;ExampleObj * myobj = new ExampleObject();&lt;br&gt;&lt;/pre&gt;&lt;pre&gt;myobj-&amp;gt;printHelloWorld();&lt;/pre&gt;&lt;pre&gt;delete myobj;&lt;/pre&gt;&lt;pre&gt;&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Now the best part: Compiling your program and linking it to your library. Do so with this command:&lt;/p&gt;&lt;pre&gt;g++ main.cpp -o ~/bin/libtest -L$HOME/libs -lmylibrary&lt;/pre&gt;&lt;p&gt;A couple IMPORTANT things to note here:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;~/bin/ is a directory I created. You may have to change location or create the directory yourself&lt;/li&gt;&lt;li&gt;The -l command which links the library has omitted the "lib" prefix, so it is mylibrary instead of libmylibrary.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;That last point is what really fooled me for a while.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;That's all for c++ libraries. I hope this helps.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Edit&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You may have to add the following around the body of your header file.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This goes after the include statements, but before the namespace/class declarations&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#ifdef __cplusplus&lt;br /&gt;extern "C" &lt;br /&gt;{&lt;br /&gt;#endif&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And after end of namespace/class declarations, but before final #endif tag:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#ifdef __cplusplus&lt;br /&gt;}&lt;br /&gt;#endif&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This should fix some c++ specific issues you may encounter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-604648389104773182?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/604648389104773182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=604648389104773182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/604648389104773182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/604648389104773182'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2011/07/creating-and-using-c-shared-libraries.html' title='Creating and Using C++ shared libraries using g++'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-2739384186283587112</id><published>2011-04-30T21:53:00.001-07:00</published><updated>2011-04-30T21:55:27.186-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='example'/><category scheme='http://www.blogger.com/atom/ns#' term='freeglut'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='glut'/><category scheme='http://www.blogger.com/atom/ns#' term='window'/><title type='text'>Creating a more object-oriented OpenGL Window with Freeglut in C++</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;As per my previous post where I described how to build an OpenGL window, it was basically a c-to-c++ code transition with explainations of what different methods did.&lt;/p&gt;&lt;p&gt;In this post, I will be posting my code where the window preferences and display information is inside a class and only the main() method is not part of the object. &lt;/p&gt;&lt;p&gt;There are two parts to the following code: the cpp file and the header file. You need them in two separate files and in the same directory for things to compile properly without modifications.&lt;/p&gt;&lt;p&gt;Please feel free to rate and critique the code I post. Also, the method names and filenames are part of a project I'm working on, so feel free to change them. They make sense to me.&lt;/p&gt;&lt;p&gt;Also, I am licensing the following code under the GPL 2. Feel free to distribute and modify the source as you like.&lt;/p&gt;&lt;h1&gt;rwindow.cpp&lt;/h1&gt;&lt;p&gt;&lt;code&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;#include &amp;lt;GL/glew.h&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;#include &amp;lt;GL/freeglut.h&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;#include &amp;lt;GL/gl.h&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;#include "rwindow.h"&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;RWindow::RWindow()&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; str_window_title = "Hello World";&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; usi_hwindow = 250;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; usi_vwindow = 250;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; usi_windowx = 100;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; usi_windowy = 100;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;RWindow::RWindow(string newtitle)&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; str_window_title = newtitle;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; usi_hwindow = 250;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; usi_vwindow = 250;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; usi_windowx = 100;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; usi_windowy = 100;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;void RWindow::SetWindowTitle(string newtitle)&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; str_window_title = newtitle;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;string RWindow::GetWindowTitle() const&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; return str_window_title;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;} &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;void RWindow::SetWindowHorizontal(unsigned short int newsize)&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; usi_hwindow = newsize;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;unsigned short int RWindow::GetWindowHorizontal() const&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; return usi_hwindow;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;void RWindow::SetWindowVertical(unsigned short int newsize)&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; usi_vwindow = newsize;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;unsigned short int RWindow::GetWindowVertical() const&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; return usi_vwindow;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;unsigned short int RWindow::GetWindowX() const&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; return usi_windowx;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;void RWindow::SetWindowX(unsigned short int newsize)&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; usi_windowx = newsize;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;unsigned short int RWindow::GetWindowY() const&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; return usi_windowy;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;void RWindow::SetWindowY(unsigned short int newsize)&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; usi_windowy = newsize;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;RWindow::~RWindow()&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; // remove new variables if any&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; // remove self&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; delete this; // Make sure pointer is null&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;void RWindow::display_contents()&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; /* clear all pixels */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glClear (GL_COLOR_BUFFER_BIT);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; /* draw white polygon (rectangle) with corners at&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; * (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glColor3f (1.0, 1.0, 1.0);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glBegin(GL_POLYGON);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glVertex3f (0.25, 0.25, 0.0);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glVertex3f (0.75, 0.25, 0.0);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glVertex3f (0.75, 0.75, 0.0);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glVertex3f (0.45, 0.45, 0.0);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glEnd();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; /* don't wait!&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; * start processing buffered OpenGL routines&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glFlush ();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;};&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;void RWindow::init ()&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; /* select clearing (background) color */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glClearColor (0.0, 0.0, 0.0, 0.0);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; /* initialize viewing values */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glMatrixMode(GL_PROJECTION);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glLoadIdentity();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glOrtho(0.0, 1.0, 0.0, 1.0, 1.0, -1.0);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;};&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;/*&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; * Declare initial window size, position, and display mode&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; * (single buffer and RGBA). Open window with "hello"&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; * in its title bar. Call initialization routines.&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; * Register callback function to display graphics.&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; * Enter main loop and process events.&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;int main(int argc, char** argv)&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; // Code to initialize window. Normally this would be in another class&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; RWindow *testWindow = new RWindow();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glutInit(&amp;amp;argc, argv);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glutInitDisplayMode (GLUT_SINGLE | GLUT_RGBA);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glutInitWindowSize (testWindow-&amp;gt;GetWindowHorizontal(), testWindow-&amp;gt;GetWindowVertical());&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glutInitWindowPosition (testWindow-&amp;gt;GetWindowX(), testWindow-&amp;gt;GetWindowY());&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; // .c_str() converts string to constant char*, which this function needs&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glutCreateWindow (testWindow-&amp;gt;GetWindowTitle().c_str());&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; testWindow-&amp;gt;init ();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glutDisplayFunc(RWindow::display_contents);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; glutMainLoop();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; delete testWindow;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; return 0; /* ISO C requires main to return int. */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;};&lt;/code&gt;&lt;/p&gt;&lt;h1&gt;rwindow.h&lt;/h1&gt;&lt;p&gt;&lt;code&gt;#ifndef R_WINDOW&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;#define R_WINDOW&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;#include &amp;lt;string&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;using namespace std;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;class RWindow&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;public:&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; RWindow();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; RWindow(string);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; virtual ~RWindow();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; void SetWindowTitle(string);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; string GetWindowTitle() const;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; void SetWindowHorizontal(unsigned short int);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; unsigned short int GetWindowHorizontal() const;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; void SetWindowVertical(unsigned short int);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; unsigned short int GetWindowVertical() const;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; void SetWindowX(unsigned short int);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; unsigned short int GetWindowX() const;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; void SetWindowY(unsigned short int);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; unsigned short int GetWindowY() const;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; static void init();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; static void display_contents();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;private:&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; string str_window_title;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; unsigned short int usi_hwindow;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; unsigned short int usi_vwindow;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; unsigned short int usi_windowx;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; unsigned short int usi_windowy;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;};&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;#endif&lt;/code&gt;&lt;/p&gt;&lt;p&gt;In order to compile type this:&lt;/p&gt;&lt;p&gt;&lt;code&gt; g++ -Os rwindow.cpp -lGL -lglut -lX11 -lXext -o ~/example-window&lt;/code&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Things you can expand on: adding shape-building methods and including them in display_contents(), random polygon generation, etc. etc.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;More to come.&lt;/p&gt;&lt;p&gt;=-=-=-=-=&lt;br/&gt;&lt;i&gt;Powered by &lt;b&gt;&lt;a href='http://blogilo.gnufolks.org/'&gt;Blogilo&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-2739384186283587112?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/2739384186283587112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=2739384186283587112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/2739384186283587112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/2739384186283587112'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2011/04/creating-more-object-oriented-opengl.html' title='Creating a more object-oriented OpenGL Window with Freeglut in C++'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-216565377112113128</id><published>2011-04-28T19:07:00.001-07:00</published><updated>2011-04-28T19:50:36.132-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='example'/><category scheme='http://www.blogger.com/atom/ns#' term='freeglut'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='glut'/><category scheme='http://www.blogger.com/atom/ns#' term='window'/><title type='text'>Creating an OpenGL Window with Freeglut in C++</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;It seems everybody exudes the virtues of OpenGL's 3D capabilities. That's all fine and good, but what about 2D? &lt;/p&gt;&lt;p/&gt;&lt;p&gt;While searching for information on creating my own 2D hardware-accelerated platform, I came across this excellent website.&lt;/p&gt;&lt;p&gt;http://nehe.gamedev.net/&lt;/p&gt;&lt;p&gt;- See the opengl tutorials on the left-hand side.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;And as always, the official OpenGL website is a great resource.&lt;/p&gt;&lt;p&gt;http://www.opengl.org/resources/libraries/&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Making a window using Freeglut to accelerate it through OpenGL isn't too difficult. &lt;/p&gt;&lt;p&gt;I can't remember where I found the code I am using as an example, but the gist of it can be found here:&lt;/p&gt;&lt;p&gt;http://www.codeproject.com/KB/openGL/OpenGLWindowWithGLUT.aspx?display=Mobile&lt;/p&gt;&lt;p&gt;(Credit goes to whomever wrote it)&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Differences include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;This probably won't run on a Windows box&lt;/li&gt;&lt;li&gt;We have to compile it manually (see below)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Alright. Onto the code. &lt;/p&gt;&lt;p/&gt;&lt;p&gt;First we have the headers. They are C headers, but Freeglut is a C++ friendly library so there shouldn't be any problems.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;&lt;code&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;#include &amp;lt;string.h&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;#include &amp;lt;GL/glew.h&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;#include &amp;lt;GL/freeglut.h&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;#include &amp;lt;GL/gl.h&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p/&gt;&lt;p/&gt;&lt;p&gt;We are importing two main categories of libraries: standard C libraries that handle input/output, library functions and strings as well as the OpenGL libraries.&lt;/p&gt;&lt;p/&gt;&lt;p/&gt;&lt;p&gt;&lt;code&gt;using namespace std;&lt;/code&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Use the standard namespace so you don't have to write out the path of the library functions. It makes reading the code a lot easier.&lt;/p&gt;&lt;p&gt;Now to include a method that will display a static &lt;em&gt;something&lt;/em&gt; in the window when we get to that point. &lt;/p&gt;&lt;p/&gt;&lt;p&gt;The reason we are writing this function right after the include and namespace statements is because both C and C++ (to name two of many programming languages) cannot call a method that it does not know about at compile time. If this function was at the bottom of our file and we called it at the top, it wouldn't know that function existed yet so it would fail. &lt;/p&gt;&lt;p/&gt;&lt;p&gt;&lt;code&gt;void display(void)&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;/*  clear all pixels  */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glClear (GL_COLOR_BUFFER_BIT);&lt;/code&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;&lt;code&gt;/*  draw white polygon (rectangle) with corners at&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; *  (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)  &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glColor3f (1.0, 1.0, 1.0);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glBegin(GL_POLYGON);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;        glVertex3f (0.25, 0.25, 0.0);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;        glVertex3f (0.75, 0.25, 0.0);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;        glVertex3f (0.75, 0.75, 0.0);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;        glVertex3f (0.25, 0.75, 0.0);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glEnd();&lt;/code&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;&lt;code&gt;/*  don't wait!  &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; *  start processing buffered OpenGL routines &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glFlush ();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;The statements are fairly self-explainatory here. glClear clears the window of previous drawings, sets a colour (white), creates a polygon (in this case, a square/rectangle), sets the points and then completes the shape, It then calls the glFlush so that all images that have been declared (have a Begin/End)  get displayed.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;The reason for having a flush statement is because a) it is faster to store a bunch of shapes in memory and display them after a period of time (aka a flush of the video buffer) than it is to display each and every object right after it gets created, plus b) it makes predicting and controlling frame rates a LOT easier. There are lots of reasons I'm probably not getting to, but it is important. &lt;/p&gt;&lt;p/&gt;&lt;p&gt;You could put the flush statement in the main loop after the display() method, but that would be if you want animations or are doing game design, and I recommend keeping the main loop as clean as possible. Plus it would make conditions a lot easier to write. Sometimes the flush() method is skipped because the hardware cannot keep up with the window which causes the dropping of frames to keep framerate acceptible. It will cause 'lag', but won't slow the entire program down to a crawl.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Another point to note: the glVertex3f function. Perhaps you are thinking it should be 'glVertex3d' because we are dealing with 3d graphics libraries here. This is not the case. The '3f' part of the function stands for '3 float parameter' (3f) function. As you can see, the method as 3 values that are floats and must stay as floats. (A float is a number with decimal places, smaller than a double value) If there is no number/letter suffix to the method, it probably has just one type of input parameter.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;There could be a glVertex3d method, which would take doubles. Or a glVertex3i, which takes 3 integers. As you can see, the number/letter notation is a great way to know how the method gets used. Of course, you need to know the different C types as a pre-requesite to make good use of this.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;&lt;code&gt;void init (void) &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;/*  select clearing (background) color       */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glClearColor (0.0, 0.0, 0.0, 0.0);&lt;/code&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;&lt;code&gt;/*  initialize viewing values  */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glMatrixMode(GL_PROJECTION);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glLoadIdentity();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;The init method is next. It takes no parameters itself, like the display method above. All this does is set a few values for the window we'll be creating. The window we'll be drawing will need a background colour (otherwise the background of your computer will be seen through it) and some values set.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;&lt;strong&gt;I'm not an expert in OpenGL&lt;/strong&gt; by any means, so when I describe the glMatrixMode() method, I could be off.&lt;/p&gt;&lt;p&gt;There are a few different modes that OpenGL can operate in. GL_PROJECTION mode which I'm guessing is a more 2D-oriented mode, GL_MODELVIEW which does 3D, GL_TEXTURE which applies images and other texturey things to a surface (2D or 3D) therefore requires efficient I/O operations, and GL_COLOR which works on colour algorithms such as blending, transparencies and effects than actual objects.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;glOrtho is part of the GL_PROJECTION Matrix Mode. It may be 2D only. The first 4 double values determine the four points of the buffer we display. Left, Right, Bottom, Top. The next two values are near and far values,  glOrtho seems to deal with inversion and clipping. The OpenGL article seems to depict that it is a matrix transformation that replaces the current matrix (or what has been written to the video buffer).&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Anyway, enough math for now. It may be better to experiment with changing values than to explain it with words.&lt;/p&gt;&lt;p&gt;The main() method, not to be mistaken for the main loop I mentioned earlier, sets up the window.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;&lt;code&gt;/* &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; *  Declare initial window size, position, and display mode&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; *  (single buffer and RGBA).  Open window with "hello"&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; *  in its title bar.  Call initialization routines.&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; *  Register callback function to display graphics.&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; *  Enter main loop and process events.&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt; */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;int main(int argc, char** argv)&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glutInit(&amp;amp;argc, argv);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glutInitWindowSize (250, 250); &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glutInitWindowPosition (100, 100);&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glutCreateWindow ("hello");&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    init ();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glutDisplayFunc(display); &lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    glutMainLoop();&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;    return 0;   /* ISO C requires main to return int. */&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;The header with the 'int argc, char** argv' is a C and C++ thing for command line parameters. It could probably be void, but would leave the program with little to no options if it wanted it to run a certain way.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Here's where we use glut commands. Init glut using the method parameters GLUT_SINGLE and GLUT_RGB. These are parameters: GLUT_SINGLE should set up a single buffer for the window while GLUT_RGB allows Red/Green/Blue colour values in it. GLUT_RGBA is also a possible option and I assume includes alpha transparency too.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;glutWindowSize and glutWindowPosition are self explainatory. glutCreateWindow sets the window title bar text. Size and Position on your desktop. init() sets up the internals to freeglut while glutDisplayFunc() specifies the name of the method to call for displaying things using GL syntax. glutMainLoop() is that main loop I mentioned earlier and should loop through, refreshing the display so when you move the window, it doesn't get corrupted. (Don't quote me on that though).&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Return statement exists as an ISO standard. Even if the program never gets to the return statement, it's required.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;So that's a window example in freeglut, opengl, and c++. Copy all the code segments into a text file, save as "filename".cpp. (change filename to something else if you wish, change it in your compile statement too though.)&lt;/p&gt;&lt;p/&gt;&lt;p&gt;To compile it, you must first have installed the freeglut libraries and opengl libraries AND have a compatible video card.&lt;/p&gt;&lt;p&gt;But that's not all, you must also specify the libraries in the compile statment so it will include them. &lt;/p&gt;&lt;p/&gt;&lt;p&gt;g++ -Os filename.cpp -lGL -lglut -lX11 -lXext -o ~/filename&lt;/p&gt;&lt;p/&gt;&lt;p&gt;First off, "-Os" is an optimization flag. Good options are -O1, -O2, and -Os. -Os optimizes the program for small size. Can be omitted.&lt;/p&gt;&lt;p&gt;-lGL and -lglut are required, the -l means include library and we are including glut and opengl. (it's not -lfreeglut because freeglut is meant as a replacement for glut, an abandonded library, so requires the same import name.)&lt;/p&gt;&lt;p&gt;You can omit the -lX11 and -lXext, at least, it works on my machine. It still works when I include them, so maybe it's just if you write in C.&lt;/p&gt;&lt;p&gt;Lastly, -o means output and the next parameter is where to put it and what the program is called using a path. ~ means home directory for Unix or GNU/Linux users. &lt;/p&gt;&lt;p/&gt;&lt;p&gt;I'm fairly new to OpenGL windows, but I hope this helps other new users to start up their development-fu for hardware accelerated applications.&lt;/p&gt;&lt;p&gt;If learning this low-level stuff isn't for you, check out QT and KDE application libraries. They have this stuff built in already.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Thanks for stopping by and look forward to more.&lt;/p&gt;&lt;p&gt;=-=-=-=-=&lt;br/&gt;&lt;i&gt;Powered by &lt;b&gt;&lt;a href='http://blogilo.gnufolks.org/'&gt;Blogilo&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-216565377112113128?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/216565377112113128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=216565377112113128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/216565377112113128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/216565377112113128'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2011/04/creating-opengl-window-with-freeglut-in.html' title='Creating an OpenGL Window with Freeglut in C++'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-8753914554639151061</id><published>2011-04-23T02:56:00.001-07:00</published><updated>2011-04-23T02:56:01.233-07:00</updated><title type='text'>Installing Adobe Flash "Square" on a 64-bit Linux Distribution, Firefox 4</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;In the past month I set myself up a beautiful pure 64-bit Gentoo system on my Thinkpad X61. It's not completely ready yet, as I have yet to compile my custom kernel that should allow the wacom screen to be recognized.&lt;/p&gt;&lt;p&gt;Installing 64-bit Flash "Square" should be the exact same procedure on any major GNU/Linux distribution, so there shouldn't be any specific instructions. Also, this instruction set ignores the "proper" distro way of doing things.&lt;/p&gt;&lt;p&gt;Ubuntu has an install-flashplayer deb that does things for the user. Which is preferrable, as the way I am about to describe does not provide automatic updates. And before we continue, I should stress that Flash Square is a PREVIEW and flash is inherantly insecure due to it being a proprietary offering and ubiquitous on the web. &lt;/p&gt;&lt;p/&gt;&lt;p&gt;This method installs flash in "userspace", or in a way that does not require admin privileges. This method reduces the consequences if your computer is comprimised through flash by not being able to touch your system.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;1. Download Flash Player "Square" from Adobe's web site: http://labs.adobe.com/downloads/flashplayer10_square.html&lt;/p&gt;&lt;p&gt;Check under the heading "64-bit Release Flash Player Downloads" and choose what should be the last option: plugin for 64-bit linux&lt;/p&gt;&lt;p&gt;(I shake my head at Adobe. Flash doesn't run in the kernel; they should change it to "linux-based OS" or the proper "GNU/Linux" label)&lt;/p&gt;&lt;p/&gt;&lt;p&gt;2. Extract the .tar.gz download. This can be done via command line by typing "tar -xvf [file]".&lt;/p&gt;&lt;p/&gt;&lt;p&gt;3. Make sure that the plugins folder exists. It didn't by default for my system. "mkdir -p ~/.mozilla/plugins/"&lt;/p&gt;&lt;p&gt;My first attempt at this failed because I created the plugins directory in .mozilla/firefox/.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;4. Copy the libflashplayer.so file to the user's plugin folder. This command should work: "cp libflashplayer* ~/.mozilla/plugins/"&lt;/p&gt;&lt;p/&gt;&lt;p&gt;If you get any errors in the previous commands, you are probably in the wrong directory when typing them, you are typing the double-quotes (don't), or you aren't in the shell/command line. As well, this is for Firefox 4. Theoretically it should work for previous versions of Firefox, but I'm a little lazy to make sure.&lt;/p&gt;&lt;p&gt;And if you haven't checked out Mozilla's newest browser version, you really should. Startup times alone are much improved. Having a default page already cached helps, but the option to load your previously viewed tabs on last exit is convenient.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;I have been doing some introductory coding in OpenGL, Freeglut and C++/QT lately. I hope to come out with some tutorials for those as well in the near future. &lt;/p&gt;&lt;p&gt;=-=-=-=-=&lt;br/&gt;&lt;i&gt;Powered by &lt;b&gt;&lt;a href='http://blogilo.gnufolks.org/'&gt;Blogilo&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-8753914554639151061?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/8753914554639151061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=8753914554639151061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/8753914554639151061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/8753914554639151061'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2011/04/installing-adobe-flash-on-64-bit-linux.html' title='Installing Adobe Flash &amp;quot;Square&amp;quot; on a 64-bit Linux Distribution, Firefox 4'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-1660615465213950687</id><published>2011-02-11T17:06:00.001-08:00</published><updated>2011-02-11T17:06:04.125-08:00</updated><title type='text'>Gentoo Users, QT pt 2</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;QT 4.6 is officially out for Gentoo's portage. It needs to be unmasked, mind you. But I've now installed it and it looks damned great.&lt;/p&gt;&lt;p&gt;I reinstalled Gentoo over the past week, upgrading to an ext4 filesystem along with all my applications. There is a noticable speed difference with the filesystem upgrade alone, but 4.6 also is improved.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;The K3B issue I was having in the last post was solved. Until it gets a newer QT port, I probably won't install it. Plus I installed Gentoo without HAL support, so I may not even be able to use my cd/dvdrom until later. I previously mentioned the drive was having issues. At some point, it got fixed, probably through an update. &lt;/p&gt;&lt;p&gt;While doing this re-install, I had some trouble with my Radeon X1400 mobility card.&lt;/p&gt;&lt;p&gt;I couldn't use desktop effects as they were full of artifacts and my screen was off-kilter. Long story short, I installed xorg-server as opposed to xorg-x11. This installs more of xorg (fonts, etc.) that not everybody needs. I also modified my custom kernel to use pci video card support as a module, which was probably the culprit. After using this new kernel and enabling desktop effects, things run faster than they did previously on my old install.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;All in all, quite impressive and great job to KDE and Gentoo teams.&lt;/p&gt;&lt;p&gt;On a slightly related note, it's quite upsetting to see Microsoft executives infiltrate Nokia, bring down their stock, add their retarded phone OS to the mix (which barely anybody wants), possibly comprimising QT and its development (which is probably what they want anyhow) and looking the fool. &lt;/p&gt;&lt;p&gt;The sooner M$ is buried under their incompetance, the better. It's a shame that they act the bully because they cannot compete in the marketplace.&lt;/p&gt;&lt;p&gt;They already drain resources from samsung and lg off their android phones under false pretences of patent infringement.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Quite foolish, and most disappointing, coming from an IT giant. Then again, Canada's ISP giants are also looking like the retards they are. Usage based billing my ass.&lt;/p&gt;&lt;p&gt;They shant get away with it.&lt;/p&gt;&lt;p&gt;=-=-=-=-=&lt;br/&gt;&lt;i&gt;Powered by &lt;b&gt;&lt;a href='http://blogilo.gnufolks.org/'&gt;Blogilo&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-1660615465213950687?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/1660615465213950687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=1660615465213950687' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/1660615465213950687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/1660615465213950687'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2011/02/gentoo-users-qt-pt-2.html' title='Gentoo Users, QT pt 2'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-5271427526228228238</id><published>2011-01-20T17:00:00.000-08:00</published><updated>2011-01-20T17:07:18.414-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mask'/><category scheme='http://www.blogger.com/atom/ns#' term='breaks'/><category scheme='http://www.blogger.com/atom/ns#' term='blocks'/><category scheme='http://www.blogger.com/atom/ns#' term='package'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='hal'/><category scheme='http://www.blogger.com/atom/ns#' term='world'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='k3b'/><category scheme='http://www.blogger.com/atom/ns#' term='emerge'/><title type='text'>Gentoo Users, QT</title><content type='html'>I was recently updating my gentoo system when I came across a puzzling issue. I was getting updates for QT 4.6.x as well as 4.7.x and there were conflicts all over the place. At least 12 were listed when attempting to emerge world. &lt;br /&gt;&lt;br /&gt;I removed all QT 4.7.x packages rather foolishly to see if the conflicts would clear up, which they didn't. After looking closely at some of the packages, it seems that K3b was bringing in all these older qt updates. I removed it from my system, but the problem still persisted. That's why I'm writing this down. I had to explicitly mask the package in order for the problem to go away.&lt;br /&gt;&lt;br /&gt;(as root)&lt;br /&gt;&lt;br /&gt;echo "app-cdr/k3b" &gt;&gt; /etc/portage/package.mask&lt;br /&gt;&lt;br /&gt;My laptop's already not allowing me to use my cdrom very well, perhaps it's dying. I can't burn or play dvd's on it. Keeps giving me HAL errors, regardless of whether it's running. Other burners don't see the drive either.&lt;br /&gt;&lt;br /&gt;Anyway, I'll be heading up for the Global Game Jam soon. Cheers, y'all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-5271427526228228238?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/5271427526228228238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=5271427526228228238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/5271427526228228238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/5271427526228228238'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2011/01/gentoo-users-qt.html' title='Gentoo Users, QT'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-7550912119972802150</id><published>2010-12-23T01:56:00.001-08:00</published><updated>2010-12-23T01:56:01.090-08:00</updated><title type='text'>Still Alive</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;Finished graduating my course as of this December.&lt;/p&gt;&lt;p&gt;During the time I've been at school, I've also been working full time, so that leaves very little left over to work on my projects. Even less since I moved in October.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Not to worry, once I get paid I will be purchasing a domain to use strictly for gaming/programming projects, whereas this blog will probably include fixes for certain issues I face, cool ideas and things that peak my interest, as well as more anti-M$ rants... most likely. I may also get a little more political in my blog. &lt;/p&gt;&lt;p&gt;That last paragraph implies that I will be working more on projects, which I intend to.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;I may be using sourceforge to host projects, Also, they will probably fall under the GPL 3 license.&lt;/p&gt;&lt;p&gt;There's a lot of cool ideas I'm holding in for now. In the meantime, I must rest.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-7550912119972802150?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/7550912119972802150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=7550912119972802150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/7550912119972802150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/7550912119972802150'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/12/still-alive.html' title='Still Alive'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-7062050432250551269</id><published>2010-10-12T16:06:00.000-07:00</published><updated>2010-10-12T16:09:49.271-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='expect'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='change password'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='send'/><category scheme='http://www.blogger.com/atom/ns#' term='not open while executing'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><category scheme='http://www.blogger.com/atom/ns#' term='spawn'/><category scheme='http://www.blogger.com/atom/ns#' term='push'/><title type='text'>Quickie bug fix</title><content type='html'>I was recently having the following issue while fiddling around with expect and spawn:&lt;br /&gt;&lt;br /&gt;send: spawn id exp6 not open&lt;br /&gt;    while executing&lt;br /&gt;"send "$password\r""&lt;br /&gt;    (file "changepw" line 9)&lt;br /&gt;&lt;br /&gt;in a script to auto-change passwords for some work I'm doing.&lt;br /&gt;&lt;br /&gt;The reason I encountered this error is because my file I was reading from (in the changepw plain-text file), there was no newline character at the bottom. &lt;br /&gt;The fix for this is to always have a clean new line in the file that needs to be read in.&lt;br /&gt;&lt;br /&gt;I realize I haven't done much blogging recently. There should be more to come later on, once I'm more settled.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-7062050432250551269?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/7062050432250551269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=7062050432250551269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/7062050432250551269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/7062050432250551269'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/10/quickie-bug-fix.html' title='Quickie bug fix'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-5281564005482549086</id><published>2010-07-24T09:49:00.001-07:00</published><updated>2010-07-24T09:52:05.119-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><category scheme='http://www.blogger.com/atom/ns#' term='massive'/><category scheme='http://www.blogger.com/atom/ns#' term='ogg'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='library'/><category scheme='http://www.blogger.com/atom/ns#' term='encoding'/><category scheme='http://www.blogger.com/atom/ns#' term='solution'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='theora'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='vorbis'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>FFROGG - FFmpeg Recursive Ogg Encoding Script</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;What happens when you have thousands of songs that you want encoded, but either you&lt;/p&gt;&lt;p&gt;a) Have a command line system where no gui app can encode them for you?&lt;/p&gt;&lt;p&gt;b) Want more efficient use of your processor therefore do not use a gui?&lt;/p&gt;&lt;p&gt;c) are not good at computing and just want to get'r done?&lt;/p&gt;&lt;p/&gt;&lt;p/&gt;&lt;p&gt;This is one itch I just had to scratch. Now I'm aware of great apps like handbreak and I know amarok 1.4.x used to have a script to encode songs in a playlist. However, not only am I a big fan off ffmpeg, I needed to test out my bash-fu.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;&lt;strong&gt;The scenario is this: &lt;/strong&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Joe user has tons of music spread out all over his hard drive. Lets say he has 10 000, none of which are contained in any one folder as more OCD folks would do. (Or an organized heirarchy of folders even)&lt;/p&gt;&lt;p&gt;Joe decides that one day, he wants to move to a patent-free codec such as .OGG format, but not only does he not have the time to FIND all his mp3's, he's clueless about how to encode them and knows of no gui apps (except for above mentioned in this article).&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Joe user visits this article and decides that he wants all his files encoded into one folder on an external hard drive (which could be his mp3 player).&lt;/p&gt;&lt;p&gt;All Joe has to do is ensure that ffmpeg and libvorbis/libtheora are installed correctly on his *nix system and he can go about watching TV or playing with his dog/kids/wife while the machine does all the work. &lt;/p&gt;&lt;p/&gt;&lt;p&gt;&lt;strong&gt;Here's How:&lt;/strong&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;1) Download the script @ [ http://www.mediafire.com/?lc023alg2bsfx9x ] to your home folder&lt;/p&gt;&lt;p&gt;2) Make sure it's executable, use &lt;code&gt;chmod +x ffrogg.sh&lt;/code&gt; to do so.&lt;/p&gt;&lt;p&gt;3) Use the command  &lt;code&gt;sh ffrogg.sh --input=/home/$USER/ --output=/media/externaldisk/encoded --export --recursive&lt;/code&gt; (as long as your --input is linked to the top folder where your music is located, it should be fine)&lt;/p&gt;&lt;p&gt;4) Navigate to your output folder, in Joe User's case, it's /media/externaldisk/encoded/. There should be a script called "ffrogg-encodethis-[numbers].sh".&lt;/p&gt;&lt;p&gt;5) At his/your convenience, run the script. Example: &lt;code&gt;sh ffrogg-encodethis-1279967631.sh&lt;/code&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Technical Aspect:&lt;/strong&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Here's the really cool technical details of the script.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;THIS SCRIPT IS CURRENTLY IN ALPHA, IT DOES NOT WORK 100%!&lt;/p&gt;&lt;p/&gt;&lt;p&gt;This script at its greatest potential will dynamically produce a script using the ffmpeg and theora-vorbis backend that can be run which will encode ALL RECOGNIZED AUDIO FILES that were found when it was invoked. It can recursively find all audio files starting at the specified input directory. Since this is alpha software, below is a list of what DOES work in the current version (0.01.05 ALPHA):&lt;/p&gt;&lt;p&gt;sh ffrogg.sh [commands]&lt;/p&gt;&lt;ul&gt;&lt;li&gt;--input=[folder or file]&lt;/li&gt;&lt;li&gt;--output=[folder only]&lt;/li&gt;&lt;li&gt;--logging (this is for debugging purposes only, can specify a folder with --logging=[folder] if directory is read-only)&lt;/li&gt;&lt;li&gt;--recursive (this flag is required to go into directories to find audio files. Otherwise it just looks at contents of specified directories)&lt;/li&gt;&lt;li&gt;--export (Create the script and exit. Omitting this flag will cause the script to encode before exiting, although it gives a period to exit before starting)&lt;/li&gt;&lt;li&gt;--force (No use for it yet, as the recovery handling bit is not quite implemented. Will remove temp files if they get in your way)&lt;/li&gt;&lt;li&gt;--help (Gives a list of options, some of which will not work yet)&lt;/li&gt;&lt;li&gt;--version (displays version of program)&lt;/li&gt;&lt;/ul&gt;&lt;p/&gt;&lt;p&gt;This script creates a few temporary files which is inefficient, but this is by no means a professional work. It's also licensed under the GPL version 2 (although I may have omitted that in the script itself).&lt;/p&gt;&lt;p/&gt;&lt;p&gt;If the --output and --logging= and --save-state= flags are given without parameters, the current folder is automatically used "." .&lt;/p&gt;&lt;p&gt;Running the script without parameters will cause it to exit.&lt;/p&gt;&lt;p&gt;I may not get around to improving it much, and I do have a graphical user interface planned which would require basically a re-write of the script into a QT application, so it may not get past Alpha. Feel free to take it on yourselves as long as you give credit in the comments at the very least, to PeonDevelopments 2010.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Thanks, and happy listening.&lt;/p&gt;&lt;p/&gt;&lt;p/&gt;&lt;p&gt;Since I don't usually look at comments, send them to my gmail.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;peon.developments --at-- gmail --dot-- com.&lt;/strong&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;=-=-=-=-=&lt;br/&gt;&lt;i&gt;Powered by &lt;b&gt;&lt;a href='http://blogilo.gnufolks.org/'&gt;Blogilo&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-5281564005482549086?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/5281564005482549086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=5281564005482549086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/5281564005482549086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/5281564005482549086'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/07/ffrogg-ffmpeg-recursive-ogg-encoding.html' title='FFROGG - FFmpeg Recursive Ogg Encoding Script'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-7569227563648649192</id><published>2010-07-23T06:58:00.001-07:00</published><updated>2010-07-23T06:58:48.833-07:00</updated><title type='text'>Scripting in Bash: Arrays, Files and Spaces</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;I recently encountered some strange behaviour in my bash shell while writing a script.&lt;/p&gt;&lt;p&gt;My script would take the contents of a folder and store them into an array. Sounds simple enough, as it should be. But it's not.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;If you type verbatim: &lt;/p&gt;&lt;p&gt;" declare -a ARRAY=`ls -1 -x $directory` "&lt;/p&gt;&lt;p/&gt;&lt;p&gt;You will find that every space in every filename will produce its own entry in the array.&lt;/p&gt;&lt;p&gt;A file called "An Introduction To Bash.txt" would be seen in the array as &lt;/p&gt;&lt;p/&gt;&lt;p&gt;An&lt;/p&gt;&lt;p&gt;Introduction&lt;/p&gt;&lt;p&gt;To&lt;/p&gt;&lt;p&gt;Bash.txt&lt;/p&gt;&lt;p/&gt;&lt;p&gt;which is an abomination for what I need these the filenames for. It does make sense why this behaviour appears, but if we want the entire filename per entry, we need to take the filename before it's put into the $ARRAY variable and do something with it to ensure spaces either do not exist or do not denote the start of a new array token.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;The former being the easiest and resourced method, I converted all spaces to underscores (temporarily) to prove my point.&lt;/p&gt;&lt;p&gt;The command is now " declare -a ARRAY=`ls -1 -x $directory | sed 's/ /_/g'` " and it will output filename entries properly, albeit with underscores, no spaces.&lt;/p&gt;&lt;p&gt;To ensure this effect is permanent and not just for show, one would need to rename (using the 'mv' command) all the files in that directory so no spaces are in the filenames.&lt;/p&gt;&lt;p/&gt;&lt;p/&gt;&lt;p&gt;Bash isn't one of my stronger languages, so I may have missed a blaringly obvious detail. &lt;/p&gt;&lt;p&gt;Also of note: I'm still working on the freeworld project, albeit slowly after gaining employment. My 1st revision document is approximately 70-80 pages, but that's not including proper use case tables and UML/flowchart diagrams. Least of all the prototypes for necessary components.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;I hope to make another entry soon enough, in the coming couple weeks.&lt;/p&gt;&lt;p&gt;Peon out.&lt;/p&gt;&lt;p&gt;=-=-=-=-=&lt;br/&gt;&lt;i&gt;Powered by &lt;b&gt;&lt;a href='http://blogilo.gnufolks.org/'&gt;Blogilo&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-7569227563648649192?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/7569227563648649192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=7569227563648649192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/7569227563648649192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/7569227563648649192'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/07/scripting-in-bash-arrays-files-and.html' title='Scripting in Bash: Arrays, Files and Spaces'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-735298511382188820</id><published>2010-05-30T18:20:00.001-07:00</published><updated>2010-05-30T18:20:15.027-07:00</updated><title type='text'>Minimalism on a Tablet</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;I've been experimenting with minimalist environments lately. While I'm a KDE guy all the way, I do have a tablet that even with KDE 4.4 on Slackware, it feels a little sluggish and gets ~ 2 hours of battery. I'm a bit of a perfectionist so onward I search for the perfect tablet PC configuration.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;I'm no expert, but I've been using Blackbox as a window manager on a Gentoo system and have been quite pleased with the results. My average cpu while idle is 0-1% and currently my ram is sitting at 7% usage, or 76 MB out of 1 GB. (Courtesy of Conky, a great system monitor app)&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Computer stats:&lt;/p&gt;&lt;p&gt;IBM Thinkpad X41&lt;/p&gt;&lt;p&gt;1.5 GHz LV Centrino (Pentium M)&lt;/p&gt;&lt;p&gt;1 GB DDR2 Ram (probably 533MHz or 667 MHz)&lt;/p&gt;&lt;p&gt;Intel GMA 910 integrated graphics chipset&lt;/p&gt;&lt;p&gt;ICH6 Intel Motherboard&lt;/p&gt;&lt;p&gt;1024x768 px screen resolution&lt;/p&gt;&lt;p&gt;Wacom Penabled&lt;/p&gt;&lt;p/&gt;&lt;p/&gt;&lt;p&gt;Functionality varies, and a minimal system isn't for everyone. I just compiled bmpanel (which looks great with transparency) for my bottom panel. Right click is the menu and after installation of a program, it must be regenerated. Some things have to be configured by hand and to use awesome programs from KDE and GNOME, both sets of libraries must be installed which amounts to ~70-90 MB for KDE and about ~33 MB for GNOME.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;One program I would recommend for tablets is the GTK-based character input application, Cellwriter. I've only played with it currently, but it looks good. Once I add some script functionality to get the screen to rotate, a system tray, and a customized monitor layout, all will be good. Will update with screen shots later.&lt;/p&gt;&lt;p&gt;=-=-=-=-=&lt;br/&gt;&lt;i&gt;Powered by &lt;b&gt;&lt;a href='http://blogilo.gnufolks.org/'&gt;Blogilo&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-735298511382188820?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/735298511382188820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=735298511382188820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/735298511382188820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/735298511382188820'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/05/minimalism-on-tablet.html' title='Minimalism on a Tablet'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-8388816344156003633</id><published>2010-05-27T11:23:00.001-07:00</published><updated>2010-05-27T11:23:08.000-07:00</updated><title type='text'>The FreeWorld Project *</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;It's time for the pre-introduction (unveiling) of a project years in the making. With an intermittant design phase of 7+ years and insight as a developer and programmer, PeonDevelopments presents a strong probability of a new multiplatform Java-based FOSS application dedicated to providng the greatest 2D Role Playing Game Engine to all Gamers, Casual Players, Developers, Marketers, Businesses and Educational Institutions interested. &lt;/p&gt;&lt;p/&gt;&lt;p&gt;Our mission statement is &lt;strong&gt;To provide developers and non-experienced users with a modular and FLOSS role playing game engine that performs reasonably well on multiple platforms and aids in the production of dynamic and advanced battle systems for the purpose of relating a story, plot or series of meaningful actions.&lt;/strong&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;As the project is not mature and currently in vapourware status, I would like to remind readers that documentation is being developed to lay groundwork for the structure of the Engine. Expect a release of such documentation in 3 months of the posting of this article at the latest.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;I will be posting a road map at a later date. I wish to produce a working proof-of-concept prototype with Installer before allowing others to work on developing this project. With that in mind, I have big expectations of this project and hope it will fill a niche that currently is not being filled to the extent it could be. &lt;/p&gt;&lt;p&gt;Projects such as Sphere do exist but are not maintained or as powerful as I want. More updates at a later stage. &lt;/p&gt;&lt;p&gt;Current documentaiton progress: At 40 pages. Expect 5x that.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;* Not the official release name of the project, used as a placeholder&lt;/p&gt;&lt;p&gt;=-=-=-=-=&lt;br/&gt;&lt;i&gt;Powered by &lt;b&gt;&lt;a href='http://blogilo.gnufolks.org/'&gt;Blogilo&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-8388816344156003633?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/8388816344156003633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=8388816344156003633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/8388816344156003633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/8388816344156003633'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/05/freeworld-project.html' title='The FreeWorld Project *'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-929456447644516466</id><published>2010-05-21T09:13:00.001-07:00</published><updated>2010-05-21T09:13:07.765-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KVM'/><category scheme='http://www.blogger.com/atom/ns#' term='not registered at dbus'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE 4.4.2'/><category scheme='http://www.blogger.com/atom/ns#' term='AppArmor'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Kile'/><category scheme='http://www.blogger.com/atom/ns#' term='CFQ'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><category scheme='http://www.blogger.com/atom/ns#' term='akonadi'/><category scheme='http://www.blogger.com/atom/ns#' term='KSM'/><title type='text'>Technical-tainment</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;So as I'm sitting here at the table, drinking my light-roast coffee and feeling pretty good about life, it's time to let my readers know (all 1 of them, me) about some cool techy stuff that my mind is on.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;http://kernelnewbies.org/Linux_2_6_32#head-935c2274be57c1585f23d91d185888ed0b6e0567&lt;/p&gt;&lt;p&gt;The above link is to the changelog for kernel 2.6.32 (which I currently use) and its improvements. Notably, some great improvements have been done in virtualization as with KSM (Kernel Shared Memory), a daemon process goes through page files determining which files are the same and merges them to reduce memory usage. That in itself is great but it doesn't put anything in perspective. Until you read the following: &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;"The result is a dramatic decrease in memory usage in virtualization environments. In a virtualization server, Red Hat found that thanks to KSM, KVM can run as many as 52 Windows XP VMs with 1 GB of RAM each on a server with just 16 GB of RAM."&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;If an XP machine was to be run under minimum requirements, using 128 MB of Ram, you'd get a barely functional OS and 52 of them would use a total of 6.656 GB of Ram. I've used XP in a VirtualBox VM using 512 MB of Ram and got some decent performance out of it. (Ran SAP and Borland Together in it; not at the same time) So assuming that each user is limited to a 512 MB Windows XP Pro OS, you'd be looking at a total of 26.624 GB of Ram required if these were dedicated machines. By sharing memory and having 52 XP machines running on a bare-bones Hardware Virtualization using Red Hat, each OS would require 307 MB of Ram if it were dedicated, but as it's sharing memory, the end result would mean more Ram to use. Assuming having shared memory resulted in each OS feeling as though it had 512 MB of Ram, that's a savings of ~10 GB of Ram, or an efficiency of 166.4% (2/3rds greater) over dedicated Ram resources.&lt;/p&gt;&lt;p&gt;And that's just one kernel improvement. I wonder how Windows kernel is doing in comparison.&lt;/p&gt;&lt;p&gt;The 2.6.32 kernel also has scheduler improvements in its CFQ low-latency mode. &lt;/p&gt;&lt;p/&gt;&lt;p&gt;Some people have had issues with KDE's Akonadi, getting a "Not Registered At DBUS" message. From my limited experience in dealing with this error, it generally only happens when trying to use an external SQL database. I believe that this is an upstream issue, as Akonadi is constantly being worked on during this time and big things are expected of it. (This has been tested on a KDE 4.3.5 and 4.4.2 system) The internal database doesn't seem to have this issue; it works at least, though sometimes produces a warning message. It may take a few more releases before this bug is dealt with, &lt;/p&gt;&lt;p&gt;In one Fedora forum, it seems that using an external sql database works under the root user. I wouldn't recommend this route.&lt;/p&gt;&lt;p&gt;Others say that it's an AppArmour issue, that it is blocking akonadi. It seems odd, as I still got this issue using Gentoo which doesn't have that firewall installed. The developer team which worked on it has been layed off as well.&lt;/p&gt;&lt;p&gt;http://news.cnet.com/8301-13580_3-9796140-39.html?part=rss&amp;amp;subj=news&amp;amp;tag=2547-1_3-0-5&lt;/p&gt;&lt;p/&gt;&lt;p&gt;There are some issues with Gentoo's KDE Unstable 4.4.2 release, though that's to be expected.&lt;/p&gt;&lt;p&gt;Sometimes closing Kontact does not completely close it and attempting to run it again will have no effect. The process must be killed before it can be sucessfully launched again.&lt;/p&gt;&lt;p&gt;Kile (2.1 beta 2 &amp;amp; 3) seems to have an issue where closing the program results in an unexpected error minutes later or if the program is left open, unattended for too long. It doesn't seem to impact my work (autosave it on) and is more of an annoyance. Still, it's a great program for working in LaTeX.&lt;/p&gt;&lt;p&gt;Umbrello is a nice UML modeller program, but I get segfaults semi-regularly. I'm not sure why that is and I still use it. This doesn't seem restricted to the unstable KDE release, but I thought I'd point it out anyway.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Some final thoughts on KDE 4.4.2: It's faster, looks better, and has more functionality. I'm getting used to tabbed file browsing and I like where the KDE team is headed.&lt;/p&gt;&lt;p&gt;A special thanks to Aaron J. Seigo, a KDE guru and expert. This guy is real inspiration and I hope to do some work on KDE in the near future.&lt;/p&gt;&lt;p&gt;=-=-=-=-=&lt;br/&gt;&lt;i&gt;Powered by &lt;b&gt;&lt;a href='http://blogilo.gnufolks.org/'&gt;Blogilo&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-929456447644516466?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/929456447644516466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=929456447644516466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/929456447644516466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/929456447644516466'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/05/technical-tainment.html' title='Technical-tainment'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-5500098454404602708</id><published>2010-05-21T08:32:00.001-07:00</published><updated>2010-05-21T08:32:00.526-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='system administration'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='krita'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='capstone'/><category scheme='http://www.blogger.com/atom/ns#' term='weekend'/><category scheme='http://www.blogger.com/atom/ns#' term='openoffice'/><category scheme='http://www.blogger.com/atom/ns#' term='kolourpaint'/><title type='text'>Long Weekend</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;In writing the title of this post, the song by Scooter comes to mind.&lt;/p&gt;&lt;p&gt;Well it's the weekend, for me at least. Currently jobless and bored, it'll be a great geeky weekend indeed. In fact, my joblessness has become a catalyst for getting more involved in my personal work. &lt;/p&gt;&lt;p&gt;School is out and I went out yesterday to congradulate my fellow graduates from college (though I, for reasons none too serious, did not graduate this at the end of this year) and wish them the best. Once school was out, my body and mind did a crash nose-dive into my bed. For about a week or two I was sleeping approximately 12 hours a day, catching up on all those late nights/all nighters spent on our Capstone Project. (2-semeter long enterprise-level software project with proper documentation and installation)&lt;/p&gt;&lt;p&gt;Back to the topic at hand. Once I recovered from my exhaustion, I started back into the world of programming and computing. Re-built my resume from scratch using a personal custom design (in OpenOffice.org Draw program none-the-less) and managed to hook in one possible job prospect of which I'm only now getting the full force of what I've done.&lt;/p&gt;&lt;p&gt;As an aside, draw programs that I really recommend for GNU/Linux users are in fact, OpenOffice.org Draw and Krita for wonderful paint/publishing works and KolourPaint for the equivalent of Window's paint.exe program. Not much experience with The Gimp, but once they implement tabs and one window (I think there's a plugin for that, photogimp or something) then I'll go for a more professional bit.&lt;/p&gt;&lt;p&gt;So I met one of the management team at the Calgary Open Source Software Festival (2010) as he was a speaker there. Had a little chat afterwards and got a business card. Weeks later when I got around to applying for jobs, I mentioned this past experience and added a cover letter. Well, about a week later the company and I touched bas. They are very busy, so I am quite lucky to have gotten the attention I did; And while they don't have many positions open, it's quite possible that they will have room to train me in multiple areas and the *best* part is, they may create a System Administration position later on and have me in charge of that! &lt;/p&gt;&lt;p&gt;Now, the mere thought of the potential here is exciting for me. As I mentioned in the interview and will mention here now, &lt;/p&gt;&lt;p&gt;"In 5 years I see myself as a Software Developer. In 25 years, I see myself as a Senior System Administrator."&lt;/p&gt;&lt;p&gt;Basically saying that while I'm quite a geek and willing to do any odd jobs including software development of which I truly enjoy, I have a career goal and in one near-coincidental meeting (assuming I actually believe in those), my entire life as a geek may have been set up perfectly. It's much too early to say for sure and anything could get in the way of this. Nothing is conclusive and I have alternate paths if this blows up. But to be taken seriously, me, a young 22-year old whippersnapper as a possible dba / system admin, this is almost unprecedented! Basically this entire series of events rubbed my ego to the hilt. =)&lt;/p&gt;&lt;p&gt;Best part of all: It's mainly GNU/Linux work. Right up my alley.&lt;/p&gt;&lt;p&gt;So what am I going to do this weekend? Catch up on System Administration tools and information. Read a book. Play around with a project of mine. Catch up on tech news feeds. Learn some more C++ and start on Python. Build a Plasmoid. Something, anything productive. And I'm going to enjoy it.&lt;/p&gt;&lt;p&gt;We'll see where this leads. God willing, everything will work out in the end. It always does though, even if it's not how I want it to. But even in my darkest hours, I become stronger and more knowledgable so I don't see any downside to being rejected as a Sys Admin either.&lt;/p&gt;&lt;p&gt;I hope everyone enjoys their weekend.&lt;/p&gt;&lt;p&gt;- NP&lt;/p&gt;&lt;p&gt;=-=-=-=-=&lt;br/&gt;&lt;i&gt;Powered by &lt;b&gt;&lt;a href='http://blogilo.gnufolks.org/'&gt;Blogilo&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-5500098454404602708?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/5500098454404602708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=5500098454404602708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/5500098454404602708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/5500098454404602708'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/05/long-weekend.html' title='Long Weekend'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-1590300323147042120</id><published>2010-04-26T11:37:00.001-07:00</published><updated>2010-05-21T08:06:34.702-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='alienware'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='t60'/><category scheme='http://www.blogger.com/atom/ns#' term='binary search tree'/><category scheme='http://www.blogger.com/atom/ns#' term='school'/><category scheme='http://www.blogger.com/atom/ns#' term='thinkpad'/><category scheme='http://www.blogger.com/atom/ns#' term='kubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Life to CURDATE();</title><content type='html'>School's almost done and the whether is cold and blizzardy. Or, at least it was a few nights ago; That's true Canadian weather for you.&lt;br /&gt;&lt;br /&gt;I'm currently finished writing all my assignments and have a quiz and presentation left before I am free at long last. All this free time has also meant I've been tinkering around with my computer more often than usual. Take, for instance, yesterday. While no one was around to see it, I basically spent the whole day compiling on my laptop. A lot has happened since my last post and allow me to bring you up to speed.&lt;br /&gt;&lt;br /&gt;+ Sold my Alienware machine that I previously had Gentoo on. Sad, I miss the machine, but some hardware or driver hiccups meant that it was constantly freezing. I'm wary that the problems stemmed either from a bad hard drive or the Vista drivers it came with. Perhaps it is also indicitive of some poor Kernel drivers too, I dunno. Doubtful though. One strange issue I had is that after installing Kubuntu 8.10, it would freeze if and only if the power manager was not on performance. Well such is life. Sold it, payed for another month of insurance, and purchased a beautiful Thinkpad T60 for a fraction of the Alienware's cost.&lt;br /&gt;&lt;br /&gt;+ T60 Specs: 2.0 GHz Core Duo, 2GB DDR2 Ram, 512 MB x1400 ATI Radeon video (128 MB dedicated), 100GB 5400 rpm hard drive, 1400x1050 resolution, keyboard light, security fingerprint reader, and a decent speaker system. Total Price? $375. It was a deal to be sure, the last one in stock. Looked brand new except for the outer lid which had some scratches on it. This runs really cool, standard at 40 degrees idle to around 50-70 when working, compiling, and of course, running flash videos. It doesn't have amd64 support unfortunately, one thing I miss. But the keyboard on this thing is where it really shines. IBM and keyboards are like bread and butter. Perhaps I'll pick up an IBM Model M in my lifetime. I remember using them way back and enjoying every minute of it.&lt;br /&gt;&lt;br /&gt;+ Installed Gentoo on the T60. Overall, things went smoothly on the third install attempt. I have issues with perfection and things weren't up to snuff the first two times. But I'm becoming more comfortable with the Gentoo environment and more prone to try fixing problems as opposed to the 'reinstall when something goes wrong' methodology which I have yet to shake off. I installed KDE 4.3.5 and that ran wonderfully.&lt;br /&gt;&lt;br /&gt;+ Compiled a kernel for my T60. I need to enable plug-and-play usb mouse and keyboard support as those don't work yet, as well as the radeon fb compiled into the kernel. Currently it's as a module which doesn't work. However, responsiveness since the upgrade has increased wonderfully; A pre-emptive &lt;strike&gt;high&lt;/strike&gt; low-latency kernel also helps.&lt;br /&gt; &lt;br /&gt;+ Installed KDE 4.4 series unstable on Gentoo. Had some issues, will mention them in my next post. Still loved every minute of using this faster, more streamlined system.&lt;br /&gt;+ Preparing my resume for my life as a cubicle slave. Just kidding though. While I have no qualms about being a code monkey/data entry clerk/ tech documentor, it's not something my ambition will sit well with over the years. I am in fact hoping to eventually work with the government on education, but we'll see where that leads me. &lt;br /&gt;&lt;br /&gt;+ Excited to work on my own projects and plans, make some money, pay off debts (first priority), and collect more computer toys. While I love having the fastest and greatest/latest electronic toys in my paws, I also have learned to appreciate the stability and endurance of legacy machines. Remember when towers were made of steel? IBM Keyboard Model M's are still known for their quality. Nowadays, we get cheap keyboard crap built into plastic laptops such as the Toshiba A9, with one of the most gimped keyboards I've ever used. I'm still not sure which is worse: a small backspace key, or a small shift key. Both irritate me like a papercut to the eyeball.&lt;br /&gt;&lt;br /&gt;And so, now with a moderately set up Gentoo machine with KDE I feel I am ready to start programming full force, starting with basic plasmoids and simple GUI's in QT4. I still hope to work in Java and am very proud of a Binary Search Tree I built last year for my college. Why are people still using ArrayLists and the like?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Check out my next post for KDE-specific notes and a very frustrating error I think I've gained an understanding on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-1590300323147042120?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/1590300323147042120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=1590300323147042120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/1590300323147042120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/1590300323147042120'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/04/life-to-curdate.html' title='Life to CURDATE();'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-2985486987683247313</id><published>2010-03-31T06:10:00.001-07:00</published><updated>2010-03-31T06:11:36.290-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='selling'/><category scheme='http://www.blogger.com/atom/ns#' term='used'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><category scheme='http://www.blogger.com/atom/ns#' term='sold'/><title type='text'>5 things you should never do when selling a computer</title><content type='html'>As I've recently been in the market for a well-priced used laptop to do coding on, I've come across some amazing poorly-written ads. I'm here to share with you my experiences and to warn people following in my footsteps, which sellers might not be the best to buy from.&lt;br /&gt;&lt;br /&gt;Here is a list of 5 things you should never do when selling a computer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. Advertising your computer as a 'steal', 'the bomb', 'a blast', or any other poorly worded descriptions on the quality. Remember, this is a USED laptop. Most people go into a transaction knowing it's going to be a little iffy.&lt;br /&gt;&lt;br /&gt;4. You can find the specs ________.&lt;br /&gt;When people are buying a used computer, they don't like having to hunt down specs 'cause the seller is too damn lazy to copy-paste from a review or homepage of the computer. Do you not know the capability of the machine you're trying to sell? That looks pretty bad. Granted, this doesn't always mean the product is bad, but less dedicated buyers won't pay as much attention.&lt;br /&gt;&lt;br /&gt;3. This machine is great for doing ________.&lt;br /&gt;Because we as potential buyers are always worried if we will be able to browse the internet or use a spreadsheet in this day in age. For the more savvy buyers, one boot with Puppy Linux is enough to run everything you say (with exception of 3D games, if that's advertised) on hardware that's 10 years old or more.&lt;br /&gt;&lt;br /&gt;2. Obnoxious in-depth specs that only hardcare uesrs would understand. I mean, there's a line between really detailed and trying to confuse customers into thinking they're getting a great deal. For example, you can sell a video card and state all the cores, size of video ram, wattage, how old, manufacturer, etc. and most people will know what you mean. But start going off into how many transistors and such, basically reiterating the engineer's manual, you've just become a dick.&lt;br /&gt;&lt;br /&gt;1. Stating Virtual Memory as a selling point.&lt;br /&gt;I actually saw an ad with this once. It blew my mind. 786MB of Virtual Ram on your computer? I'm sold.&lt;br /&gt;/sarcasm&lt;br /&gt;When people get to the point where one variable that can easily be changed and only affects performance when multiple applications are sucking the ram out of your machine kicks in, it's obvious they are going for the suckers. Don't be one. If someone advertises Virtual Ram, stay away. More is not always better in this case.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-2985486987683247313?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/2985486987683247313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=2985486987683247313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/2985486987683247313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/2985486987683247313'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/03/5-things-you-should-never-do-when.html' title='5 things you should never do when selling a computer'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-1812721942699494667</id><published>2010-03-13T13:00:00.000-08:00</published><updated>2010-03-13T13:07:24.798-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='amarok'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnu/Linux'/><title type='text'>"Can Windows do this? " Part I</title><content type='html'>I've decided to write an ongoing blog that revolves around things I do that Windows, consequently, does not do. This may apply to OS-X as well.&lt;br /&gt;&lt;br /&gt;Moving Files that are in Use:&lt;br /&gt;&lt;br /&gt;As I'm listening to music in AmaroK, I tend to move the actual audio files into folders as to separate the good from the bad.&lt;br /&gt;As long as the audio file is playing, I can move the physical file anywhere on disc without interrupting playback; I'm guessing the entire file is either loaded into ram or the filesystem points to references, not literal file locations. &lt;br /&gt;&lt;br /&gt;Windows, however, will give a "File is in use" error whenever you try to move an audio file that is being played. Meaning that you can only move it after playback has ended. Now, it's no 'killer reason' to stop using Windows, but it's one thing I do that Windows doesn't support.&lt;br /&gt;Needless to say, I love having the ability to move my files when I say it's okay.&lt;br /&gt;Attempting to play the file after moving it will result in an error. Obviously.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-1812721942699494667?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/1812721942699494667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=1812721942699494667' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/1812721942699494667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/1812721942699494667'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/03/can-windows-do-this-part-i.html' title='&quot;Can Windows do this? &quot; Part I'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-6430714663324314113</id><published>2010-03-10T14:44:00.000-08:00</published><updated>2010-03-10T17:08:20.311-08:00</updated><title type='text'>Gentoo Series Part II : Problem and Solution</title><content type='html'>To recap what went on in my last post, I had Kubuntu 8.10 WITH 3D acceleration on it, and Gentoo with the newest Xorg (1.7) with no 3D acceleration.&lt;br /&gt;&lt;br /&gt;I'm a little hazy on the little details of my excursion, but here's the gist of it.&lt;br /&gt;&lt;br /&gt;Package versions of Gentoo and Kubuntu 8.10's Xorg were 1.7 and 1.5 respectively.&lt;br /&gt;Kernel versions were 2.6.31 and 2.6.28 respectively&lt;br /&gt;&lt;br /&gt;Now along with each Xorg version, there are a LOT of dependancies that go with it.&lt;br /&gt;Things such as:&lt;br /&gt;randrproto, dri2proto, xcb-proto, xextproto, libXau, xtrans, libxcb, libX11, libXext, etc.&lt;br /&gt;&lt;br /&gt;and so on and so forth. These versions different from each other as well.&lt;br /&gt;&lt;br /&gt;Here's the Kubuntu Xorg version in its entirety.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;X.Org X Server 1.5.2&lt;br /&gt;Release Date: 10 October 2008&lt;br /&gt;X Protocol Version 11, Revision 0&lt;br /&gt;Build Operating System: Linux 2.6.24-15-server x86_64 Ubuntu&lt;br /&gt;Current Operating System: Linux phoenix 2.6.27-16-generic #1 SMP Tue Dec 1 19:26:23 UTC 2009 x86_64&lt;br /&gt;Build Date: 09 March 2009  01:06:41PM&lt;br /&gt;xorg-server 2:1.5.2-2ubuntu3.1 (buildd@crested.buildd)&lt;br /&gt;        Before reporting problems, check http://wiki.x.org&lt;br /&gt;        to make sure that you have the latest version.&lt;br /&gt;Module Loader present&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I spent a lot of my time compiling a kernel for Gentoo that matched the specifications on my M17 Alienware laptop. I owe a lot of thanks to the Gentoo wiki for having an entry on such a laptop.&lt;br /&gt;&lt;br /&gt;Page: http://en.gentoo-wiki.com/wiki/Alienware_M17&lt;br /&gt;&lt;br /&gt;The first thing I started to change was the Kernel. I started out with 2.6.31 and ended with 2.6.28.10. It took quite a few tries to compile it right. Once I had a kernel up and running smoothly, I started to focus on X. &lt;br /&gt;As I had Xorg 1.7 installed, I had to first remove it. From what I remember, it didn't uninstall some of the dependencies. (Perhaps my choice of removal options in emerge). So after that, I installed Xorg 1.5.3 without too much issue. Installing it is the easy part after all =p&lt;br /&gt;&lt;br /&gt;I believe that 1.5.3 included dependencies that were not compatible with the ATI 8.12 catalyst drivers (such as libXext, the proto libraries) but were still installed as part of the 1.5.3 package as they were 'updated' versions. Upon my journey through the vast wasteland of old forums, I found a compatibility list for Xorg 1.5.3.&lt;br /&gt;&lt;br /&gt;Find the list here: http://bugs.gentoo.org/show_bug.cgi?id=251832&lt;br /&gt;&lt;br /&gt;Basically this lists all of the stable xorg-related packages for the 1.5.3 release.&lt;br /&gt;Then the hard part began: I had to go through each package and ensure that the version was equal or as close to as possible, the specified version.&lt;br /&gt;Some packages I don't think I found (this was months if not a year after bug was created) because of recent changes to the repo structure. After getting the versions right and removing potential conflicts, I had a complete 1.5.3 Xorg built and ready. &lt;br /&gt;&lt;br /&gt;Finally, after weeks of work I installed the Catalyst drivers and they WORKED!&lt;br /&gt;However, it wasn't time to celebrate yet. If I attempted to re-install xorg 1.5.3 or did an update world, it would have overridden my work and killed my display. I spent hours afterwords blocking versions of various xorg packages for emerge.&lt;br /&gt;&lt;br /&gt;I wasn't quite done yet either. Once up and running, I started to get the KWin slow compositing issue with window resizing, maximizing and minimizing. In the end I patched Xorg myself as xorg-1.5.3-r7 (r6 was the max revision last I checked) and installed it as a local package.&lt;br /&gt;At first I started out with the slow compositing patch, but that didn't work. Then I heard about a patch known as the fedora-dont-backfill patch. I patched using that, but it still performed poorly so I basically removed all code in a method that was the potential problem. Sadly it was still laggy, but performed much better after my patch.&lt;br /&gt;&lt;br /&gt;Turns out that the poor performance was due to a performance improvement to the Intel graphics chipset.&lt;br /&gt;&lt;br /&gt;So after tweaking the system a bit, I got a working Xorg and Gentoo system up and running. Awesome!&lt;br /&gt;&lt;br /&gt;Below is a list of files with descriptions that someone who wants to attempt the same process would find useful.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Fedora Backfill Patch: &lt;/span&gt;&lt;br /&gt;http://www.mediafire.com/?nwmzy4mlmgz&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Gentoo Packages I had Installed: &lt;/span&gt;&lt;br /&gt;http://www.mediafire.com/?kjitdxxqe5y&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Alienware M17 Customized 2.6.28.10 kernel:&lt;/span&gt; &lt;br /&gt;http://www.mediafire.com/?nzoz4dyccme&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Gentoo make.conf: &lt;/span&gt;&lt;br /&gt;http://www.mediafire.com/?kyrnwvmwgjz&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Gentoo package.keywords: &lt;/span&gt;&lt;br /&gt;http://www.mediafire.com/?oyezzmyzwzj&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Gentoo package.mask: &lt;/span&gt;&lt;br /&gt;http://www.mediafire.com/?wh22nmmtzuh&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Gentoo package.unmask: &lt;/span&gt;&lt;br /&gt;http://www.mediafire.com/?j2zmydyered&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;KWin Resizing Patch: &lt;/span&gt;&lt;br /&gt;http://www.mediafire.com/?dmymxmhdhzx&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Gentoo rc.conf: &lt;/span&gt;&lt;br /&gt;http://www.mediafire.com/?5nmjvmwyjmm&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Local (modded) Xorg 1.5.3-r7: &lt;/span&gt;&lt;br /&gt;http://www.mediafire.com/?2qz5dnzynwj&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;If you're installing Gentoo, you'll probably understand the meaning of the files.&lt;br /&gt;&lt;br /&gt;I hope that this explaination of 3D acceleration on Gentoo's older 1.5.3 Xorg are satisfactory. Feel free to email me if you have any questions.&lt;br /&gt;I may write another blog on Gentoo, part III, on some issues I found. Nothing warranting such a large blog post.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;NuclearPeon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-6430714663324314113?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/6430714663324314113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=6430714663324314113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/6430714663324314113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/6430714663324314113'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/03/gentoo-series-part-ii-problem-and.html' title='Gentoo Series Part II : Problem and Solution'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-4158302968617951598</id><published>2010-01-20T15:54:00.000-08:00</published><updated>2010-01-20T16:43:30.523-08:00</updated><title type='text'>Gentoo Series Part I : Past and Present</title><content type='html'>For the first post of my multi-part Gentoo blog series, I will be discussing the quirks I've encountered, the desired goal of my objectives, and the path to take to get there.&lt;br /&gt;&lt;br /&gt;The purpose of the following Gentoo blog posts is to document how I went from the base command-line Gentoo system to a 3D-accelerated environment using the proprietary ATI drivers. Unfortunately, those, mixed with some quirks of my Alienware M17 machine, make for a lot of frustrations and cursing. Something hopefully those who read this blog will avoid, if you are following in these footsteps.&lt;br /&gt;&lt;br /&gt;In retrospect, I was quite lucky for things to turn out the way they did. &lt;br /&gt;It all started when I purchased this laptop a year back, in December 2008. The school-based laptops had a ton of resource-consuming Windows apps on them (Anti-virus for example) that severely degraded performance. The screens were poor, small (1200x800, so not that horrible), and they had the most gimped left-shift-key I've witnessed on a computer. Major productivity killers.&lt;br /&gt;So I ordered this baby, with 1920x1200 resolution, dedicated video, but otherwise quite plain. Ever since discovering GNU/Linux in 2005 way back, when Ubuntu 6.10 was out and new, it had been my distro of choice. Well, Kubuntu to be exact, and I had not had experience in anything else but Fedora Core (not a great experience). Upon the laptop's arrival, I installed Ubuntu 8.10, the most recent at the time. &lt;br /&gt;&lt;br /&gt;Upon first booting up into the system, I was met with the ugly 'no video driver' resolution desktop. The newest driver at the time, the Catalyst 8.12, provided excellent 3D and all was right with the world when installed. It could be run via command line installer without any additional configuration or patches.&lt;br /&gt;&lt;br /&gt;And so I used such a system for about a year until KDE 4.3 came out. For those who have used Kubuntu 8.10, there is no official (stable) kde 4.3. Unless you use a nightly repository or compile from source, chances are you won't get it. Being a fan of the K Desktop Environment, this slowly nagged at me. &lt;br /&gt;&lt;br /&gt;Now 3D acceleration is important to me, as it's required to play Warcraft 3, one of the few games I play on a constant basis. This is important, as a few other distributions I tried to get kde 4.3 off of, arch, gentoo, and future ubuntu versions, wouldn't give me 3D, or so I thought.&lt;br /&gt;At this time, it's worth mentioning that there's an issue with either the Alienware M17 hardware, the ATI HD Radeon 3870, or the Catalyst drivers that prevent the desktop from appearing on the laptop screen. It's a strange issue, where plugging in an external monitor will show the desktop, the but the laptop lcd remains black (but lit up). It holds true on Ubuntu 9.10 with Catalyst 9.10/9.12 drivers. The HD Radeon 3870 is part of the R600 series.&lt;br /&gt;&lt;br /&gt;So now I'm in the situation where I've been trying to migrate from a working, but old system to a new, no-3D system. It seemed like everytime I would migrate to another distribution, the lack of 3D drivers would force me back to the Kubuntu 8.10 system. &lt;br /&gt;&lt;br /&gt;By this time, total hours spent attempting to get a newer working system with 3D has probably reached 30-40 hours (non-continuous, over a year period)&lt;br /&gt;I haven't installed Gentoo by this point, only Ubuntu derivatives and Archlinux. Arch worked fine, but no 3D.&lt;br /&gt;&lt;br /&gt;Gentoo was compiled with the core2, -pipe and -O2 optimizations. Once the base system was up and running, X and KDE quickly followed. It took about ~30 hours total including download times to get it set up and compiled with most of my programs. &lt;br /&gt;Even though there was no 3D at this point, it ran deadly fast with the open-source 2D ati drivers.&lt;br /&gt;Things were near-instant opening and closing. Sure, the fan was running constantly because the driver doesn't yet have proper power management, but things worked great.&lt;br /&gt;It was about this time that frustration at not having 3d set in.&lt;br /&gt;After installing Ubuntu 8.10 alongside Gentoo, I went in and began to check all the versions of packages that I felt would affect 3D.&lt;br /&gt;&lt;br /&gt;This is the point where I noticed the difference in Xorg versions.&lt;br /&gt;Gentoo had the newest 1.7 series, whereas Ubuntu 8.10 had 1.5.2. In a nutshell, I figured that I'd have to install the same version of packages in order to get the same setup I had in Ubuntu, which theoretically should work fine.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And so concludes the first part of the Gentoo series. This was the first step I took to getting 3D on Gentoo. And to be frank, it was the easiest part.&lt;br /&gt;&lt;br /&gt;Stay tuned for the next part, documenting resource and configurations used in getting it setup properly.&lt;br /&gt;It's loads of fun, with a bit of patching, lots of forum scrounging, and lots of compiling. &lt;br /&gt;&lt;br /&gt;NP out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-4158302968617951598?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/4158302968617951598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=4158302968617951598' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/4158302968617951598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/4158302968617951598'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/01/gentoo-series-part-i-past-and-present.html' title='Gentoo Series Part I : Past and Present'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-8635910074393408643</id><published>2010-01-08T15:02:00.000-08:00</published><updated>2010-01-08T15:54:57.285-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vista vs 7'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='partitions'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Windows 7 Versus Vista, an end user's perspective</title><content type='html'>It has been more than 4 years since last seriously using a Windows environment to do work.&lt;br /&gt;I've never been a Windows expert, but I know enough about computers to do installations and driver updates without too much trouble; A couple years back I installed Windows XP on a laptop using a slipstreamed XP cd (sadly they don't include SATA drivers) so I wasn't expecting much trouble.&lt;br /&gt;&lt;br /&gt;Both Windows 7 and Vista are the 32-bit editions, as compatibility seems to be better as such.&lt;br /&gt;&lt;br /&gt;On my first install attempt, my current partition setup was like this:&lt;br /&gt;&lt;br /&gt;1 Primary Boot Partition (Linux)&lt;br /&gt;1 Primary Root Partition (Linux)&lt;br /&gt;1 Empty NTFS Partition to install Windows on&lt;br /&gt;3 Logical Partitions for Linux mount points.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now, there is a good reason why forums will suggest installing Windows first, then Linux on top.&lt;br /&gt;&lt;br /&gt;The first issues I encountered were:&lt;br /&gt;&lt;br /&gt;- Windows cannot install to the desired partition error&lt;br /&gt;- Windows cannot install to an external USB error&lt;br /&gt;&lt;br /&gt;I figure it had something to do with the number of primary partitions already set up, in addition to the logical ones. Both Vista and Windows 7 had these issues and would not install on the current configuration; they don't seem to recognize logical partitions at all.&lt;br /&gt;&lt;br /&gt;Unsurprisingly, GNU / Linux distributions will install without any hiccup given my partitioning scheme, as I successfully installed Ubuntu 8.10 on top afterwards. But this is irrelevant for this blog topic.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So I eventually caved in and wiped my hard drive of partitions and set up all my primaries using the Windows 7 partitioner. It's installed on the 2nd primary partition and everything worked fine. &lt;br /&gt;My screen resolution is 1920x1200 and I was surprised that it was autodetected and set. Generally drivers are required to get it working. However, that was as good as it got. Not only did Windows 7 feel slower than Vista (based on perception, not on actual benchmarks) as windows started to lag, tasks took longer, etc. As Windows 7 detected the video card, I expected it to detect other components of my laptop. I did not install any drivers on 7, so perhaps the slowness was due to a missing component. &lt;br /&gt;The kicker came when trying to watch videos with speakers plugged into the audio jack. No sound came out through the speakers. Sound kept playing from the laptop as if nothing had been recognized. Plus the sound was quieter than when using Linux or Vista systems. &lt;br /&gt;&lt;br /&gt;And so I judged that Windows 7 wasn't ready.&lt;br /&gt;&lt;br /&gt;On to Vista:&lt;br /&gt;&lt;br /&gt;Like it's newer cousin 7, it would not install when my primary partitions were already in place. I wiped 7 off and began to install Vista on the same partition 7 was previously on.&lt;br /&gt;&lt;br /&gt;Everything was the same for installation, except when presented with the desktop, resolution was reduced, blurry, and gross.&lt;br /&gt;As I had the OEM driver install cd with me (a fact that is the reason why Vista was a breeze to install; without it, it would have been exponentially more difficult to work with) and soon had all drivers working.&lt;br /&gt;&lt;br /&gt;Now Vista at this point was still working quite slow, as most people have complained about. After using the Windows Update to get all recent updates as well as some optional ones which included optimizations (highly recommended to install for you Vista users), normal desktop usage ran like a breeze.&lt;br /&gt;&lt;br /&gt;Warcraft 3, although quite old now, ran extremely fast on full settings. As my laptop is known as a "Gaming Laptop", a moniker I dislike personally, having 512 MB of dedicated video DDR3, it's expected to run fast.&lt;br /&gt;&lt;br /&gt;So for the simple task of playing Warcraft 3, Vista is definitely the winner.&lt;br /&gt;&lt;br /&gt;Of course, this is purely an end-user perspective. For all the technical jargon and points that could be made (7 is faster, blah blah blah), I prefer Vista.&lt;br /&gt;And the most probable reason for my preference, is the simple fact that Vista has been out longer.&lt;br /&gt;It has had more time for bug reports, updates, and real-world usage. 7 hasn't been out long enough to gain the backing that Vista now has.&lt;br /&gt;And that is one reason why many companies haven't switched yet, for good reason.&lt;br /&gt;&lt;br /&gt;Personally, the only real diff I see right now between 7 and Vista is the user interface.&lt;br /&gt;And both pale in comparison to speed I can achieve with linux systems.&lt;br /&gt;&lt;br /&gt;XP runs great with 376 MB of ram in a virtual machine with 32MB video. If I need windows apps, I've got that covered.&lt;br /&gt;&lt;br /&gt;Lastly, I'd like to give my own personal take on what should have happened after Xp.&lt;br /&gt;&lt;br /&gt;Since the UI is so familiar and usable for most people, what Microsoft SHOULD have done, is take the XP interface and completely rebuild Windows in order to use that interface, but with a more secure and functional system and kernel.&lt;br /&gt;Naturally, UI enhancements should be included, users should be given a choice of interfaces to implement. Just like GNU/Linux users can choose Gnome, KDE, fluxbox, Enlightenment just to name a few, and have those look like Mac OS-X, Windows, or just a blank desktop (minimal), Windows too should give users more choice.&lt;br /&gt;&lt;br /&gt;For instance, some people in China have taken Ubuntu and made it into an XP clone, pixel for pixel. Link below.&lt;br /&gt;&lt;br /&gt;http://www.thevarguy.com/2010/01/05/ubuntu-linux-clone-looks-like-windows-xp/&lt;br /&gt;&lt;br /&gt;Is it so hard to make Windows modular so people can build their own Windows system? &lt;br /&gt;&lt;br /&gt;Perhaps. At least there is KDE - On - Windows for those that want functionality on their windows desktop.&lt;br /&gt;&lt;br /&gt;http://windows.kde.org/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So many opinions, so little time.&lt;br /&gt;I hope this post hasn't exasperated you readers. ( lol as if anyone reads this blog =p )&lt;br /&gt;&lt;br /&gt;And for the record, Ubuntu and popular distributions in general install in about 20 minutes. Vista and 7 in about 30 or 40.&lt;br /&gt;Windows still uses a filesystem that's 9+ years old (NTFS) and support for things like FAT, FAT16/32/64.&lt;br /&gt;Honestly guys, make a better filesystem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-8635910074393408643?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/8635910074393408643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=8635910074393408643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/8635910074393408643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/8635910074393408643'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/01/windows-7-versus-vista-end-users.html' title='Windows 7 Versus Vista, an end user&apos;s perspective'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-3950853404299068397</id><published>2010-01-08T00:42:00.000-08:00</published><updated>2010-01-08T00:54:45.774-08:00</updated><title type='text'>Christmas Break Update</title><content type='html'>It's been quite a while since my last rant, er, post. &lt;br /&gt;I realize that Microsoft is not completely at fault for the issues I encountered though I still can't help but feel like they are underperforming in their OS.&lt;br /&gt;&lt;br /&gt;Anyway, during the Christmas break I've spent copious amounts of time working on my laptop and learning the ropes of Gentoo GNU/Linux. There's obviously not enough room in one post to fill up what I have to say, so the following posts will be part of a series.&lt;br /&gt;&lt;br /&gt;I will be writing a short review on Windows Vista versus Windows 7. I haven't had a great deal of experience in either, so it will be more of an end user perspective, not a technological expert's opinion. (Although it shouldn't take one to make an accurate judgement.)&lt;br /&gt;&lt;br /&gt;Next on my list is a write-up non-comprehensive tutorial on setting up Gentoo on an Alienware M17 with a nice KDE 4 install with the latest and greatest QT / KDE packages.&lt;br /&gt;It will cover issues that are found with the xorg server -- from experience it seems only the older 1.5.3-r6 version will work with the ATI Catalyst drivers (meaning 3D acceleration)&lt;br /&gt;&lt;br /&gt;I'll be uploading my configuration files, kernel, and the driver that works for this machine.&lt;br /&gt;As well, I've tested out the lasted xorg with the opensource ati drivers. &lt;br /&gt;What is lacking in 3D makes up greatly with blazing fast 2D.&lt;br /&gt;&lt;br /&gt;More to come.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-3950853404299068397?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/3950853404299068397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=3950853404299068397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/3950853404299068397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/3950853404299068397'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2010/01/christmas-break-update.html' title='Christmas Break Update'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-4526146200168120471</id><published>2009-12-17T20:57:00.000-08:00</published><updated>2009-12-17T21:29:04.467-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='fail'/><category scheme='http://www.blogger.com/atom/ns#' term='windows server'/><category scheme='http://www.blogger.com/atom/ns#' term='windows update'/><category scheme='http://www.blogger.com/atom/ns#' term='80070490'/><category scheme='http://www.blogger.com/atom/ns#' term='programmers notepad'/><category scheme='http://www.blogger.com/atom/ns#' term='operating system'/><title type='text'>The failure that is windows</title><content type='html'>In this case, it's windows server 2008. I can't even be bothered to capitalize that horrendous bowl of crap.&lt;br /&gt;&lt;br /&gt;Of course, it must be said that the server platform wasn't meant for everyday use, especially when it comes to programming and development. But with that said, it's not like any other "good" operating systems have trouble performing more than one function.&lt;br /&gt;&lt;br /&gt;If it isn't clear yet, I am in a bad mood.&lt;br /&gt;I have an assignment due tomorrow requiring an apache/mysql/php server (LAMP in this case) to host a website. Now, I was reluctant to use ms server 2008 because I know that it's going to piss me off, bad. Little did I know I would encounter the following issues:&lt;br /&gt;&lt;br /&gt;Issue #1: Update won't install.&lt;br /&gt;Now I know this rather silly considering it doesn't affect my work, but it's a start to pave the way to frustration. &lt;br /&gt;Windows Update does not update. Upon trying to update (because I like my OS secure and up-to-date), I am informed that my 4.1 Mb update failed. Reason? Even microsoft doesn't know.&lt;br /&gt;Their help page starts off with the ever-so-helpful "0 results for WindowsUpdate_blahblahblah". The error code is 80070490 if you want to know.&lt;br /&gt;Yes, I am connected to the internet. The update is already downloaded!&lt;br /&gt;Are you saying I can't even use an up-to-date server? This has been happening for over a week now! It won't update! Useless!&lt;br /&gt;&lt;br /&gt;Issue #2: Taskbar hell.&lt;br /&gt;For some odd reason, everytime I click on a taskbar program, it greets me with the flashing grey and blue, but it does not appear on my desktop as it should. When I click it again, it de-selects itself still flashing grey and blue. What?! I click it again and FINALLY it opens up like it should.&lt;br /&gt;So basically I have to work 3 times as hard to do 1x the work. And you know in windows, you have to do a lot of clicking. I guess Redmond can't be bothered to include global shortcuts that seem to be so prevalent in other Operating Systems. Alt-Tab works as expected though.&lt;br /&gt;&lt;br /&gt;Issue #3: And here's where the sh-- goes down.&lt;br /&gt;I am a programmer, developer, whatever you wish to call it. When programming in php and using html/css, you use a lot of &lt;, &gt;, and / characters.&lt;br /&gt;AS LUCK WOULD HAVE IT, while in the middle of using Programmer's Notepad to do my work, something happens that I cannot explain (a certain key combination maybe) and I no longer can type those 3 characters! In one fell swoop, my productivity falls to absolute zero. What happened? I check the locale, keyboard setup, sticky keys, and pnotepad for any options that could have affected my typing. But nope, there doesn't seem to be any particular reason for what just happened.&lt;br /&gt;By now, I'm practically screaming at my lcd, wanting to throw my fist through it.&lt;br /&gt;&lt;br /&gt;As I'm thinking about it, there are a few possibilities. Since the characters for &lt; &gt; and / were changed to ., `, and some accented capital E character, it was probably an english/french keyboard language exchange of some sort. The kicker is, that I was able to type the &lt; &gt; and / characters in firefox so it was probably an application error; as the reader of this post, you are probably wondering "so what? it's not like you can't restart and continue on."&lt;br /&gt;And you'd be right, I did reboot and everything works again.&lt;br /&gt;But this just goes to show something more sinister at work. Why in hell should an application be able to have the power to change what characters are typed on a keyboard a) without any consent of the user, b) without any warning (the screen flashed once when it changed), and c) with no apparent way to undo or revert the changes? &lt;br /&gt;&lt;br /&gt;I was working as the Administrator, so I'm partly to blame. But why would an application even ATTEMPT to change something like that? If I was French, I'd have a French keyboard layout and negate the need for the application to worry about it. And that's the point of an OS, to perform required operations without nagging the user on tasks that are not relevant to the job at hand.&lt;br /&gt;Which is why windows fails on so many levels.&lt;br /&gt;+ nags you to reboot after certain updates, every 15 minutes on XP I believe.&lt;br /&gt;+ nags you with the UAC. If it was actually helpful, I could understand, such as GNU/Linux asking for root or sudo passwords.&lt;br /&gt;+ have to use the mouse for almost everything. Because arthritis is for the cool kids.&lt;br /&gt;&lt;br /&gt;I'd also like to mention that as I was working in a VMWare machine, for some reason my screen would flicker every so often. Virtualbox may have it's quirks, but it doesn't piss me off by attempting to inflict a seizure.&lt;br /&gt;&lt;br /&gt;So my boiling point has been reached. My opinion of windows and microsoft, however low it was before, has gone south.&lt;br /&gt;&lt;br /&gt;I'm contemplating refusing employment if it requires work on a windows machine, for my own safety. &lt;br /&gt;The last thing I need are glass shards in my fist.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-4526146200168120471?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/4526146200168120471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=4526146200168120471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/4526146200168120471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/4526146200168120471'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2009/12/failure-that-is-windows.html' title='The failure that is windows'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-4632499024037476829</id><published>2009-11-07T14:08:00.001-08:00</published><updated>2009-11-07T14:18:56.493-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kde 4'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql.socket'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Akonadi server process not registered at D-Bus'/><category scheme='http://www.blogger.com/atom/ns#' term='akonadi'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Akonadi D-Bus error and fix</title><content type='html'>After re-installing Kubuntu 8.10, the only distribution I've tried that works with my ATI Radeon 3870 HD card (using old catalyst drivers: 8.12), I've been looking into optimizing my OS since upgrading is oh so frustrating. However, this brings its own issues.&lt;br /&gt;&lt;br /&gt;I sped up the boot time by about 5 seconds or so by disabling and blacklisting some unneeded modules, but I've also been attempting to transfer internal sqlite databases to a faster MySQL database. &lt;br /&gt;&lt;br /&gt;Attempting to convert akonadi has led to some frustrations. Here's what happened.&lt;br /&gt;&lt;br /&gt;Went to the system settings for kde -&gt; then Akonadi.&lt;br /&gt;Created the mysql database and user for it to use (referenced the amarok wiki, as it's basically the same procedure with different names.) and then restarted.&lt;br /&gt;This will output annoying errors like:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;akonadi "Can't connect to local MySQL server through socket ... mysql.socket"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Akonadi server process not registered at D-Bus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Needless to say, if you're switching or modifying akonadi and it starts blitzing out on you, a smart solution is to &lt;br /&gt;a) delete all the configurations that it uses (/home/$USER/.config/akonadi/*) and&lt;br /&gt;b) do an "apt-get install --reinstall akonadi-server akonadi-kde"&lt;br /&gt;&lt;br /&gt;do a "dpkg-reconfigure akonadi-server akonadi-kde" for good measure.&lt;br /&gt;I rebooted first, then attempted to load it. Finally it worked.&lt;br /&gt;&lt;br /&gt;I should also mention that I did the following, mentioned from the akonadi section in the KDE.org wiki.&lt;br /&gt;&lt;br /&gt;Apparmor&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Note that you might be using Apparmor even if it does not show up in the process list.&lt;br /&gt;&lt;br /&gt;Also note that some distributions ship an additional mysqld binary called mysqld-akonadi which has AppArmor set up correctly. If that's the case on your system and you see this problem nevertheless, there are two possible reasons:&lt;br /&gt;&lt;br /&gt;    * Akonadi still uses mysqld instead of mysqld-akonadi. You can change that in Systemsettings -&gt; Advanced -&gt; Akonadi -&gt; Server configuration.&lt;br /&gt;    * AppArmor is not setup correctly for mysqld-akonadi either. Try running the aa-complain command noted above with mysqld-akonadi instead of mysqld. &lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;You will also experience this problem if you are running an encrypted home directory using encryptfs combined with AppArmor as the Akonadi apparmor profile currently does not account for an ecrypted home (common with Ubuntu Jaunty users). Error messages with include:&lt;br /&gt;&lt;br /&gt;    * dmesg produces: &lt;br /&gt;&lt;br /&gt;     ecryptfs_do_create: Failure to create dentry in lower fs; rc = [-13]&lt;br /&gt;     ecryptfs_create: Failed to create file inlower filesystem&lt;br /&gt;&lt;br /&gt;    * Akonadi will list the following errors: &lt;br /&gt;&lt;br /&gt;     Akonadi server process not registered at D-Bus&lt;br /&gt;&lt;br /&gt;The fix is to edit the following file "/etc/apparmor.d/usr.sbin.mysqld-akonadi". Below the line:&lt;br /&gt;&lt;br /&gt;      @{HOME}/.local/share/akonadi/** rwk,&lt;br /&gt;&lt;br /&gt;Add a new line:&lt;br /&gt;&lt;br /&gt;      @{HOME}/.Private/** rwk,&lt;br /&gt;&lt;br /&gt;Restart apparmor and restart akonadi.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And so, akonadi works so far. I haven't thoroughly tested it, so we'll see how things go.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-4632499024037476829?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/4632499024037476829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=4632499024037476829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/4632499024037476829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/4632499024037476829'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2009/11/akonadi-d-bus-error-and-fix.html' title='Akonadi D-Bus error and fix'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-4812654997535932238</id><published>2009-11-03T03:14:00.000-08:00</published><updated>2009-11-03T03:22:02.645-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='[PDFLaTeX] finished with exit code 70'/><category scheme='http://www.blogger.com/atom/ns#' term='error code'/><category scheme='http://www.blogger.com/atom/ns#' term='includegraphics'/><category scheme='http://www.blogger.com/atom/ns#' term='compile'/><category scheme='http://www.blogger.com/atom/ns#' term='LaTeX'/><title type='text'>[PDFLaTeX] finished with exit code 70</title><content type='html'>I recently got an error compiling a pdf in the LaTeX editor, Kile. &lt;br /&gt;&lt;br /&gt;As per the title, it mentioned an exit code of 70. What happened with this error is that I attempted to compile my document and the console mentioned that there were: 0 errors, x warnings and y badboxes, etc. However, upon trying to view the document a 'no pdf found'-like message appeared. Odd... I had just added 25 pdfs as graphics into the document, so perhaps I had overloaded it?&lt;br /&gt;&lt;br /&gt;Actually, the reason for this errors is because one pdf file I had imported was misspelled, so it couldn't add it and spat out the exit code 70. The strange thing was that it erased my pdf output and only after scrolling up in my console was the error message visible. Until I had scrolled up, there was no indication an error had occurred aside from not being able to view the pdf.&lt;br /&gt;&lt;br /&gt;If anyone gets this error, check your spelling first!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-4812654997535932238?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/4812654997535932238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=4812654997535932238' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/4812654997535932238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/4812654997535932238'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2009/11/pdflatex-finished-with-exit-code-70.html' title='[PDFLaTeX] finished with exit code 70'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-5599388157934571638</id><published>2009-10-29T10:09:00.001-07:00</published><updated>2009-11-07T14:20:19.705-08:00</updated><title type='text'>Arch, Gentoo, and *buntu</title><content type='html'>Hey all. As I have been recently working on setting up an Arch system on my alienware, I'd like to point all you enthusiasts to a resource that has been invaluable for me.&lt;br /&gt;&lt;br /&gt;http://archux.com/&lt;br /&gt;&lt;br /&gt;On the right hand side of the page, there are links to the different arch tutorials. That, and the archwiki, are detailed and helpful. Even though I'm mainly a Kubuntu guy, I find the Arch community to be very intelligent and independent compared to many other communities. I've tried a bit of Gentoo in my spare time and found it to be exciting, but difficult. The tutorials and forums tend to be less 'simple' and straightforward, which is why arch is so attractive to me.&lt;br /&gt;&lt;br /&gt;Hopefully I'll have a fully configured system in a few days. I've spent about a week on this already. &lt;br /&gt;&lt;br /&gt;In other GNU/Linux news, I'm really impressed with the Kubuntu 9.10 RC. Really Impressed.&lt;br /&gt;On a school laptop (which takes 2+ min to cold boot to XP with all the school services enabled, ~1 min with Kubuntu 8.10) with 2 Ghz Dual Core Intel Centrino, 2 GB DDR2 ram, integrated Intel graphics, it loads in approximately 20 seconds. &lt;br /&gt;&lt;br /&gt;"sudo shutdown -h now" will shutdown in about 5 seconds. Sadly, this is the only way to shut down as the KMenu driven shutdown will not work. It gets hung up on some process so it won't shut down.&lt;br /&gt;That, and the amarok blog I mentioned before make the experience a little less pristine.&lt;br /&gt;But it's by far the best *buntu release to date, faster than any Windows OS on the equivalent hardware, more stable, and less prone to malware. Firefox and OpenOffice look much better with the QT/KDE theming and firefox runs like a dream, unlike the 3.5.3 beta I was using on 8.10.&lt;br /&gt;&lt;br /&gt;The shutdown issue as far as I can see is the only show stopper, and it's not even the official release yet. Since shutdown is so darned fast using sudo, I can really see the potential here.&lt;br /&gt;&lt;br /&gt;Now if only ATI and nVidia would get their drivers in order. Supposedly 20-40% worldwide uses GNU/Linux, I'm surprised they haven't taken more action. But the goings on of corporations is beyond me currently, and they have done many beneficial things for the open and free software communities. &lt;br /&gt;Maybe with Windows 7, they will finally see Linux as a driving force they can get behind.&lt;br /&gt;It seems Redmond has gone a little overboard with the whole 'Rebooting will solve all your problems' Windows concept.&lt;br /&gt;Trolling for google results provides these links:&lt;br /&gt;http://social.answers.microsoft.com/Forums/en-US/w7install/thread/0275d4ac-a6ca-4992-b6e5-dc128cc5f86c&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-5599388157934571638?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/5599388157934571638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=5599388157934571638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/5599388157934571638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/5599388157934571638'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2009/10/arch-gentoo-and-buntu.html' title='Arch, Gentoo, and *buntu'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-6449697691690725740</id><published>2009-10-24T20:39:00.000-07:00</published><updated>2009-10-24T22:00:29.087-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='amarok'/><category scheme='http://www.blogger.com/atom/ns#' term='peon.developments'/><category scheme='http://www.blogger.com/atom/ns#' term='kubuntu 9.10'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu 9.10'/><category scheme='http://www.blogger.com/atom/ns#' term='amarok 2'/><category scheme='http://www.blogger.com/atom/ns#' term='kde 4'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='amarok 1.4'/><category scheme='http://www.blogger.com/atom/ns#' term='kubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Installing Amaork 1.4 in KDE 4 (Kubuntu 9.10)</title><content type='html'>As per my previous post, playlist functionality was disappointing in amarok 2.x, so here's a brief tutorial on how to get it working in 9.10 (could work in 9.04 and others I'm assuming too). I am using the command line only, so a user should be somewhat familiar with using it, and installing packages via apt with it, as well as compiling sources.&lt;br /&gt;&lt;br /&gt;(Please note, this may break your amarok 2.x application:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;amarok: symbol lookup error: /usr/lib/libamaroklib.so.1: undefined symbol: _ZTIN6TagLib3MP44FileE&lt;/span&gt; , and I can no longer import a collection into amarok 1.4. LastFM does &lt;strike&gt;not&lt;/strike&gt; seem to work.)&lt;br /&gt;&lt;br /&gt;Amarok 1.4 source: &lt;a href="http://openports.se/audio/amarok" target="_blank"&gt;http://openports.se/audio/amarok&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;Install.&lt;/span&gt;&lt;br /&gt;You will need -dev packages for compiling. Some of these include: kdelibs-dev, kde-devel, xorg-dev, qt3 and qt4 -dev packages, build-essentials, gcc 4.3 or 4.4 (I'm also assuming you have g++ 4.3  or 4.4), and others that may crop up. There are forums that contain the packages you need to install.&lt;br /&gt;&lt;br /&gt;(http://ubuntuforums.org/showthread.php?t=1263514 mentions the following packages to install)&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 34px; text-align: left;"&gt;sudo apt-get install cdbs comerr-dev diffstat fdupes gawk gettext-kde kdelibs4-dev kdesdk-scripts libaa1-dev libacl1-dev libart-2.0-dev libasound2-dev libaspell-dev libattr1-dev libaudio-dev libaudiofile-dev libavahi-client-dev libavahi-common-dev libavahi-qt3-dev libbz2-dev libcaca-dev libcucul-dev libcups2-dev libcupsys2-dev libcurl4-gnutls-dev libdbus-qt-1-dev libdirectfb-dev libdirectfb-extra libesd0-dev libfftw3-dev libflac-dev libgcrypt11-dev libgl1-mesa-dev libglu1-mesa-dev libgnutls-dev libgpg-error-dev libidn11-dev libifp-dev libilmbase-dev libjasper-dev libjpeg62-dev libkadm55 libkrb5-dev liblcms1-dev libldap2-dev liblua50-dev liblualib50-dev libmad0-dev libmng-dev libmpcdec-dev libmtp-dev libmusicbrainz4-dev libmysqlclient15-dev libncurses5-dev libnjb-dev libofa0-dev libogg-dev libopenexr-dev libpcre3-dev libpq-dev libqt3-compat-headers libqt3-headers libqt3-mt-dev libsasl2-dev libsdl1.2-dev libslang2-dev libsqlite3-dev libssl-dev libsysfs-dev libtag1-dev libtasn1-3-dev libtiff4-dev libtiffxx0c2 libtunepimp-dev libusb-dev libvisual-0.4-dev libvorbis-dev libxine-dev libxml2-dev libxmu-dev libxmu-headers libxslt1-dev lua50 mesa-common-dev qt3-dev-tools quilt ruby1.8-dev&lt;/pre&gt;&lt;br /&gt;I'd recommend viewing the blog as it has a lot of info regarding amarok 1.4.&lt;br /&gt;&lt;br /&gt;Another quick mention: MTP. This will give you grief unless you have the right version. The issue is, you need to &lt;span style="font-style: italic;"&gt;downgrade &lt;/span&gt;to 0.2.6.1 in order for this to work.&lt;br /&gt;Source: https://launchpad.net/ubuntu/hardy/+source/libmtp/0.2.6.1-2ubuntu1&lt;br /&gt;This one should be an easy .configure/make/make install (as root)&lt;br /&gt;&lt;br /&gt;You will also need xine, and might need to compile it from source as well (I did)&lt;br /&gt;&lt;br /&gt;2. &lt;span style="font-weight: bold;"&gt;Ruby. &lt;/span&gt;&lt;br /&gt;This one deserves its own point, because it may give you a lot of grief. Install Ruby1.8 or higher (I used Ruby1.9.1) as well as having the rubyfull and ruby (ruby-dev) packages. If amarok is still spitting out some ruby header errors, then do the following:&lt;br /&gt;&lt;br /&gt;sudo apt-get install --reinstall ruby&lt;br /&gt;&lt;br /&gt;That fixed it for me, but &lt;span style="font-weight: bold;"&gt;make sure you have ruby installed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. &lt;span style="font-weight: bold;"&gt;Configure.&lt;/span&gt;&lt;br /&gt;I'm assuming you have the source extracted, packages installed, and are ready to configure. First, my recommendations:&lt;br /&gt;./configure --without-arts --program-suffix=-1.4&lt;br /&gt;(I didn't add this, but you probably should. '--enable-mysql')&lt;br /&gt;&lt;br /&gt;Don't build with arts, as 9.10 and other new-ish versions tend to use xine and pulse.&lt;br /&gt;I added the prefix so I can run both amarok 2.x and amarok 1.4.10.&lt;br /&gt;Be sure to google any errors that occur, many of them are self-explainatory.&lt;br /&gt;&lt;br /&gt;4. &lt;span style="font-weight: bold;"&gt;Make&lt;/span&gt;&lt;br /&gt;Here's where you will need to know if you have gcc 4.3 or gcc 4.4.&lt;br /&gt;According to an Arch package report, having the updated 4.4 version will require some cpp file editing.&lt;br /&gt;&lt;br /&gt;Source: http://aur.archlinux.org/packages.php?ID=25712&lt;br /&gt;It's not too difficult even for noobs, but definitely detracts from the experience. Make-ing is the last difficult part of installing amarok 1.4.x.&lt;br /&gt;&lt;br /&gt;If compiling with gcc-4.4 and up (as I did), some .cpp files will create errors so you have to add '#include &lt;stdio.h&gt;' to those classes (at the top of the file, I put them before the other include statements) OR '#include &lt;cstdio&gt;' if that fails. (you may get this error: "error: 'rename' is not a member of 'std'", and including stdio.h will not fix it).&lt;br /&gt;If you are using gcc-4.3, this shouldn't be an issue, but I have not tried it.&lt;br /&gt;I edited approximately 8 .cpp files total. (you can use kate, nano, or any text editor.)&lt;br /&gt;&lt;br /&gt;Once make-ing is done, then type&lt;br /&gt;&lt;br /&gt;sudo make install&lt;br /&gt;&lt;br /&gt;This should go without a hitch.&lt;br /&gt;To run amarok, you MUST call amarokapp-1.4 (program suffix = -1.4, remember)&lt;br /&gt;not amarok-1.4.&lt;br /&gt;&lt;br /&gt;One issue I encountered is that the default .ogg file with Matthias's 15 second clip did not play. I already had installed mp3 codec support by running amarok 2's install script so mp3s play great. If I have any issues along the way to using 1.4 now, I'll post them on this blog.&lt;br /&gt;&lt;br /&gt;I hope this helps many users hoping to regain the functionality of a quality audio player.&lt;br /&gt;I am not going to test a lot of extra functionality, mostly playlist, tagging, and last.fm support.&lt;br /&gt;&lt;br /&gt;You can comment or e-mail me if you'd like a hand, but don't expect a solution.&lt;br /&gt;&lt;br /&gt;Anyway, cheers all.&lt;br /&gt;&lt;br /&gt;EDIT: Just as a point of interest, amarok2 saves playlists in a .xspf format, which is why the amarok1.4 'm3u' extension is not found. I heard that when a collection is being updated, any playlists should be automatically added. I added the playlists to the /home/$USER/.kde/share/apps/amarok/playlists folder &lt;span style="font-style: italic;"&gt;after&lt;/span&gt; I updated my audio, which could explain it. But I'm sure you diehard 1.4 fans don't mind.&lt;br /&gt;&lt;/cstdio&gt;&lt;/stdio.h&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-6449697691690725740?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/6449697691690725740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=6449697691690725740' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/6449697691690725740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/6449697691690725740'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2009/10/installing-amaork-14-in-kde-4-kubuntu.html' title='Installing Amaork 1.4 in KDE 4 (Kubuntu 9.10)'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-4507779326103798914</id><published>2009-10-24T17:59:00.001-07:00</published><updated>2009-10-24T18:14:54.672-07:00</updated><title type='text'>Kubuntu 9.10 RC - First Impression</title><content type='html'>I installed Kubuntu 9.10 Release Candidate on my school-owned laptop yesterday.&lt;br /&gt;So far, things are looking quite good, but there are a few disappointments as well.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[Machine specs: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt; 2.0 GHz Dual Core Intel Centrino&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt; 2 GB DDR2 RAM&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt; Mobile GM965 / GL960 Intregrated Graphics controller&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt; 1200x800 res&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt; All partitions ext4 format ]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;By far, the biggest showstopper for me is the inclusion of Amarok 2.x.&lt;br /&gt;I'm not going to complain about the interface, because that's not really the issue even though I prefer 1.4.x's interface.&lt;br /&gt;I cannot import my old playlists from Amarok 1.4.x. I copied them over to the ~/.kde/share/apps/amarok/playlists folder, yet it still will not show them.&lt;br /&gt;I have a mysql database to hold all my songs, yet when re-attaching my external with my music, it had to re-scan it all (which took about 10 minutes). Didn't happen with the older version.&lt;br /&gt;&lt;br /&gt;Another issue is the new grub loader. It's unintuitive compared with grub 1.5, but all in all, learning the ropes isn't too difficult.&lt;br /&gt;&lt;br /&gt;Now on to the good stuff:&lt;br /&gt;&lt;br /&gt;- Compositing (Window Effects) is automatically enabled on an integrated Intel chipset. Yes, a lot of work has been done to get it working right. I love transparency, so this really made an impression.&lt;br /&gt;- Fast. These school laptops have poor chipsets and build quality. Windows XP (modified with school software) takes approximately 2 and a half minutes to boot unless services are cut. Kubuntu races along, even with all the limitations of hardware.&lt;br /&gt;- Improved notifier and taskbar. In 8.10, there were issues with some notifications freezing (unable to close) and spacing issues in the external device widget. This release gets it right, and it looks even better. Organization has definitely been polished.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Note: I skipped the 9.04 release, video driver issues.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm no professional reviewer, but this looks good. I'd definitely trust *buntu over Windows 7 on older hardware like this.&lt;br /&gt;I've also been spoiled, as my other laptop is an alienware. (How's that for a bumper sticker?)&lt;br /&gt;In comparison, Kubuntu 9.10 on this laptop IS slower than 8.10 on my alienware, BUT bootup time on 9.10 is superior to my 8.10 notebook.&lt;br /&gt;That really says something. Congrats, Canonical.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-4507779326103798914?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/4507779326103798914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=4507779326103798914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/4507779326103798914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/4507779326103798914'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2009/10/kubuntu-910-rc-first-impression.html' title='Kubuntu 9.10 RC - First Impression'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-6073951886743876170</id><published>2009-08-22T01:51:00.000-07:00</published><updated>2009-08-22T02:09:25.958-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='peon.developments'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='silicon'/><category scheme='http://www.blogger.com/atom/ns#' term='summer'/><category scheme='http://www.blogger.com/atom/ns#' term='hyperray'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='holidays'/><title type='text'>Update August 22.2009</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Well, summer has been a mix of work, friends / family, and of course: code.&lt;br /&gt;School's starting in a few weeks, so we all know what that means. Less time to work on awesome pet projects. =/&lt;br /&gt;&lt;br /&gt;I haven't had as much time to work as I want, but I've definitely made progress. After coming back from three weeks of holidays, it came as a surprise to me when I started to code and document for 6-8 hours every day without any prodding. Being in a very small company... there's still a long way to go. However, I've got command line arguments processing fine, a configuration file and logging mechanism (with console gui for output if desired) working. An accomplishment for someone with so little real-world experience as I.&lt;br /&gt;This is actually the easy stuff; once the base of my libraries are created, I'll start having to learn about graphical manipulation and key controls. Even when the libraries are completed, I have an IDE planned. It should take years to complete, but I think it will benefit the open-source community once finished.&lt;br /&gt;&lt;br /&gt;The reason I haven't been letting much out about this project is because&lt;br /&gt;1. I don't think many people care right now (0 comments on all posts, no e-mails, etc.)&lt;br /&gt;2. I'll need to create a portion of this project before I feel it will have any resonance with the community. So I have something to show for my efforts, especially since it's a little ambitious what I'm planning.&lt;br /&gt;3. School is going to greatly reduce the time I have to work on extra projects. For instance, last semester I had an average of 3-4 hours of homework a night, moreso near the end of the year. (Why can't teachers properly balance workloads throughout the year? Oh well, they can't be blamed for every missed deadline or delay.)&lt;br /&gt;4. I  like keeping all 0 readers in suspense.&lt;br /&gt;&lt;br /&gt;On a more personal note, every day I like Microsoft less and less. Not for no reason either, I've been using their OS and software for over 18 years and only in the past 3-4 have I switched to Linux. (2+ years of NOT having M$ on my computers.)&lt;br /&gt;It seems that they have stopped caring about quality of software, interoperability, performance (Vista anyone?), and most of all: flexability - customizability - integration.&lt;br /&gt;Look at KDE, my desktop environment. I've customized it to suit my needs so I can spend hours coding, listening to music, browsing files on my computer without having to so much as move the mouse an inch. Why can't Microsoft have a KHotKeys application?&lt;br /&gt;&lt;br /&gt;On another note, if you're looking for a nice iso / file / squashfs mounting app, I found a nice GUI kde-app you would find useful.&lt;br /&gt;Since I have starcraft / warcraft / etc. games running on my linux pc, some need the cd in order to play. Having them mounted (easily) is a blessing, so newbies please check it out.&lt;br /&gt;&lt;br /&gt;http://www.hyperray.net/hyperget/silicon-auto-image-mounter&lt;br /&gt;&lt;br /&gt;Back to work, For the Horde, etc.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-6073951886743876170?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/6073951886743876170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=6073951886743876170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/6073951886743876170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/6073951886743876170'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2009/08/update-august-222009.html' title='Update August 22.2009'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-928464433950809190</id><published>2009-07-14T00:43:00.000-07:00</published><updated>2009-07-14T01:21:21.113-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3780'/><category scheme='http://www.blogger.com/atom/ns#' term='radeon'/><category scheme='http://www.blogger.com/atom/ns#' term='catalyst'/><category scheme='http://www.blogger.com/atom/ns#' term='ati'/><category scheme='http://www.blogger.com/atom/ns#' term='update-notifier-kde'/><category scheme='http://www.blogger.com/atom/ns#' term='update-notifier'/><category scheme='http://www.blogger.com/atom/ns#' term='system tray'/><category scheme='http://www.blogger.com/atom/ns#' term='upgrade'/><category scheme='http://www.blogger.com/atom/ns#' term='kubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='intrepid'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Removing update-notifier in KDE system tray  on startup (Kubuntu 8.10)</title><content type='html'>&lt;span style="font-weight: bold;"&gt;[ Summary ]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This post describes removing the system tray icon for &lt;span style="font-style: italic;"&gt;update-notifier [-kde]&lt;/span&gt; so that user will not be reminded &lt;span style="font-weight: bold;"&gt;every login&lt;/span&gt; that they should upgrade to the next distribution.&lt;br /&gt;This is useful if you don't want the green update notification appearing when it isn't useful to upgrade your distribution (and when no updates actually exist).&lt;br /&gt;** In my case, upgrading to Jaunty breaks my 3D acceleration I get with the ATI catalyst drivers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[ Method ]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-style: italic;"&gt;update-notifier-kde&lt;/span&gt; executable (binary) is located in &lt;span style="color: rgb(204, 0, 0);"&gt;/usr/bin&lt;/span&gt;. To remove the system tray icon without the trouble of the 'apt-get remove dependancy hell' (in my case it removed &lt;span style="font-style: italic;"&gt;network-manager&lt;/span&gt; as well), the simplest solution is to rename the executable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;sudo mv /usr/bin/update-notifier-kde /usr/bin/_update-notifier-kde&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now you can login without being tricked into thinking there are updates. To reinstate the system tray icon, just rename it back to the original file name and reboot/restart the display manager.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you want to have your pc check for updates without the update-notifier, you may want to place the &lt;span style="font-style: italic;"&gt;apt-get update &amp;amp;&amp;amp; apt-get upgrade&lt;/span&gt; commands in a cron job scheduled for every week.&lt;br /&gt;&lt;br /&gt;I hope this little tutorial has helped reduce the frustration that some experience with linux &amp;amp; video drivers. It's been bothering me for weeks. I would rather spend the next 3 months in school not right-clicking and closing the notifier every class.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-928464433950809190?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/928464433950809190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=928464433950809190' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/928464433950809190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/928464433950809190'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2009/07/removing-update-notifier-in-kde-system.html' title='Removing update-notifier in KDE system tray  on startup (Kubuntu 8.10)'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-705459681304588688</id><published>2009-06-02T15:44:00.000-07:00</published><updated>2009-06-02T15:57:00.526-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='amarok'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='mp3'/><category scheme='http://www.blogger.com/atom/ns#' term='rename'/><category scheme='http://www.blogger.com/atom/ns#' term='renaming'/><category scheme='http://www.blogger.com/atom/ns#' term='id3'/><title type='text'>Amarok: id3 tags and me</title><content type='html'>If you're like me and (1) you have a large music collection and (2) you've copied data from an ipod off the harddrive, you've probably thought about renaming your music via the id3 tags.&lt;br /&gt;&lt;br /&gt;For newbies, an id3 tag is part of the audio file that stores the title, artist, year, track #, genre, etc. Regardless of what the file is called, this data remains intact.&lt;br /&gt;Now if you are familiar with an ipod, it stores mp3's in strange, 4 character names that make no readable sense.&lt;br /&gt;&lt;br /&gt;I use (and swear by) GNU/Linux systems. AmaroK has done everything I've ever needed when it comes to audio especially when it comes to handling large collections.&lt;br /&gt;&lt;br /&gt;Where is this leading to? I had over 60GB of audio that I copied from my ipod before I sold it for a superior Cowon machine. (D2+ anyone?)&lt;br /&gt;I wanted all the music to be in the standard Artist - Title.ext format, but I can't rename all 60GB by hand. There used to be a python script I used before that would batch rename all my files to their id3 tags, but lost it after some reformatting, etc.&lt;br /&gt;I've tried looking up other methods, id3ren is one of them, plus a python script someone posted on a forum. They worked very well for me, but I never actually realized amaroK had this functionality built in. It's not obvious at all!&lt;br /&gt;&lt;br /&gt;So for those who use amaroK and want to convert the filenames to their id3 tag counterparts, here's the solution:&lt;br /&gt;&lt;br /&gt;Select the mp3's you want to rename.&lt;br /&gt;&lt;br /&gt;Right click, go to Manage Files -&gt; Organize Files&lt;br /&gt;&lt;br /&gt;It's flexable and easy, requiring no extra programs.&lt;br /&gt;Being somewhat of an audiophile, I wish I could have known about this earlier.&lt;br /&gt;&lt;br /&gt;Thanks to the folks at amaroK for showing me how.&lt;br /&gt;Peon out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-705459681304588688?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/705459681304588688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=705459681304588688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/705459681304588688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/705459681304588688'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2009/06/amarok-id3-tags-and-me.html' title='Amarok: id3 tags and me'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-1085030151559098217</id><published>2009-04-13T12:00:00.000-07:00</published><updated>2009-04-13T12:19:34.277-07:00</updated><title type='text'>Status Update 001</title><content type='html'>College exams are coming up, meaning we haven't had nearly enough time to work on the projects we want to. Don't expect any amazing updates for a couple months, although there is some news of interest.&lt;br /&gt;&lt;br /&gt;I am currently working to advocate using a Gnu/Linux Operating System in my college, and am offering to produce a college-specific distribution for their use. Just what we need, another large project... But honestly, I'm really hoping that this will come to fruition. I'm only speaking for myself (the blogger) that I now find using Windows to be more of a chore than a Linux system. The freedom is worth the work.&lt;br /&gt;I am involved in talks with the program coordinator who will be presenting a business case I developed to the cause of using Gnu/Linux as an optional OS for certain technology courses.  Even if the idea falls through, it will expose people to another option. Anyway, I don't know when the case will be presented, but we will keep you updated.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Another mention goes towards our 'other' pet project. It's going to be a series of Java libraries under its own name for specific development of a seriously under-appreciated area of Java.&lt;br /&gt;Currently the basic plans and backend have/are being designed. Plugins for a database as well as normal textfile saving are in the works.  Firebird is the database being looked at right now, since MySQL may be going down the tubes with Sun's brilliant leadership. I'd prefer to go with a free-to-distribute multi-platform database (hence firebird) as these libraries are going to be multi-platform.&lt;br /&gt;The libraries will be the backend themselves, but a front-end development suite is planned out to be released with the libraries. We're still debating releasing the front-end IDE as open-source or closed-source, but chances are it will be open-source once the licensing is figured out. Expect a GPL 2.0 with a couple additional requirements pertaining to its redistribution and authorship.&lt;br /&gt;&lt;br /&gt;That's it for now. We'll keep hacking at this project, so stay tuned.&lt;br /&gt;&lt;br /&gt;NuclearPeon and Co.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-1085030151559098217?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/1085030151559098217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=1085030151559098217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/1085030151559098217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/1085030151559098217'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2009/04/status-update-001.html' title='Status Update 001'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7685634228233600353.post-7985810058846164371</id><published>2009-02-28T08:45:00.000-08:00</published><updated>2009-02-28T08:49:14.796-08:00</updated><title type='text'>PeonDevelopments WebBlog</title><content type='html'>PeonDevelopments is a small (and I mean very small) company that does mainly java-based programming.&lt;br /&gt;&lt;br /&gt;While a Front-end to FFMPEG is planned for development, we are pre-occupied with a much larger and ambitious project.&lt;br /&gt;Since it is in the beginning stages, not a lot can be said right now, but given time and effort it should be a rewarding project.&lt;br /&gt;&lt;br /&gt;I'll keep you posted.&lt;br /&gt;&lt;br /&gt;NuclearPeon&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7685634228233600353-7985810058846164371?l=peon-developments.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peon-developments.blogspot.com/feeds/7985810058846164371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7685634228233600353&amp;postID=7985810058846164371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/7985810058846164371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7685634228233600353/posts/default/7985810058846164371'/><link rel='alternate' type='text/html' href='http://peon-developments.blogspot.com/2009/02/peondevelopments-webblog.html' title='PeonDevelopments WebBlog'/><author><name>NuclearPeon</name><uri>http://www.blogger.com/profile/13811883661729393483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
