<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jucato's Data Core &#187; C++</title>
	<atom:link href="http://jucato.org/blog/category/cpp/feed/" rel="self" type="application/rss+xml" />
	<link>http://jucato.org/blog</link>
	<description>The Log Module</description>
	<lastBuildDate>Sun, 17 Jan 2010 15:05:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Some notes on C: Pointers to Pointers</title>
		<link>http://jucato.org/blog/some-notes-on-c-pointers-to-pointers/</link>
		<comments>http://jucato.org/blog/some-notes-on-c-pointers-to-pointers/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 17:38:05 +0000</pubDate>
		<dc:creator>Jucato</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://jucato.org/blog/?p=159</guid>
		<description><![CDATA[I&#8217;ve finally submitted my last assignment for my subject in Programming, using C. This practically marks the end of the semester. All that&#8217;s left is taking the final examinations on the 27th. I can only imagine how uncomfortable that will be since we&#8217;ll be practically programming on paper only.
I have mixed feelings about how this [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally submitted my last assignment for my subject in Programming, using C. This practically marks the end of the semester. All that&#8217;s left is taking the final examinations on the 27th. I can only imagine how uncomfortable that will be since we&#8217;ll be practically programming on paper only.</p>
<p>I have mixed feelings about how this particular course has gone. For starters, we were &#8220;required&#8221; to use Turbo C. Well actually we were allowed to use something else as long as they display and compile properly on TC, which means setting text editors to use CR\LF as end of lines (DOS style) and testing them in TC (of course I used GCC (g++) and beloved Kate). I don&#8217;t know why it was the recommended IDE and compiler, though, since I think it sucks on both aspects. Other than that, I&#8217;m quite satisfied with the course. I&#8217;ve come across some algorithm issues in my assignments that I haven&#8217;t really thought much about before, so I had a chance to flex my brain muscles and understand some aspects of the language much better. One of those &#8220;Eureka!&#8221; moments.</p>
<p><strong>Pointers to Pointers</strong></p>
<p>In one of the assignments, our teacher made some notes about this topic which the book failed to cover. A pointer to a pointer, which in turn points to something else, might sound useless, but there&#8217;s definitely one use case we encountered that needed it: passing pointers and modifying them in functions.</p>
<p>Simple case: You have a generic function for opening files and checking for errors. Normally you&#8217;d declare a pointer to a file in main() and pass it to the function, like so:</p>
<div class="box">
<pre>
int openfile(FILE *fileptr, char *name, char *mode)
{
    fileptr = fopen(name, mode)&#59;

    ...
}

int main()
{
    FILE *fp;

    openfile(fp, "foo", "r")&#59;

    ...
}
</pre>
</div>
<p>You&#8217;d think that would work, but it doesn&#8217;t. In fact, it would error when you try to use that file pointer. Because the address of the opened file isn&#8217;t getting assigned to fp in main(), although it was getting assigned to fileptr of course. It wasn&#8217;t clear to me at that time. After all, I did pass a pointer, right? Yes, I did, but not for the effect that I thought it would have. I scanned over my old C books and didn&#8217;t really see anything that discusses this topic. I have the K &amp; R book, but I haven&#8217;t read it much, so I can&#8217;t really say. So instead, I&#8217;m just going to write this down, maybe to be able to help somebody else in the future (or some of my classmates who might be reading this).</p>
<p>The real issue here is that while pointers are used to pass by reference, the pointers themselves are passed by value. While you can modify the variable that the pointer is pointing to, you cannot modify the pointer itself. It&#8217;s probably easier to understand once you see that a pointer is just a variable. It&#8217;s a variable who only accepts memory addresses as its value, just like an int would accept integer values, etc. So like any variable, when passed to a function, a copy of that pointer is made and the original pointer&#8217;s value is untouched. So when you, for example, assign a memory address like a pointer to a file you opened in openfile(), that address gets assigned to the copy of fp, which if fileptr. Once the function ends, that copy is destroyed and the handle to the file is lost. Same goes for assigning a block of memory for a linked list or making a pointer to the head of a linked list point to something else.</p>
<p>So what do you do to be able to modify the pointer in a function? Simple, just like any other variable, you need to pass the address of that variable to the function and the function should receive that address in a pointer. In this case, you pass the address of a pointer and received with a pointer to a pointer. And to access what it is pointing to, as usual, you will need to use the dereference (*) operator. So the above code will now be like so:</p>
<div class="box">
<pre>
int openfile(FILE **fileptr, char *name, char *mode)
{
    *fileptr = fopen(name, mode)&#59;

    ...

}

int main()
{
    FILE *fp&#59;

    openfile(&#038;fp, "foo", "r")&#59;

    ...
}
</pre>
</div>
<p>I hope that this could help some poor soul whose brain has been plagued by the same problem. It would probably be easier to have done this in C++, using references (&#038;), though I think even that has its own problems. And anyway, the class was on C, not C++.</p>
<p>So that basically ends my formal C education. Not much was added to what I&#8217;ve already learned by myself years ago, except for some of the exercises. Now I feel I need to review my C++. <img src='http://jucato.org/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://jucato.org/blog/some-notes-on-c-pointers-to-pointers/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Randomness Redux</title>
		<link>http://jucato.org/blog/randomness-redux/</link>
		<comments>http://jucato.org/blog/randomness-redux/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 15:18:06 +0000</pubDate>
		<dc:creator>Jucato</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Source Mage]]></category>

		<guid isPermaLink="false">http://jucato.org/blog/randomness-redux/</guid>
		<description><![CDATA[Just a few more random thoughts about life, software, and KDE.
* So I finally submitted my application for UPOU two weeks ago and got their &#8220;received your application&#8221; e-mail the other day. Now comes the agonizing wait for news whether I get accepted or not. They said they&#8217;ll probably have the partial list in the [...]]]></description>
			<content:encoded><![CDATA[<p>Just a few more random thoughts about life, software, and KDE.</p>
<p>* So I finally submitted my application for <a href="http://www.upou.org/" target="_blank">UPOU</a> two weeks ago and got their &#8220;received your application&#8221; e-mail the other day. Now comes the agonizing wait for news whether I get accepted or not. They said they&#8217;ll probably have the partial list in the website by the end of March or in April, but I still have to wait for an official parcel before I can enroll.</p>
<p>* My writeup about <a href="http://jucato.org/sourcemage/sorcery/dispel.html" target="_blank">Dispel</a>, the spell remover part of <a href="http://jucato.org/sourcemage/sorcery/dispel.html" target="_blank">Sorcery</a>, <a href="http://www.sourcemage.org">Source Mage</a>&#8217;s powerful BASH-based package manager,  is up. With fancy charts! <img src='http://jucato.org/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>* Last year I had this plan to write about some of my favorite KDE 3 apps, focusing on how to use them and/or special features that make them wonderful. Procrastinator that I am, I let the idea sleep for a while. And now KDE 4 is here with a brand new set of amazing apps. Aaron has started his own series about <a href="http://aseigo.blogspot.com/2008/02/falling-in-love-all-over-again.html" target="_blank">falling</a> <a href="http://aseigo.blogspot.com/2008/02/gwenview-falling-in-love-all-over-again.html" target="_blank"> in love</a> <a href="http://aseigo.blogspot.com/2008/02/krdc-falling-in-love-all-over-again.html" target="_blank">all over again</a> with these apps. So I&#8217;m kinda indecisive (no surprise there) whether such writeups about KDE 3 apps are still worthwhile.</p>
<p>* I&#8217;m currently in the middle of *trying* (and probably failing miserably) implementing a feature request for <a href="http://konversation.kde.org" target="_blank">Konversation</a>, under the watchful guidance of <a href="http://behindkde.org/people/hein/" target="_blank">Eike</a>. It&#8217;s my first <strong>real</strong> attempt at creating (not just copying) a feature in a real-world application. This is me, straight from the pampered world of C++ in books (more on that some other time). The process of trying to figure out how things work, (which, in my work process, is an essential part of figuring out where and how to insert a new feature) is exhilarating, adrenaline-pumping, and frustrating all at once. It&#8217;s fun *and* annoying. And I like it! Yeah, I&#8217;m crazy that way. <img src='http://jucato.org/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>* I was able to buy a book on user interface design, &#8220;<a href="http://www.cooper.com/insights/books/" target="_blank">About Face</a>&#8221; (first edition) by Alan Cooper. I think it was a pioneer book in the field of UI Design, dating back 1995. I didn&#8217;t expect much from the book at first being old and from &#8220;the father of Visual Basic&#8221;, but it actually turns out to be  very nice and not so Windows-glorifying as I thought it would be. I also learned later that he&#8217;s one of the big names in the field of usability. I guess what really made me happy about the book (so far) is that it&#8217;s probably the first book I&#8217;ve seen where someone is advocating User Interface Design as a discipline/field, a subset of Software Design and distinct from Usability. I&#8217;m not sure if that ever came about or whether it is really distinct from Usability as a field. And I think Alan Cooper moved from emphasis on &#8220;User Interface Design&#8221; to &#8220;Interaction Design&#8221; in the most recent edition of About Face. As a side note, it&#8217;s quite amusing to see how some of his suggestions have been or are being implemented in KDE (or almost everywhere) today.</p>
]]></content:encoded>
			<wfw:commentRss>http://jucato.org/blog/randomness-redux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cpp-&gt;setStatus( DONE );</title>
		<link>http://jucato.org/blog/cpp-setstatus-done/</link>
		<comments>http://jucato.org/blog/cpp-setstatus-done/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 17:27:04 +0000</pubDate>
		<dc:creator>Jucato</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Qt]]></category>

		<guid isPermaLink="false">http://jucato.org/blog/cpp-setstatus-done/</guid>
		<description><![CDATA[Finally! After half year since I bought my C++ book), I&#8217;m ready to &#8220;graduate&#8221; from that section of my roadmap and proceed to the next. I actually finished reading the book a few weeks back, but due to the hustle and bustle of January festivities, I really didn&#8217;t have the chance to get some closure, [...]]]></description>
			<content:encoded><![CDATA[<p>Finally! After half year since I bought my C++ book), I&#8217;m ready to &#8220;graduate&#8221; from that section of my roadmap and proceed to the next. I actually finished reading the book a few weeks back, but due to the hustle and bustle of January festivities, I really didn&#8217;t have the chance to get some closure, so to speak. And I thought of doing a C++ project as the perfect closure. I wanted something not overly complicated, yet complex enough to showcase and test what I&#8217;ve learned, as well as pick up a few things about the software development process. In the end, I just decided to do a very simple addressbook program named Rolodeks. My code is in <a href="http://jucato.org/dev/Rolodeks/" target="_blank">here</a> along with my first manually-made Makefile and a tarball version of the whole thing. (Please be kind, it&#8217;s my first ever serious app project <img src='http://jucato.org/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  ) Along the way, I noticed/realized a few things:</p>
<p>1. <strong>I suck at OOAD.</strong> (Object-oriented Analysis and Design). While I know the technical aspects of creating a class, I didn&#8217;t really know how to design one. I kept on asking myself again and again, should this be private, public, or protected, should I provide a setter/getter for this, etc. I guess one of the things lacking in my book is the integration of problem analysis and design into some of the example problems. I had this old C book (Hands-on Turbo C by Larry Joel Goldstein and Larry Gritz) that did just that. Even just the basics of designing classes would probably do a lot for a beginner to C++. In fairness, my book does have a sort of discussion about OOAD, but presented as a sort of add-on, rather than an important part of the process.</p>
<p>2. <strong>Nothing beats experience.</strong> Even if a book contained all the information and theory on software development, it still wouldn&#8217;t compare to the actual experience of writing code. Unfortunately, for months I leaned more towards the &#8220;I need theory first&#8221; excuse for procrastination, thinking that theory will properly equip me with the necessary arsenal to tackle any problem. Fortunately for me, <a href="http://behindkde.org/people/hein/" target="_blank">Sho</a> has always been there to knock some sense into me (I owe so much in that area that I should probably dub him as my Vox Rationis). Thing is, you need theory too, but it&#8217;s only half the story. Theory is nothing without practice, as they say. You can&#8217;t possibly learn everything through just reading programming books. At some point, you&#8217;ll need to apply that by actually writing code. Then, along the way, you&#8217;ll realize stuff that you haven&#8217;t really learned well enough or not learned at all. Then it&#8217;s time to learn about those. It&#8217;s a cycle. It&#8217;s a process. Either way, it needs to get started first.</p>
<p>3. <strong><a href="http://www.kdevelop.org/" target="_blank">KDevelop</a> is&#8230;</strong> I really don&#8217;t know what to say about it. Touted as one of the best C++ IDE&#8217;s on Linux, I was really eager to give it a try. I didn&#8217;t use it while I was still learning because I thought it would overkill at that time, when my exercise programs spanned 3 files at most (main.cpp, Class.h, Class.cpp for example). But when Rolodeks grew to around 3 classes, I thought it was time to try it out. KDevelop is overwhelming, was my first and instant reaction. Unfortunately, it didn&#8217;t get better for me. For one, it&#8217;s Project system forced me to create C++ projects that used Autotools or CMake. I couldn&#8217;t just create a project with all files grouped together or let me use my own Makefile. In fact, KDevelop doesn&#8217;t even let you compile  a single file C++ program at all. I might have missed some things though, since I haven&#8217;t read the KDevelop docs, but suffice it to say, I was pretty disappointed. Luckily, <a href="http://kate-editor.org/" target="_blank">Kate</a> is wonderful for what it is, and advanced text editor. With a few plugins, I was able to convert it to a mini-IDE, complete with a Makefile plugin. Although it&#8217;s still missing debugger plugins. Maybe I&#8217;ll have better luck next time.</p>
<p>Up next: <a href="http://trolltech.com/products/qt/homepage" target="_blank">Qt</a>! And hopefully more exciting and worthwile software project. <img src='http://jucato.org/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://jucato.org/blog/cpp-setstatus-done/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Finally some &#8220;me&#8221; time!</title>
		<link>http://jucato.org/blog/finally-some-me-time/</link>
		<comments>http://jucato.org/blog/finally-some-me-time/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 00:32:59 +0000</pubDate>
		<dc:creator>Jucato</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Source Mage]]></category>

		<guid isPermaLink="false">http://jucato.org/blog/finally-some-me-time/</guid>
		<description><![CDATA[And hopefully some Source Mage and Kubuntu time, too.
January was as busy as December was, which didn&#8217;t give me much time to settle down after the holidays and do anything substantial, at least by my standards. I didn&#8217;t even get the chance to really digest the KDE 4.0 release and subsequent events, such as the [...]]]></description>
			<content:encoded><![CDATA[<p>And hopefully some Source Mage and Kubuntu time, too.</p>
<p>January was as busy as December was, which didn&#8217;t give me much time to settle down after the holidays and do anything substantial, at least by my standards. I didn&#8217;t even get the chance to really digest the KDE 4.0 release and subsequent events, such as the KDE 4 release party. I&#8217;ve used KDE 4.0 for a few days now, but I&#8217;ve returned to 3.5.8 since I&#8217;m not sure what use I have for KDE 4.0 right now, or what I can do to help. So in the meantime, I have returned to a relatively problem-free setup.</p>
<p>The last 2-3 weeks have been pretty gruelling, more psychologically/emotionally than physically (but you&#8217;d notice that your body sort of &#8220;catches up&#8221; to your state of mind) and I&#8217;ve been treated to a few real-life lessons in dealing with people. I also had my first encounter with MS Office 2007 as well as meeting MS Publisher once more. I&#8217;d say that working with Publisher was quite easy, specially for simple purposes. The new ribbon interface in MS Office 2007 was a bit daunting at first though. Luckily, Publisher didn&#8217;t have that new UI. The most interesting (and frustrating) experience I had was that a publishing/printing house could get by with just having MS Word and Excel installed on their computers. Not even Adobe Photoshop. Quite intriguing.</p>
<p>In the meantime, I&#8217;ve been able to finish my C++ How to Program (Deitel &#038; Deitel) book, although I just sort of skimmed on the last few chapters, unlike my intensive focus on the first ten chapters. I was pretty much disappointed by the quality of the material near the end. There were very obvious errata and it felt as if the last 10 or so chapters were written a bit hurriedly or, in this case, probably not fully revised (since this is the 5th edition). For a book that aims to be a classroom textbook, that&#8217;s a bit unfortunate. Anyway, I think I&#8217;ve gotten enough C++ to be able comfortably start learning Qt. This puts me one step closer to KDE and world konquest. <img src='http://jucato.org/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Hopefully the coming days will be better.</p>
]]></content:encoded>
			<wfw:commentRss>http://jucato.org/blog/finally-some-me-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bluetooth, Projects, Memory Loss(?)</title>
		<link>http://jucato.org/blog/bluetooth-projects-memory-loss/</link>
		<comments>http://jucato.org/blog/bluetooth-projects-memory-loss/#comments</comments>
		<pubDate>Thu, 21 Jun 2007 08:25:36 +0000</pubDate>
		<dc:creator>Jucato</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://jucato.org/blog/bluetooth-projects-memory-loss/</guid>
		<description><![CDATA[Two weeks ago,  I had a slight &#8220;adventure&#8221; in Kubuntu. I was going away for two days to a place that had no Internet service. And since the laptop&#8217;s wireless was &#8220;supposedly&#8221; broken, I tried to think of another way to stay connected. So explore I did and discovered Bluetooth Dial-Up Networking.  So [...]]]></description>
			<content:encoded><![CDATA[<p>Two weeks ago,  I had a slight &#8220;adventure&#8221; in Kubuntu. I was going away for two days to a place that had no Internet service. And since the laptop&#8217;s wireless was &#8220;supposedly&#8221; broken, I tried to think of another way to stay connected. So explore I did and discovered Bluetooth Dial-Up Networking.  So Bluetooth DUN + a USB Bluetooth + our relatively cheap local GPRS rate (around 20 cents per 30 minutes) = a semi happy Jucato. Unfortunately, I later found out that my cellphone carrier blocks IRC, which explained why I couldn&#8217;t connect to my favorite channels. Fortunately, I also later found out that the laptop&#8217;s wireless card wasn&#8217;t really broken. All I need now is to find a hotspot to test it. By the way, <a href="https://help.ubuntu.com/community/BluetoothDialup" target="_blank">here is a guide</a> on how to setup Bluetooth DUN on Kubuntu.</p>
<p>Updates on the C++ arena: I&#8217;ve basically finished the sort of &#8220;basics&#8221; of C++ and the next series of chapters will be more in-depth: inheritance, polymorphism, overloading, templates, etc. Right now, though, I want to redo all coding exercises from the beginning, to see how much I&#8217;ve retained. I&#8217;ve also been rethinking what would be my &#8220;term project&#8221; for C++. I wanted to develop a simple and small internet cafe system, using what I&#8217;ve learned from the book (which includes a bit of object oriented analysis and design). I would then try to create a GUI frontend for it when I got around to studying Qt, and finally a KDE frontend. But now I&#8217;m thinking that the project may not be too practical in the sense that I don&#8217;t know if I (or someone else) would be benefitting from it. But at the same time, I&#8217;m having a hard time thinking of a good project that will lend itself quite nicely to object-oriented analysis and design, Qt, and KDE programming. (I originally wanted to create a sort of vim-like text editor just for kicks) Need to brainstorm again&#8230;</p>
<p>And I&#8217;m still planning on &#8220;publishing&#8221; my notes online, partly for myself, and maybe for others. Yay! I&#8217;m going to add to the already hundreds of C++ guides out there. <img src='http://jucato.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Reviewing my notes and trying to answer past exercises sort of made me realize something that I have probably been taking for granted. It seems that my memory has been failing a lot recently. I can&#8217;t count how many times I&#8217;ve forgotten something that I&#8217;ve been thinking or been planning to do/say just a few seconds ago. I&#8217;ve also been having a hard time memorizing key terms, formulas, or definitions. Even though I do somehow understand the theory behind them, I can&#8217;t seem accurately communicate them. And, as one friend could testify, I often forget something that we&#8217;ve been discussing just a day or two before. It&#8217;s really got me worried. Before college, I had a good memory (except for History) and quite good at math. It seems now after college it has declined to a considerable degree. I don&#8217;t know whether it was because I developed a dislike for merely memorizing/parroting things in my Philosophy course in college or whether it was from lack of mental exercises 2-3 years after college. Either way, I hope it&#8217;s somehow reversible&#8230; I&#8217;m too young to be having this problem. <img src='http://jucato.org/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Anyway, time for more reviewing&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://jucato.org/blog/bluetooth-projects-memory-loss/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Updates and KDE 4.0</title>
		<link>http://jucato.org/blog/updates-and-kde-40/</link>
		<comments>http://jucato.org/blog/updates-and-kde-40/#comments</comments>
		<pubDate>Mon, 04 Jun 2007 04:17:11 +0000</pubDate>
		<dc:creator>Jucato</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Distro-Tour]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Kubuntu]]></category>

		<guid isPermaLink="false">http://jucato.org/blog/updates-and-kde-40/</guid>
		<description><![CDATA[[This should have been posted over the weekend, but as usual, real life caught up with me. I've also decided to split what was supposed to be one long-ish post into a series of small ones.]
Updates:
1. Mandriva Spring review now up! Let me just explain some details about this Distro-Tour project I&#8217;m doing. It&#8217;s purpose [...]]]></description>
			<content:encoded><![CDATA[<p><em>[This should have been posted over the weekend, but as usual, real life caught up with me. I've also decided to split what was supposed to be one long-ish post into a series of small ones.]</em></p>
<p><strong>Updates:</strong></p>
<p>1. <a href="http://jucato.org/blog/the-distro-tour-project-mandriva-20071-spring/" target="_blank">Mandriva Spring review now up!</a> Let me just explain some details about this Distro-Tour project I&#8217;m doing. It&#8217;s purpose is, first and foremost, my own learning experience. I do not want to go through my Linux life without having even experienced first-hand these distributions. I think it&#8217;s a good thing to gain a wider perspective of the landscape, and to see what other distros, including Kubuntu [<a href="#1">1</a>], have done right or wrong. An important consideration that I&#8217;m taking in this Distro-Tour is approaching the distro from the point of view of a relative newbie. In a sense, I&#8217;m a newbie when I start using these other distros, in the sense that I don&#8217;t know how things are setup or done. Every distro is relatively a new adventure. This perspective is also the reason why I focus mostly on the GUI apps and settings. I will probably try to learn more about the powerful command line backends that these GUI&#8217;s use some other time.</p>
<p>2. I finally finished most of the fundamentals of C++: control statements, functions, arrays, pointers, basic classes. The next chapters would focus on classes and object-oriented programming in more detail. However, I seemed to have discovered what is probably one of my weaknesses in programming. And no, it&#8217;s not about pointers (surprisingly). I realized that I have a hard time really grasping and putting into practice the concepts of recursion. Sure the chapter in the book made it look easy, but the exercises I encountered were definitely not (Towers of Hanoi and Fibonacci series anyone?). I&#8217;m not sure how much recursion is used in practice today, but I&#8217;ve been told repeatedly that it&#8217;s &#8220;a classic&#8221;, which means that I will most probably want to dig deeper into it. I have also been advised to take a look at the book Structure and Interpretation of Computer Programs [<a href="#2">2</a>], which uses Scheme [<a href="#3">3</a>], a dialect of LISP [<a href="#4">4</a>], as the example language. I&#8217;m hoping to find some equally helpful resources on recursion with C++. I don&#8217;t think I want to have to learn another language just to get to know recursion better, for now&#8230;</p>
<p><strong>KDE 4.0</strong></p>
<p>The release of KDE 4.0 is getting closer and closer [<a href="#5">5</a>]. The target release is in October of this year and, while I do hope that they do make it, I think that I wouldn&#8217;t mind a delay of a few weeks or even a month if that would mean more wrinkles would be ironed out. Besides, what better gift to get on Christmas than a fresh new KDE 4.0. I haven&#8217;t started to build KDE 4.0 from SVN, out of procrastination again. I could probably just apt-get the KDE 4 Series Alpha from kubuntu.org repositories [<a href="#6">6</a>], but I experienced some problems with it when I tried to two weeks ago. Anyway, it will be much easier to stay up to date (with the latest breakage) if I compile from SVN directly.</p>
<p>If you have noticed I kept on saying KDE 4.0 and referred to &#8220;KDE 4 Series&#8221;. I have noticed a sort of confusion that&#8217;s quite prevalent among KDE users, especially those not keeping watch on the Dot (not slashdot, mind you). Users seem to confuse KDE 4 with what will be the first release of KDE 4, which is KDE 4.0 out on October. To repeat what has been said before, KDE 4.0 != KDE 4 (!= means &#8220;not equal to&#8221;). This basically means that KDE 4.0 does not represent the complete fulfillment of what has been promised in KDE 4. KDE 4.0 is just the first release in a long series of releases that comprises the whole KDE 4 &#8220;lifecycle&#8221;.  There will be other major releases, like KDE 4.1, KDE 4.2, etc. And there will be minor releases in between those, KDE 4.1.1, KDE 4.1.2, etc.</p>
<p>What&#8217;s my proposal to help solve this confusion? Let&#8217;s all start saying &#8220;KDE 4.0&#8243; when referring to the first release or &#8220;KDE 4.x&#8221; when referring to a particular release, and use &#8220;KDE 4 series&#8221; or &#8220;KDE 4 cycle&#8221; when referring to the whole thing. In my most humble opinion, the confusion that could be solved or avoided justifies the extra letters one has to type. Of course, &#8220;KDE 4&#8243; does sound cooler. Any other ideas? (Maybe KDE 4S&#8230; but that looks weird)</p>
<p>Needless to say, the KDE 4 Series will definitely rock!</p>
<p><em>Notes</em>:<br />
<a name="1">1.</a> <a href="http://www.kubuntu.org/index.php" target="_blank">Kubuntu</a><br />
<a name="2">2.</a> <a href="http://mitpress.mit.edu/sicp/full-text/book/book.html" target="_blank">Structure and Interpretation of Computer Programs</a><br />
<a name="3">3.</a> <a href="http://en.wikipedia.org/wiki/Scheme_(programming_language)" target="_blank">Scheme</a><br />
<a name="4">4.</a> <a href="http://en.wikipedia.org/wiki/Lisp_programming_language" target="_blank">Lisp</a><br />
<a name="5">5.</a> <a href="http://techbase.kde.org/Schedules/KDE4/4.0_Release_Schedule" target="_blank">KDE 4 Series development schedule</a><br />
<a name="6">6.</a> <a href="http://kubuntu.org/announcements/kde4-alpha1.php" target="_blank">Kubuntu.org KDE 4 Series Alpha</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jucato.org/blog/updates-and-kde-40/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Catching up</title>
		<link>http://jucato.org/blog/catching-up/</link>
		<comments>http://jucato.org/blog/catching-up/#comments</comments>
		<pubDate>Thu, 17 May 2007 06:20:02 +0000</pubDate>
		<dc:creator>Jucato</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Distro-Tour]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Kubuntu]]></category>

		<guid isPermaLink="false">http://jucato.org/blog/catching-up/</guid>
		<description><![CDATA[Just a few quick updates:
1. My workspace obsession has finally ended, resulting in a new room layout. Although a new LCD monitor would probably make me redo everything. But now I&#8217;m more &#8220;focused&#8221; on making/finding a laptop stand. 
2. MOTU &#8220;project&#8221; put on hold: with a lot of stuff getting in the way, I have [...]]]></description>
			<content:encoded><![CDATA[<p>Just a few quick updates:</p>
<p>1. My <a href="http://jucato.org/blog/satisfying-my-workspace-mania-temporarily/" target="_blank">workspace obsession</a> has finally ended, resulting in a new room layout. Although a new LCD monitor would probably make me redo everything. But now I&#8217;m more &#8220;focused&#8221; on making/finding a laptop stand. </p>
<p>2. MOTU &#8220;project&#8221; put on hold: with a lot of stuff getting in the way, I have to temporarily put off studying packaging for Kubuntu. At least until the start of the academic year, when I hope to be a bit more free. I still help out in #kubuntu, of course</p>
<p>3. <a href="http://jucato.org/blog/the-distro-tour-project/" target="_blank">The Distro Tour project</a>. Now that Byakko (the laptop) is here, time for doing something that I&#8217;ve always wanted to do. First to be tested: <a href="http://jucato.org/blog/opensuse/" target="_blank">openSUSE 10.2</a>. What happens to Kubuntu? In the end, Kubuntu will always be here. I will continue to help with Kubuntu, I will learn to package for Kubuntu, and hopefully even develop for Kubuntu. Kubuntu is a very special distro and it always has a place in my life.</p>
<p>4. C++ programming is progressing slowly, but at least it&#8217;s progressing. I&#8217;ve committed myself to one or two chapters a week. However, with the extensive note taking, summarizing, and exercise answering, I don&#8217;t think two chapters a week would be realistic. Still, I&#8217;m quite excited to get to the GUI part, and of course, to the KDE programming parts. <img src='http://jucato.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>5. Feisty has been released last month, the Ubuntu Developers Summit has just finished, and development on Gutsy Gibbon has started. Time to think of some improvements for our beloved Kubuntu. I&#8217;m particularly interested in System Settings, specially regarding modules that, IMHO, should be there. Unfortunately, coder I am not, so I end up poking Tonio instead. My other areas of interest would be the GUI Upgrader and a Restricted Manager for Kubuntu.</p>
<p>6. Still waiting for the laptop&#8217;s wireless card to get fixed (or actually, waiting for the day that I can bring it to the store). Until then, I have to settle for disconnect/connecting whenever I need to switch machines.</p>
<p>7. On the negative side, I observed that my IRC support activities has somewhat lessened for the past 2 months. I&#8217;m not sure if it&#8217;s just the summer vacation atmosphere, or a case of burnout. I guess it&#8217;s really true, that too much of something is bad. I also feel that I have to cut down on IRC a bit in order to really focus on studying, if I want to reach my October deadline (to enroll in a distance/home education program). Of course, it doesn&#8217;t mean I&#8217;ll be abandoning my beloved fans. <img src='http://jucato.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&#8230; and then there&#8217;s my fever&#8230; <img src='http://jucato.org/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://jucato.org/blog/catching-up/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
