<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.simply-life.net/cheetah"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>ChEeTaH&#039;s</title>
 <link>http://www.simply-life.net/cheetah</link>
 <description></description>
 <language>en</language>
<item>
 <title>MacDesperate now Online!</title>
 <link>http://www.simply-life.net/cheetah/blog/2009-12-08/macdesperate-now-online</link>
 <description>&lt;p&gt;After quite a long time (well over a year), we finally launched MacDesperate last Sunday. We are me, &lt;a href=&quot;http://www.rosana.co.uk/&quot; rel=&quot;nofollow&quot;&gt;Rosana&lt;/a&gt;, &lt;a href=&quot;http://alex.simsnetwork.com/&quot; rel=&quot;nofollow&quot;&gt;Alex&lt;/a&gt; and &lt;a href=&quot;http://www.myshuno.net/&quot; rel=&quot;nofollow&quot;&gt;Wouter&lt;/a&gt;. Of course, MacDesperate is powered by Drupal. Rosana and Wouter are saving up for macs - they&#039;re the real MacDesperates - and my &lt;a href=&quot;http://www.simply-life.net/cheetah/blog/2009-11-14/donation-goals-module-drupal&quot; rel=&quot;nofollow&quot;&gt;Donation Goals&lt;/a&gt; module helps them keep track of their progress. The first donations are already in. Now it&#039;s time for you to support them! Don&#039;t hesitate and go to &lt;a href=&quot;http://www.macdesperate.com&quot; rel=&quot;nofollow&quot;&gt;MacDesperate.com&lt;/a&gt;! We&#039;ve got goodies!&lt;/p&gt;
</description>
 <comments>http://www.simply-life.net/cheetah/blog/2009-12-08/macdesperate-now-online#comments</comments>
 <category domain="http://www.simply-life.net/cheetah/tag/donation-goals">donation goals</category>
 <category domain="http://www.simply-life.net/cheetah/tag/drupal">Drupal</category>
 <category domain="http://www.simply-life.net/cheetah/tag/macdesperate">MacDesperate</category>
 <pubDate>Tue, 08 Dec 2009 18:56:41 +0000</pubDate>
 <dc:creator>ChEeTaH</dc:creator>
 <guid isPermaLink="false">66 at http://www.simply-life.net/cheetah</guid>
</item>
<item>
 <title>Drupal Development made easier with Qt Assistant - Part 2</title>
 <link>http://www.simply-life.net/cheetah/blog/2009-11-22/drupal-development-made-easier-qt-assistant-part-2</link>
 <description>&lt;p&gt;&amp;lt;!--break--&gt;&lt;br /&gt;
In the &lt;a href=&quot;http://www.simply-life.net/cheetah/blog/2009-11-10/drupal-development-made-easier-qt-assistant-part-1&quot;&gt;previous part&lt;/a&gt; of this walk-through, we installed the necessary software to get our Drupal API documentation in Qt Assistant. The next step is to actually generate the documentation so we can browse through it, search it and more. If you haven&#039;t done so already, read &lt;a href=&quot;http://www.simply-life.net/cheetah/blog/2009-11-10/drupal-development-made-easier-qt-assistant-part-1&quot;&gt;part 1&lt;/a&gt; so you&#039;re sure to have the right software.&lt;/p&gt;
&lt;h4&gt;Creating a Doxyfile&lt;/h4&gt;
&lt;p&gt;The first thing we need to do is creating a configuration file for Doxygen. This will contain instructions for Doxygen about the formats you want the documentation to be in, where to get the documentation from, etc. I&#039;ll show the settings in the graphical tool, &lt;code&gt;doxywizard&lt;/code&gt;. Of course it&#039;s also possible to let the &lt;code&gt;doxygen&lt;/code&gt; command generate the file for you so you can edit it manually (with a text editor). Either way is fine. If you want to use the Doxyfile generated through this tutorial straight away, scroll to the bottom of this post to download it.&lt;/p&gt;
&lt;p&gt;So, let&#039;s start the Doxygen wizard. You should find this in your launcher menu, probably under the Development submenu, or you can just run &lt;code&gt;doxywizard&lt;/code&gt; from a terminal. The window you get presented asks you, as a first step, to select the working directory. Point this to your Drupal directory. For me this would be &lt;em&gt;/home/cheetah/public_html/drupal.api&lt;/em&gt;. Now, as we want to set some advanced settings, we skip straight to the &lt;em&gt;Expert&lt;/em&gt; tab to configure everything.&lt;/p&gt;
&lt;p&gt;The first things to pay attention for are the &lt;strong&gt;PROJECT_NAME&lt;/strong&gt; (&quot;&lt;em&gt;drupal&lt;/em&gt;&quot;), &lt;strong&gt;PROJECT_NUMBER&lt;/strong&gt; (&quot;&lt;em&gt;6&lt;/em&gt;&quot; or whichever Drupal version you&#039;re working with), and the &lt;strong&gt;OUTPUT_DIRECTORY&lt;/strong&gt; settings. For the last setting, creating a new place for Doxygen to dump its files in is the easiest way to prevent the Doxygen output from cluttering your Drupal installation. I&#039;ve put it in a &lt;em&gt;doxygen&lt;/em&gt; subdirectory (&quot;&lt;em&gt;/home/cheetah/public_html/drupal.api/doxygen&lt;/em&gt;&quot;). You&#039;ll probably also want to enable the &lt;strong&gt;REPEAT_BRIEF&lt;/strong&gt; and &lt;strong&gt;ALWAYS_DETAILED_SEC&lt;/strong&gt; as well. The &lt;strong&gt;STRIP_FROM_PATH&lt;/strong&gt; setting should be empty, but it also doesn&#039;t hurt to enter the base directory of your Drupal installation (this way, if your run Doxygen outside the Drupal directory, it&#039;ll still properly strip the path from the filenames). I&#039;ve also enabled the &lt;strong&gt;QT_AUTOBRIEF&lt;/strong&gt; and &lt;strong&gt;OPTIMIZE_OUTPUT_FOR_C&lt;/strong&gt; options.&lt;/p&gt;
&lt;p&gt;There&#039;s a final important setting on the &lt;strong&gt;Project&lt;/strong&gt; topic, which is the &lt;strong&gt;EXTENSION_MAPPING&lt;/strong&gt;. Generally, Drupal uses &lt;em&gt;*.php&lt;/em&gt;, &lt;em&gt;*.module&lt;/em&gt; and &lt;em&gt;*.inc&lt;/em&gt; filenames for code. However, we need to tell Doxygen that these are PHP files. Add &quot;&lt;em&gt;module=PHP&lt;/em&gt;&quot; and &quot;&lt;em&gt;install=PHP&lt;/em&gt;&quot; (according to the documentation, you should omit the &quot;.&quot; in front of the extension).&lt;/p&gt;
&lt;div class=&quot;center&quot;&gt;
&lt;a href=&quot;http://www.simply-life.net/cheetah/system/files/doxywizard1.png&quot; title=&quot;DoxyWizard - Project Settings&quot; rel=&quot;lightshow[doxywizard]&quot;&gt;&lt;img src=&quot;http://www.simply-life.net/cheetah/system/files/imagecache/thumbnail/doxywizard1.png&quot; alt=&quot;DoxyWizard - Project Settings&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Next tab is the &lt;strong&gt;Build&lt;/strong&gt; topic. We want to get all the documentation, so we extract &lt;strong&gt;ALL&lt;/strong&gt;, &lt;strong&gt;PRIVATE&lt;/strong&gt;, &lt;strong&gt;STATIC&lt;/strong&gt;, &lt;strong&gt;LOCAL_CLASSES&lt;/strong&gt; and &lt;strong&gt;LOCAL_METHODS&lt;/strong&gt;. The &lt;strong&gt;SHOW_DIRECTORIES&lt;/strong&gt; setting may be useful to have the directory structure visible in the documentation. We skip straight to the &lt;strong&gt;Input&lt;/strong&gt; topic, and add our Drupal directory as &lt;strong&gt;INPUT&lt;/strong&gt; setting. Important is the &lt;strong&gt;FILE_PATTERNS&lt;/strong&gt; setting: this tells Doxygen which files contain documentation. The &lt;em&gt;*.php&lt;/em&gt; and &lt;em&gt;*.inc&lt;/em&gt; should normally already be in there, but for Drupal add the &lt;em&gt;*.module&lt;/em&gt; and &lt;em&gt;*.install&lt;/em&gt; patterns as well. This way Doxygen should extract documentation from most if not all of the code files in Drupal (unfortunately Doxygen doesn&#039;t work well with Javascript).&lt;/p&gt;
&lt;p&gt;Also enable the &lt;strong&gt;RECURSIVE&lt;/strong&gt; option, otherwise you&#039;ll need to tell Doxygen explicitly which directories it should look in for documentation, in the &lt;strong&gt;INPUT&lt;/strong&gt; setting. If you keep a directory with backups of old modules within the Drupal directory, enter its path in the &lt;strong&gt;EXCLUDE&lt;/strong&gt; setting (e.g. &quot;&lt;em&gt;backup&lt;/em&gt;&quot;). As &lt;strong&gt;EXCLUDE_PATTERNS&lt;/strong&gt; some useful entries may be &lt;em&gt;*/CVS/*&lt;/em&gt;, &lt;em&gt;*/.svn/*&lt;/em&gt;, &lt;em&gt;*/.git/*&lt;/em&gt; (so Doxygen skips version-controlled directories), plus &lt;em&gt;*/settings.php&lt;/em&gt; and &lt;em&gt;*/*.settings.php&lt;/em&gt; to ignore site-specific settings files.&lt;/p&gt;
&lt;div class=&quot;center&quot;&gt;
&lt;a href=&quot;http://www.simply-life.net/cheetah/system/files/doxywizard2.png&quot; title=&quot;DoxyWizard - Input Settings&quot; rel=&quot;lightshow[doxywizard]&quot;&gt;&lt;img src=&quot;http://www.simply-life.net/cheetah/system/files/imagecache/thumbnail/doxywizard2.png&quot; alt=&quot;DoxyWizard - Input Settings&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Next up is the &lt;strong&gt;HTML&lt;/strong&gt; topic, in which we configure the HTML output Doxygen generates. Yes, we want to generate HTML (switch on &lt;strong&gt;GENERATE_HTML&lt;/strong&gt;) in the &lt;em&gt;html&lt;/em&gt; subdirectory (&lt;strong&gt;HTML_OUTPUT&lt;/strong&gt;) with the &lt;em&gt;.html&lt;/em&gt; extension for the files (&lt;strong&gt;HTML_FILE_EXTENSION&lt;/strong&gt;). Now a very important setting to generate the Qt Help files, which Qt Assistant uses. Switch on &lt;strong&gt;GENERATE_QHP&lt;/strong&gt;. For &lt;strong&gt;QCH_FILE&lt;/strong&gt;, which just became enabled, set &lt;em&gt;drupal-6.qch&lt;/em&gt; (or just &lt;em&gt;drupal.qch&lt;/em&gt;, or replace the 6 with the version of Drupal you&#039;re working with). Set the &lt;strong&gt;QHP_NAMESPACE&lt;/strong&gt; to &lt;em&gt;org.drupal.6&lt;/em&gt; (again, replace the version number). Set &lt;em&gt;all&lt;/em&gt; as the &lt;strong&gt;QHP_VIRTUAL_FOLDER&lt;/strong&gt; - this will come in handy later. Also set the filter settings: &lt;strong&gt;QHP_CUST_FILTER_NAME&lt;/strong&gt; to &lt;em&gt;&quot;Drupal 6 (all)&quot;&lt;/em&gt;, and set both &lt;strong&gt;QHP_CUST_FILTER_ATTRS&lt;/strong&gt; and &lt;strong&gt;QHP_SECT_FILTER_ATTRS&lt;/strong&gt; to &lt;em&gt;drupal drupal-6&lt;/em&gt;. Finally, we set the path to the &quot;&lt;em&gt;qhelpgenerator&lt;/em&gt;&quot; program (&quot;&lt;em&gt;qhelpgenerator.exe&lt;/em&gt;&quot; on Windows, I assume) in the &lt;strong&gt;QHG_LOCATION&lt;/strong&gt; setting. This is probably something like &quot;&lt;em&gt;/usr/bin/qhelpgenerator&lt;/em&gt;&quot; or &quot;&lt;em&gt;C:/Qt/bin/qhelpgenerator.exe&lt;/em&gt;&quot;. Leave the other settings at their defaults (&lt;strong&gt;DISABLE_INDEX&lt;/strong&gt; off, &lt;strong&gt;GENERATE_TREEVIEW&lt;/strong&gt; to &lt;em&gt;none&lt;/em&gt;, etc.).&lt;/p&gt;
&lt;div class=&quot;center&quot;&gt;
&lt;a href=&quot;http://www.simply-life.net/cheetah/system/files/doxywizard3.png&quot; title=&quot;DoxyWizard - HTML Settings&quot; rel=&quot;lightshow[doxywizard]&quot;&gt;&lt;img src=&quot;http://www.simply-life.net/cheetah/system/files/imagecache/thumbnail/doxywizard3.png&quot; alt=&quot;DoxyWizard - HTML Settings&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Finally, head to the &lt;strong&gt;LaTeX&lt;/strong&gt;, &lt;strong&gt;RTF&lt;/strong&gt;, &lt;strong&gt;Man&lt;/strong&gt; and &lt;strong&gt;XML&lt;/strong&gt; topics, and turn output for each of these off. We won&#039;t be using these. Finally, if you want to, enable or disable class diagrams on the &lt;strong&gt;Dot&lt;/strong&gt; topic. This will make a difference for some contributed modules (mostly Views).&lt;/p&gt;
&lt;h4&gt;First Run&lt;/h4&gt;
&lt;p&gt;We&#039;re all set now, so let&#039;s run Doxygen! Go to the &lt;strong&gt;Run&lt;/strong&gt; tab, click the &lt;strong&gt;Run doxygen&lt;/strong&gt; button and let it do its work. When it&#039;s done (don&#039;t close the Doxygen Wizard until I tell you to!), click &quot;&lt;strong&gt;Show HTML Output&lt;/strong&gt;&quot; and your browser will start with the Drupal documentation right at your hands.  Unless you excluded the &quot;&lt;em&gt;sites&lt;/em&gt;&quot; subdirectory, you also get all the documentation of contributed modules as well. You may notice some problems with broken links (e.g. the Form API reference etc), and the documentation is a little bit messy if you have many contributed modules. We&#039;ll solve these problems in the next part. First, let&#039;s exit the wizard. It will ask us to save the configuration. Save it under its default name (that would be &quot;&lt;em&gt;/home/cheetah/public_html/drupal.api/doxygen/Doxyfile&lt;/em&gt;&quot; in my case). You&#039;ll find the sample file created in this tutorial at the bottom of this post.&lt;/p&gt;
&lt;div class=&quot;center&quot;&gt;
&lt;a href=&quot;http://www.simply-life.net/cheetah/system/files/documentation1.png&quot; title=&quot;Drupal Documentation&quot; rel=&quot;lightshow[doxywizard]&quot;&gt;&lt;img src=&quot;http://www.simply-life.net/cheetah/system/files/imagecache/thumbnail/documentation1.png&quot; alt=&quot;Drupal Documentation&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Last step for today is loading up the Qt Assistant with our documentation. This will require using a terminal/command line. First make sure you know where Qt Assistant is located. The program is called just &lt;strong&gt;assistant&lt;/strong&gt;, so for most platforms you should be able to find it using &lt;code&gt;which assistant&lt;/code&gt; on the terminal. On Windows, look in your Qt installation path, in the &lt;em&gt;bin&lt;/em&gt; directory. Now decide for a location for your Qt Help Collection file. Create an empty file with any name you like (e.g. &lt;em&gt;drupal-6.qhc&lt;/em&gt;). You can use the &lt;code&gt;touch&lt;/code&gt; command to do so, or by creating an empty file in that directory using your file manager (that would be the way to go for Windows users; use Explorer or Notepad and create the empty file. Make sure the extension is &lt;strong&gt;.qhc&lt;/strong&gt; and not &lt;strong&gt;.txt&lt;/strong&gt; or something else!). Now, assuming you&#039;ve chosen the filename to be &lt;strong&gt;drupal-6.qhc&lt;/strong&gt; in your home directory (and your username is &lt;em&gt;cheetah&lt;/em&gt;) enter in a terminal:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/usr/bin/assistant -collectionFile /home/cheetah/drupal-6.qhc&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You can also just set up a shortcut to do this, of course. You should see an empty Qt Assistant:&lt;/p&gt;
&lt;div class=&quot;center&quot;&gt;
&lt;a href=&quot;http://www.simply-life.net/cheetah/system/files/qtassistant4.png&quot; title=&quot;Empty Assistant&quot; rel=&quot;lightshow[drupalassistant]&quot;&gt;&lt;img src=&quot;http://www.simply-life.net/cheetah/system/files/imagecache/thumbnail/qtassistant4.png&quot; alt=&quot;Empty Assistant&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;As long as this is the first time you&#039;re starting up the assistant with this file, you can head to the &lt;em&gt;Edit&lt;/em&gt; &amp;gt; &lt;em&gt;Preferences&lt;/em&gt; menu. Go to the &lt;em&gt;Documentation&lt;/em&gt; tab, click &lt;em&gt;Add...&lt;/em&gt; and add the &lt;em&gt;drupal-6.qch&lt;/em&gt; file created by Doxygen (this will be in the &lt;em&gt;doxygen/html&lt;/em&gt; directory within your Drupal installation, if you followed this tutorial). Qt Assistant will start updating its indexes, and you get to see and search your documentation:&lt;/p&gt;
&lt;div class=&quot;center&quot;&gt;
&lt;a href=&quot;http://www.simply-life.net/cheetah/system/files/qtassistant5.png&quot; title=&quot;Adding Collections to the Assistant&quot; rel=&quot;lightshow[drupalassistant]&quot;&gt;&lt;img src=&quot;http://www.simply-life.net/cheetah/system/files/imagecache/thumbnail/qtassistant5.png&quot; alt=&quot;Adding Collections to the Assistant&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.simply-life.net/cheetah/system/files/qtassistant6.png&quot; title=&quot;Drupal Documentation in Assistant&quot; rel=&quot;lightshow[drupalassistant]&quot;&gt;&lt;img src=&quot;http://www.simply-life.net/cheetah/system/files/imagecache/thumbnail/qtassistant6.png&quot; alt=&quot;Drupal Documentation in Assistant&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;You&#039;ll find out that once you restart the assistant with the same collectionFile parameter, the &lt;em&gt;Documentation&lt;/em&gt; tab will disappear from the preferences, even after removing and recreating the file. If this happened, you can still register and unregister help files from the collection file, from the command line as follows (change the filenames etc. of course):&lt;/p&gt;
&lt;p&gt;&lt;code&gt;assistant -collectionFile drupal-6.qhc -register /home/cheetah/public_html/drupal.api/doxygen/html/drupal-6.qch&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To remove the help file from the collection again:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;assistant -collectionFile drupal-6.qhc -unregister /home/cheetah/public_html/drupal.api/doxygen/html/drupal-6.qch&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;These commands will tell you if something useful happened, but won&#039;t actually start the assistant. Restart the assistant with just the &lt;em&gt;collectionFile&lt;/em&gt; parameter again to just see the documentation.&lt;/p&gt;
&lt;p&gt;Note that as long as the Qt Compressed Help file (the one generated by Doxygen) stays in the same place, you should be able to update it and see the changes in the assistant if you ever recreate the documentation. The assistant will automatically recreate its index and take care of such updates for you. Knowing that, you can create an icon that fires up the assistant for you, with the Drupal help loaded, so you can get that quick documentation access. Just use the above command above the empty assistant screenshot. Make sure you do give the proper path to the collection file!&lt;/p&gt;
&lt;h4&gt;Updates&lt;/h4&gt;
&lt;p&gt;If you ever want to update the documentation (for example because you added more contributed modules, updated Drupal to a newer version, etc), regenerate it with Doxygen. You can use the wizard to open the Doxyfile you saved, rerun Doxygen and the assistant should show the updated documentation after you start it again. It&#039;s as simple as that. Alternatively, using a terminal, head to your Drupal directory (or wherever you stored the Doxyfile) and simply call &lt;code&gt;doxygen&lt;/code&gt;. As long as you&#039;ve explicitly set the &lt;strong&gt;INPUT&lt;/strong&gt; setting above, then run &lt;code&gt;doxygen /path/to/Doxyfile&lt;/code&gt; and so you can even use a different filename for your Doxygen configuration. Of course you can also play with the various Doxygen settings, rerun doxygen, and you&#039;ll also get the documentation with the new settings in Qt Assistant.&lt;/p&gt;
&lt;p&gt;Of course you don&#039;t have to use a separate collection file (*.qhc) for each version of Drupal you have. You can put each version of Drupal in the same assistant. Now if you made sure you have different namespaces (hence we placed the version numbers in the configuration), you should be able to filter per version at the top of the UI.&lt;/p&gt;
&lt;h4&gt;Summary&lt;/h4&gt;
&lt;p&gt;Last time all we did was install the necessary software. This time we actually used it all in the most basic way, with success: the Qt Assistant now displays the Drupal documentation. This should be enough to get you started finding all the information of the Drupal API that you need. There are still some problems with broken links to special topics, there&#039;s no way to filter out specific module information, and so on.&lt;/p&gt;
&lt;p&gt;With the major steps taken, next time I&#039;ll dig a little deeper in fixing the most painful problems. It probably won&#039;t be as much work as this part. See you next time!&lt;/p&gt;
&lt;table id=&quot;attachments&quot; class=&quot;sticky-enabled&quot;&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Attachment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://www.simply-life.net/cheetah/system/files/Doxyfile.&quot;&gt;Doxyfile.&lt;/a&gt;&lt;/td&gt;&lt;td&gt;62.83 KB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
 <comments>http://www.simply-life.net/cheetah/blog/2009-11-22/drupal-development-made-easier-qt-assistant-part-2#comments</comments>
 <category domain="http://www.simply-life.net/cheetah/tag/drupal">Drupal</category>
 <category domain="http://www.simply-life.net/cheetah/tag/open-source">Open Source</category>
 <category domain="http://www.simply-life.net/cheetah/tag/qt">Qt</category>
 <enclosure url="http://www.simply-life.net/cheetah/system/files/Doxyfile." length="64337" type="application/octet-stream" />
 <pubDate>Sun, 22 Nov 2009 22:36:49 +0000</pubDate>
 <dc:creator>ChEeTaH</dc:creator>
 <guid isPermaLink="false">64 at http://www.simply-life.net/cheetah</guid>
</item>
<item>
 <title>Donation Goals module at Drupal</title>
 <link>http://www.simply-life.net/cheetah/blog/2009-11-14/donation-goals-module-drupal</link>
 <description>&lt;p&gt;&amp;lt;!--break--&gt;&lt;br /&gt;
Yesterday I wrapped up some work I&#039;ve been putting into a Drupal module recently, for a site that&#039;s probably launching before the end of the year (not putting any pressure on anyone here!). It&#039;s called &quot;Donation Goals&quot; and can be grabbed from the &lt;a href=&quot;http://drupal.org/project/donation_goals&quot;&gt;Donation Goals Project page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With Donation Goals you can make a new type of content in your Drupal site. You guessed it, a &quot;Donation Goal&quot;. Enter some details, especially how much money you need, open it up and make sure you get some visitors. They can donate money to you, through PayPal, helping you reach your goal.&lt;/p&gt;
&lt;p&gt;The module keeps track of all donations (as long as they&#039;re made through the site) and even allows you to build some fancy overviews of all donations (&lt;a href=&quot;http://drupal.org/project/views&quot;&gt;Views&lt;/a&gt; FTW!). If you saved some money yourself, you could of course pay it yourself through PayPal. The easier way is to just add the money to the current savings and let the module do the work for you (saving you the PayPal fees that you might have to pay otherwise).&lt;/p&gt;
&lt;p&gt;There are some similar modules (&lt;a href=&quot;http://drupal.org/project/bounty&quot;&gt;Bounty&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/project/donation&quot;&gt;Donation&lt;/a&gt; and &lt;a href=&quot;http://drupal.org/project/chipin&quot;&gt;ChipIn&lt;/a&gt;) available, but they all take a somewhat different approach, or they are completely abandoned.&lt;/p&gt;
&lt;p&gt;While a first development version is out, the module probably still has some features to add, things to change and bugs to fix. Try it out from &lt;a href=&quot;http://drupal.org/project/donation_goals&quot;&gt;drupal.org/project/donation_goals&lt;/a&gt; and let me know what you think!&lt;/p&gt;
</description>
 <comments>http://www.simply-life.net/cheetah/blog/2009-11-14/donation-goals-module-drupal#comments</comments>
 <category domain="http://www.simply-life.net/cheetah/tag/donation-goals">donation goals</category>
 <category domain="http://www.simply-life.net/cheetah/tag/drupal">Drupal</category>
 <category domain="http://www.simply-life.net/cheetah/tag/open-source">Open Source</category>
 <pubDate>Sat, 14 Nov 2009 20:30:03 +0000</pubDate>
 <dc:creator>ChEeTaH</dc:creator>
 <guid isPermaLink="false">62 at http://www.simply-life.net/cheetah</guid>
</item>
<item>
 <title>Drupal Development made easier with Qt Assistant - Part 1</title>
 <link>http://www.simply-life.net/cheetah/blog/2009-11-10/drupal-development-made-easier-qt-assistant-part-1</link>
 <description>&lt;p&gt;&amp;lt;!--break--&gt;&lt;br /&gt;
If you&#039;ve followed my blog for even the smallest bit, you&#039;ll know I have KDE 4 as my desktop environment. I&#039;ve also done quite some development (mostly messing around so far, just tContact is published) for Drupal. One of the main tools to help me during development is the Qt Assistant, which comes with Qt 4 and later. It&#039;s a fast documentation viewer, with a great index making it easy to look up all those little details about each function that&#039;s available in Qt4... or Drupal. Let me show you how I&#039;ve set things up...&lt;/p&gt;
&lt;p&gt;Oh, and if you&#039;re not that into all this techy stuff: feel free to stop reading, of course.&lt;/p&gt;
&lt;h4&gt;Some quick notes&lt;/h4&gt;
&lt;p&gt;First of all: this guide is focused on getting the Drupal API in the Qt Assistant, but it should work for pretty much any C++/PHP/Java/Python project etc. which Doxygen can handle. See the &lt;a href=&quot;http://www.stack.nl/~dimitri/doxygen/&quot;&gt;Doxygen website&lt;/a&gt; for details on how to document your code et cetera. Unfortunately I have not been able to get the PHP documentation itself integrated in Qt Assistant yet.&lt;/p&gt;
&lt;p&gt;I will also be using some scripts to be run from a terminal or shell. This should not be much of a problem for you Linux or Mac users, for Windows it might be necessary to get &lt;a href=&quot;http://www.cygwin.com&quot;&gt;CygWin&lt;/a&gt;. Unfortunately I haven&#039;t tried all of this from Windows, so if someone can jump in and post useful/necessary tips for Windows users in the comments, that would be helpful.&lt;/p&gt;
&lt;h4&gt;Preparing your system&lt;/h4&gt;
&lt;p&gt;Well, you&#039;re still here. First thing to do is to install Qt4. You get it from &lt;a href=&quot;http://www.qtsoftware.com&quot;&gt;QtSoftware.com&lt;/a&gt; for pretty much any platform. Get the LGPL/Free version of the Framework or SDK. Note that on Linux it&#039;ll very likely come with the repositories of your distribution, you may just need to install the -dev or -devel packages.&lt;/p&gt;
&lt;p&gt;Next, get a copy of Drupal from &lt;a href=&quot;http://www.drupal.org&quot;&gt;Drupal.org&lt;/a&gt; and extract it somewhere on your hard drive. You can of course use your existing Drupal installation full with all the modules you like, or just whichever product you want to use in combination with the Assistant (as long as you have access to the source code). You can do this several times for any version of Drupal, so you can even get separate access to your Drupal 5, 6 and 7 documentation. The choice is yours. No need to actually install it, just make sure the source is available.&lt;/p&gt;
&lt;p&gt;For Drupal you&#039;ll also want to pull the Developer documentation from CVS. These contain some special help pages like the FAPI Reference and more, as well as documentation about all the hooks (&lt;em&gt;hook_*&lt;/em&gt; functions). I won&#039;t repeat the exact instructions on how to get the documentation. Just follow the &lt;a href=&quot;http://drupal.org/node/144223&quot;&gt;instructions at drupal.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Finally, get Doxygen (&lt;a href=&quot;http://www.stack.nl/~dimitri/doxygen/&quot;&gt;www.stack.nl/~dimitri/doxygen/&lt;/a&gt;). For Linux users: this is probably also in your distribution&#039;s repositories. This is the tool that will extract the documentation from your source code, and place it in useful HTML files - and finally in Qt Assistant too.&lt;/p&gt;
&lt;h4&gt;Qt Assistant - A Quick Look&lt;/h4&gt;
&lt;p&gt;Now that we have the necessary software installed, you could just take a quick peek at what Qt Assistant does for Qt. You should find it in your launcher/start menu/wherever (Mac: /Developer/Applications/Qt), or just by running &quot;&lt;em&gt;assistant&lt;/em&gt;&quot; from the terminal. Go ahead and try it, you should see something similar to this:&lt;/p&gt;
&lt;div class=&quot;center&quot;&gt;
&lt;a href=&quot;http://www.simply-life.net/cheetah/system/files/qtassistant1.png&quot; title=&quot;Qt Assistant - Home&quot; rel=&quot;lightshow[qtassistant]&quot;&gt;&lt;img src=&quot;http://www.simply-life.net/cheetah/system/files/imagecache/thumbnail/qtassistant1.png&quot; alt=&quot;Qt Assistant&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Now let&#039;s look up the documentation of a function we know (part of) the name of: &lt;em&gt;aboutQt()&lt;/em&gt;. Hit the &lt;em&gt;Index&lt;/em&gt; tab on the left, enter &lt;em&gt;about&lt;/em&gt; and you&#039;ll see a list of matching declarations (as well as some more generic topics). Double click &lt;em&gt;aboutQt&lt;/em&gt; and Qt Assistant will prompt you to choose in which topic you want to look, &lt;em&gt;QApplication&lt;/em&gt; or &lt;em&gt;QMessageBox&lt;/em&gt;. I&#039;ve opted for &lt;em&gt;QApplication&lt;/em&gt; in the screenshot below, some actual documentation!&lt;/p&gt;
&lt;div class=&quot;center&quot;&gt;
&lt;a href=&quot;http://www.simply-life.net/cheetah/system/files/qtassistant2.png&quot; title=&quot;Qt Assistant - Index Search&quot; rel=&quot;lightshow[qtassistant]&quot;&gt;&lt;img src=&quot;http://www.simply-life.net/cheetah/system/files/imagecache/thumbnail/qtassistant2.png&quot; alt=&quot;Qt Assistant&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Finally one feature I don&#039;t use as often, but which is lightning fast: the Search. You&#039;ll find this tab on the right, just above the documentation. Searching for &quot;&lt;em&gt;about&lt;/em&gt;&quot; will give you something like below, very useful if you only know the general topic of something you need:&lt;/p&gt;
&lt;div class=&quot;center&quot;&gt;
&lt;a href=&quot;http://www.simply-life.net/cheetah/system/files/qtassistant3.png&quot; title=&quot;Qt Assistant - Full Text Search&quot; rel=&quot;lightshow[qtassistant]&quot;&gt;&lt;img src=&quot;http://www.simply-life.net/cheetah/system/files/imagecache/thumbnail/qtassistant3.png&quot; alt=&quot;Qt Assistant&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Play around a bit and if you&#039;re daring: see if you can already get your Drupal documentation in there. That&#039;s what&#039;s coming up in the next part - the entire Drupal (and contributed) API, without even mixing it up with the Qt documentation.&lt;/p&gt;
</description>
 <comments>http://www.simply-life.net/cheetah/blog/2009-11-10/drupal-development-made-easier-qt-assistant-part-1#comments</comments>
 <category domain="http://www.simply-life.net/cheetah/tag/drupal">Drupal</category>
 <category domain="http://www.simply-life.net/cheetah/tag/open-source">Open Source</category>
 <category domain="http://www.simply-life.net/cheetah/tag/qt">Qt</category>
 <pubDate>Tue, 10 Nov 2009 22:53:23 +0000</pubDate>
 <dc:creator>ChEeTaH</dc:creator>
 <guid isPermaLink="false">58 at http://www.simply-life.net/cheetah</guid>
</item>
<item>
 <title>Looky! Fixes!</title>
 <link>http://www.simply-life.net/cheetah/blog/2009-11-10/looky-fixes</link>
 <description>&lt;p&gt;Look here! My Lovely Rosana (&lt;a href=&quot;http://www.missdesign.co.uk&quot;&gt;MissDesign&lt;/a&gt;) has made the site work a bit better due to some extra theming (BIG Thank you to her!). This was actually done a couple of weeks ago already. I have just fixed some old content so that it&#039;s all alright again (she had to break screenshots and the like during the updates, but they&#039;re fixed now). Some of the improvements include less flickering of the menu buttons, comments have been themed, and a whole lot more smaller fixes. Also, I&#039;ve just put the Lightbox module on this site, which means images now no longer replace the website, but are put in a nice overlay. I even have slideshows! I promise, I&#039;ll blog again very soon!&lt;/p&gt;
</description>
 <comments>http://www.simply-life.net/cheetah/blog/2009-11-10/looky-fixes#comments</comments>
 <category domain="http://www.simply-life.net/cheetah/tag/rosana">Rosana</category>
 <category domain="http://www.simply-life.net/cheetah/tag/simply-life">Simply Life</category>
 <pubDate>Tue, 10 Nov 2009 21:56:05 +0000</pubDate>
 <dc:creator>ChEeTaH</dc:creator>
 <guid isPermaLink="false">59 at http://www.simply-life.net/cheetah</guid>
</item>
<item>
 <title>tContact at Drupal.org!</title>
 <link>http://www.simply-life.net/cheetah/blog/2009-07-02/tcontact-drupalorg</link>
 <description>&lt;p&gt;I&#039;ve talked about it before... but today it&#039;s finally happened! I got a CVS account for &lt;a href=&quot;http://www.drupal.org&quot;&gt;Drupal.org&lt;/a&gt; a week or two ago. I postponed actually using it for a bit due to exams, but I just put it to some good use. Got a Drupal site and need your contact forms in multiple languages? Meet &lt;a href=&quot;http://drupal.org/project/tcontact&quot;&gt;tContact&lt;/a&gt;! Version 6.x-1.0 is now officially out in the wild!&lt;/p&gt;
</description>
 <comments>http://www.simply-life.net/cheetah/blog/2009-07-02/tcontact-drupalorg#comments</comments>
 <category domain="http://www.simply-life.net/cheetah/tag/drupal">Drupal</category>
 <category domain="http://www.simply-life.net/cheetah/tag/open-source">Open Source</category>
 <category domain="http://www.simply-life.net/cheetah/tag/tcontact">tContact</category>
 <pubDate>Thu, 02 Jul 2009 21:18:45 +0000</pubDate>
 <dc:creator>ChEeTaH</dc:creator>
 <guid isPermaLink="false">56 at http://www.simply-life.net/cheetah</guid>
</item>
<item>
 <title>BSc Computer Science Almost Complete!</title>
 <link>http://www.simply-life.net/cheetah/blog/2009-06-29/bsc-computer-science-almost-complete</link>
 <description>&lt;p&gt;I had exams the last two weeks, one of which was for my Bachelor&#039;s degree. The last one for that degree too - just one more course which I&#039;ll have to do (online) over the summer. The course: &quot;Semantiek &amp;amp; Berekeningsmodellen&quot; (&quot;Semantics and Computation Models&quot;). The good news came in today: I passed. Score: 7/10. That means I&#039;ll most likely have my degree by the end of the summer. Woot! Of course, a screenshot for some proof (click to enlarge):&lt;/p&gt;
&lt;div class=&quot;center&quot;&gt;&lt;a href=&quot;http://www.simply-life.net/cheetah/system/files/semantiek_7.png&quot; rel=&quot;lightbox&quot;&gt;&lt;img src=&quot;http://www.simply-life.net/cheetah/system/files/imagecache/thumbnail/semantiek_7.png&quot; alt=&quot;Semantiek &amp;amp; Berekeningsmodellen: 7/10&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&amp;lt;!--break--&gt;&lt;/p&gt;
</description>
 <comments>http://www.simply-life.net/cheetah/blog/2009-06-29/bsc-computer-science-almost-complete#comments</comments>
 <category domain="http://www.simply-life.net/cheetah/tag/university">University</category>
 <pubDate>Mon, 29 Jun 2009 18:26:13 +0000</pubDate>
 <dc:creator>ChEeTaH</dc:creator>
 <guid isPermaLink="false">54 at http://www.simply-life.net/cheetah</guid>
</item>
<item>
 <title>Where have you been?</title>
 <link>http://www.simply-life.net/cheetah/blog/2009-06-14/where-have-you-been</link>
 <description>&lt;p&gt;It&#039;s been a long time again, very long. A lot has changed too, so here goes...&lt;/p&gt;
&lt;p&gt;First of all: I got a job in February. It&#039;s not the greatest thing, but getting something really nice is hard right now. At least it relieves us a bit from the huge financial burden we&#039;d otherwise have. Another small job at my university, where I worked for only 4 hours each week, is ending this month. I&#039;ll have my last paycheck from there soon, unfortunately.&lt;/p&gt;
&lt;p&gt;I&#039;ve also prepared the tContact Drupal module for release. The code has been slightly improved, which is always good. There&#039;s also another mini-module for Drupal which allows you to add CSS classes to menu links. This makes it easier for a theme to turn a menu into a series of buttons, similar to the menu at the top of this site (Home/About/Contact). Right now this site uses the menu item&#039;s ID number, which is somewhat random. With this module such menus are just a little harder to break :) I hope both modules will land on &lt;a href=&quot;http://www.drupal.org&quot; rel=&quot;nofollow&quot;&gt;Drupal.org&lt;/a&gt; soon.&lt;/p&gt;
&lt;p&gt;What else? KidDraw of course. A few months ago already, I&#039;ve cleaned up a lot of code, made it a little bit themeable (which resulted in removing a whole lot of code). I&#039;ve also changed the file loading/saving structures around so that the files KidDraw produces are nice straightforward XML files. They&#039;re compressed to save some disk space, but it means that compatibility with future and past versions is much easier. Still, a release is not in sight right now, and I&#039;ll stop predicting/hoping anything right now. First I&#039;ve got some other stuff to finish and wrap up, before I can focus on KidDraw a little more again.&lt;/p&gt;
&lt;p&gt;I&#039;m also working on some supersecret projects with &lt;a href=&quot;http://www.rosana.co.uk&quot; rel=&quot;nofollow&quot;&gt;Rosana&lt;/a&gt;, which has taken some time off of other projects. It has inspired me to write the menu CSS classes module mentioned above though.&lt;/p&gt;
&lt;p&gt;Another technical bit I worked on this past weekend is merging all the (5) Drupal installations on this webserver to a single centralized installation. Before, a new version of Drupal would mean updating each site separately: putting the site in maintenance mode, uploading files, updating the database and turning the site back online. Times 5. Right now: Put all sites in maintenance mode, upload files, update all databases, put them all back online. I&#039;ve set up bookmark folders in Firefox so I can put all sites into maintenance mode with just a few clicks. Same goes for updating and bringing them back online. A similar amount of effort is saved for updates of common modules among various sites. All in all: maintaining the sites is less painful - especially as the amount of Drupal sites we&#039;re running will soon grow. &lt;/p&gt;
&lt;p&gt;That does mean that if you spot any errors (missing/broken images, links, etc): please contact me! I think I&#039;ve most of them covered though.&lt;/p&gt;
&lt;p&gt;And then there&#039;s University of course. It&#039;s taking a lot of my time right now, with this year&#039;s last set of exams just around the corner. Together with some more deadlines, it&#039;s a busy time right now.&lt;/p&gt;
&lt;p&gt;The Sims 3 is also out, I&#039;ve been playing it for a bit. Not much yet - too little time. The (Collector&#039;s Edition) box is shiny though.&lt;/p&gt;
&lt;p&gt;Spore Galactic Adventures, the first real expansion for Spore, is due next week, and Thursday (18th) me and Rosana will be checking it out at EA Netherlands. A bit late for a preview, but it may just be early enough to get me excited about the game once again. I don&#039;t know all too much about it right now, so Wednesday evening I&#039;ll have to do some reading to catch up on it.&lt;/p&gt;
&lt;p&gt;Finally: I&#039;ll be getting a new laptop this summer. After saving up for a long time, the &amp;euro;1000 offer from university (for a HP Elitebook 8530w) is in. I&#039;ve filled in the form saying I want it, I&#039;ll have to pay up soon. I should be getting it around August. My current laptop (6 years old) just doesn&#039;t cut it anymore...&lt;/p&gt;
&lt;p&gt;That&#039;s it for this rough summary of the past couple of months (project/work wise anyway). Until next time!&lt;/p&gt;
</description>
 <comments>http://www.simply-life.net/cheetah/blog/2009-06-14/where-have-you-been#comments</comments>
 <category domain="http://www.simply-life.net/cheetah/tag/drupal">Drupal</category>
 <category domain="http://www.simply-life.net/cheetah/tag/kde">KDE</category>
 <category domain="http://www.simply-life.net/cheetah/tag/kiddraw">KidDraw</category>
 <category domain="http://www.simply-life.net/cheetah/tag/rosana">Rosana</category>
 <category domain="http://www.simply-life.net/cheetah/tag/simply-life">Simply Life</category>
 <category domain="http://www.simply-life.net/cheetah/tag/sims">Sims</category>
 <category domain="http://www.simply-life.net/cheetah/tag/spore">Spore</category>
 <category domain="http://www.simply-life.net/cheetah/tag/tcontact">tContact</category>
 <category domain="http://www.simply-life.net/cheetah/tag/university">University</category>
 <category domain="http://www.simply-life.net/cheetah/tag/work">Work</category>
 <pubDate>Sun, 14 Jun 2009 11:57:35 +0000</pubDate>
 <dc:creator>ChEeTaH</dc:creator>
 <guid isPermaLink="false">52 at http://www.simply-life.net/cheetah</guid>
</item>
<item>
 <title>Contact Form Translated</title>
 <link>http://www.simply-life.net/cheetah/blog/2009-01-19/contact-form-translated</link>
 <description>&lt;p&gt;Using my very own module, the &lt;a href=&quot;http://www.simply-life.net/cheetah/contact&quot; rel=&quot;nofollow&quot;&gt;contact form&lt;/a&gt; is now also translated in Dutch (I know, it&#039;s not really useful to tell this on the English version of the site, but I thought I&#039;d just inform everybody). It&#039;s using my own tContact Drupal module, in which I have found a flaw and a to do. I&#039;ll have to fix those before I believe I can publish it. I&#039;ll keep you posted!&lt;/p&gt;
</description>
 <comments>http://www.simply-life.net/cheetah/blog/2009-01-19/contact-form-translated#comments</comments>
 <category domain="http://www.simply-life.net/cheetah/tag/drupal">Drupal</category>
 <category domain="http://www.simply-life.net/cheetah/tag/simply-life">Simply Life</category>
 <category domain="http://www.simply-life.net/cheetah/tag/tcontact">tContact</category>
 <pubDate>Mon, 19 Jan 2009 10:33:28 +0000</pubDate>
 <dc:creator>ChEeTaH</dc:creator>
 <guid isPermaLink="false">50 at http://www.simply-life.net/cheetah</guid>
</item>
<item>
 <title>Happy New Year</title>
 <link>http://www.simply-life.net/cheetah/blog/2009-01-15/happy-new-year</link>
 <description>&lt;p&gt;Boy, it&#039;s been a while. Merry Christmas and a happy new year! Better late than never :P I&#039;ve been really busy, and I&#039;m wrapping up a too busy semester with finals now. Time for some plans.&lt;/p&gt;
&lt;p&gt;I&#039;ll follow up my &lt;a href=&quot;http://www.simply-life.net/cheetah/blog/2008-07-15/kiddraw-progress&quot; rel=&quot;nofollow&quot;&gt;last post&lt;/a&gt; with some sad news: KidDraw didn&#039;t make it to KDE 4.2. The reason: time. As I said: busy semester, but also plenty of other things to work on which left KDE a bit too much on the side.&lt;/p&gt;
&lt;p&gt;However things are more stable in KDE land now: KDevelop4 is coming along great making it actually usable for me. I also don&#039;t have Akregator (my feed reader) crashing on me all the time anymore. Now KDE 4.2 is just around the corner and I&#039;ve decided to stick to that branch now, rather than running trunk all the time as I&#039;ve done the past year.&lt;/p&gt;
&lt;p&gt;Running such an unstable version of my favorite desktop is nice: you constantly get all the new features that everybody implements. However, it occasionally led to a broken desktop with crashes all over the place. I&#039;m opting for better stability and more productivity this new year. I now run a KDE version from trunk, just before RC1, and will switch to KDE 4.2 once it&#039;s out.&lt;/p&gt;
&lt;p&gt;I will be getting new computer parts too, and with 4Gb of memory I think it&#039;s also the time to switch to a 64bit OS (I still run Gentoo 32 bit now). That means a complete reinstall of everything I have, which is exactly what I&#039;ll be doing soon. With KDE 4.2.&lt;/p&gt;
&lt;p&gt;So, I hope I can do more this semester so KidDraw will make it to KDE 4.3 in about 6 months. I&#039;ve also got a few Drupal modules planned, one of which I wrote last night and mostly needs cleaning up before I&#039;ll throw it up here: a multilingual site-wide contact form. I&#039;ll also apply to get it on &lt;a href=&quot;http://www.drupal.org&quot; rel=&quot;nofollow&quot;&gt;Drupal.org&lt;/a&gt; soon.&lt;/p&gt;
&lt;p&gt;There you have it. A few of my plans for 2009. I hope I&#039;ll be able to get it all done.&lt;/p&gt;
</description>
 <comments>http://www.simply-life.net/cheetah/blog/2009-01-15/happy-new-year#comments</comments>
 <category domain="http://www.simply-life.net/cheetah/tag/drupal">Drupal</category>
 <category domain="http://www.simply-life.net/cheetah/tag/kde">KDE</category>
 <category domain="http://www.simply-life.net/cheetah/tag/kiddraw">KidDraw</category>
 <category domain="http://www.simply-life.net/cheetah/tag/new-year">New Year</category>
 <category domain="http://www.simply-life.net/cheetah/tag/tcontact">tContact</category>
 <pubDate>Thu, 15 Jan 2009 20:49:14 +0000</pubDate>
 <dc:creator>ChEeTaH</dc:creator>
 <guid isPermaLink="false">48 at http://www.simply-life.net/cheetah</guid>
</item>
</channel>
</rss>

