<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<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/"
	>

<channel>
	<title>Letexa Blog</title>
	<link>http://blog.letexa.com</link>
	<description>This Letexa webmaster blog tracks the changes made to the letexa.com website.</description>
	<pubDate>Sun, 05 Apr 2009 21:59:27 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>Interesting idea: The end of separation of data and code</title>
		<link>http://blog.letexa.com/2009/04/05/interesting-idea-the-end-of-separation-of-data-and-code/</link>
		<comments>http://blog.letexa.com/2009/04/05/interesting-idea-the-end-of-separation-of-data-and-code/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 21:59:27 +0000</pubDate>
		<dc:creator>Michael Hasenstein</dc:creator>
		
		<category><![CDATA[Interesting]]></category>

		<guid isPermaLink="false">http://blog.letexa.com/2009/04/05/interesting-idea-the-end-of-separation-of-data-and-code/</guid>
		<description><![CDATA[Mörre had an epiphany&#8230;
http://noseshine.wordpress.com/2009/04/05/shattering-an-axiom-separate-code-from-data/
]]></description>
			<content:encoded><![CDATA[<p>Mörre had an epiphany&#8230;</p>
<p><a href="http://noseshine.wordpress.com/2009/04/05/shattering-an-axiom-separate-code-from-data/">http://noseshine.wordpress.com/2009/04/05/shattering-an-axiom-separate-code-from-data/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.letexa.com/2009/04/05/interesting-idea-the-end-of-separation-of-data-and-code/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Updates on new site</title>
		<link>http://blog.letexa.com/2009/02/18/updates-on-new-site/</link>
		<comments>http://blog.letexa.com/2009/02/18/updates-on-new-site/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 10:55:43 +0000</pubDate>
		<dc:creator>Michael Hasenstein</dc:creator>
		
		<category><![CDATA[Letexa]]></category>

		<category><![CDATA[Website Changelog]]></category>

		<guid isPermaLink="false">http://blog.letexa.com/2009/02/18/updates-on-new-site/</guid>
		<description><![CDATA[Here are four screenshots from the new site. It is organized in three parts: content, authors, employees. Content: obvious. Authors: for those creating content. Employees: those who build the infrastructure and support the customers viewing content and the authors creating it. The general community ideas as outlined in the current letexa.com &#8220;About&#8221; pages apply.
Design philosophy:

No [...]]]></description>
			<content:encoded><![CDATA[<p>Here are four screenshots from the new site. It is organized in three parts: content, authors, employees. Content: obvious. Authors: for those creating content. Employees: those who build the infrastructure and support the customers viewing content and the authors creating it. The general community ideas as outlined in the current letexa.com &#8220;About&#8221; pages apply.</p>
<p>Design philosophy:</p>
<ul>
<li><strong>No colors</strong>. Color is for content. The framework stays humbly in the background!</li>
<li><strong>No images - NONE</strong>. There is no logo file, no GUI background images, none. Everything is done with text and boxes available via simple CSS.</li>
<li><strong>Keep it simple</strong>.</li>
<li><strong>Be different and unique</strong>.</li>
</ul>
<p>Homepage</p>
<p><a href="http://blog.letexa.com/__oneclick_uploads/2009/02/p1.gif" title="Homepage"><img src="http://blog.letexa.com/__oneclick_uploads/2009/02/p1.thumbnail.gif" alt="Homepage" /></a></p>
<p>Content index page (clicking &#8220;Learn&gt;&gt;&#8221; above)</p>
<p><a href="http://blog.letexa.com/__oneclick_uploads/2009/02/p2.gif" title="content index page"><img src="http://blog.letexa.com/__oneclick_uploads/2009/02/p2.thumbnail.gif" alt="content index page" /></a></p>
<p>Categories page (clicking &#8220;Categories&gt;&gt;&#8221; above)</p>
<p><a href="http://blog.letexa.com/__oneclick_uploads/2009/02/p3.gif" title="content categories page"><img src="http://blog.letexa.com/__oneclick_uploads/2009/02/p3.thumbnail.gif" alt="content categories page" /></a></p>
<p>Categories page with items (clicking on a category with items above)</p>
<p><a href="http://blog.letexa.com/__oneclick_uploads/2009/02/p4.gif" title="content categories page with items"><img src="http://blog.letexa.com/__oneclick_uploads/2009/02/p4.thumbnail.gif" alt="content categories page with items" /></a></p>
<p>Mörre</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.letexa.com/2009/02/18/updates-on-new-site/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Status: preparing a new site</title>
		<link>http://blog.letexa.com/2009/01/07/status-preparing-a-new-site/</link>
		<comments>http://blog.letexa.com/2009/01/07/status-preparing-a-new-site/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 21:19:16 +0000</pubDate>
		<dc:creator>Michael Hasenstein</dc:creator>
		
		<category><![CDATA[Letexa]]></category>

		<category><![CDATA[Website Changelog]]></category>

		<guid isPermaLink="false">http://blog.letexa.com/2009/01/07/status-preparing-a-new-site/</guid>
		<description><![CDATA[To give a status update - this site is by no means abandoned - I&#8217;m preparing a relaunch of the site with full features and more content. The new site is going to be based on Ruby on Rails (2.2.2), the current site still is PHP. I worked on a commercial RoR project in the [...]]]></description>
			<content:encoded><![CDATA[<p>To give a status update - this site is by no means abandoned - I&#8217;m preparing a relaunch of the site with full features and more content. The new site is going to be based on Ruby on Rails (2.2.2), the current site still is PHP. I worked on a commercial RoR project in the meantime, and after letting it sink in I decided to switch. Not that I ever loved PHP that much, the question was using a J2EE platform instead&#8230; RoR does have its own issues, definitely (come on, to believe the Rails application should take care of all data integrity, instead of e.g. using (foreign key) constraints in the database&#8230; <em>hint: it doesn&#8217;t work in all (runtime) cases</em>), but to sum it up, I decided to go for it (and I put the constraints into the DB manually <img src='http://blog.letexa.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> - a very simple one-time effort only anyway).</p>
<p>Mörre</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.letexa.com/2009/01/07/status-preparing-a-new-site/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Now dynamic creation of the course overview page.</title>
		<link>http://blog.letexa.com/2008/04/26/now-dynamic-creation-of-the-course-overview-page/</link>
		<comments>http://blog.letexa.com/2008/04/26/now-dynamic-creation-of-the-course-overview-page/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 21:33:58 +0000</pubDate>
		<dc:creator>Michael Hasenstein</dc:creator>
		
		<category><![CDATA[Website Changelog]]></category>

		<guid isPermaLink="false">http://blog.letexa.com/2008/04/26/now-dynamic-creation-of-the-course-overview-page/</guid>
		<description><![CDATA[Another small step. The page Homepage -&#62; Multimedia Courses is now generated dynamically. This far it was a static page.
No change at all from a users point of view - although it looks a bit different and now shows view statistics right there. However, it is another step towards a &#8220;real&#8221; community website, where posting [...]]]></description>
			<content:encoded><![CDATA[<p>Another small step. The page Homepage -&gt; <a href="http://letexa.com/courses/">Multimedia Courses</a> is now generated dynamically. This far it was a static page.</p>
<p>No change at all from a users point of view - although it looks a bit different and now shows view statistics right there. However, it is another step towards a &#8220;real&#8221; community website, where posting content is possible for web users.</p>
<p>Should I announce every tiny step? Well, why not? This is the Change-(B)log!!!</p>
<p>Next: Ability to  upload &#8220;items&#8221; and create &#8220;courses&#8221;. To create a new course one has to create a course AND upload items. Items are any kind of content, Flash files, video files, images, text files, PDFs, etc. etc. Other content websites allow only videos, like the German commercial project<a href="http://learn2use.de/"> learn2use.de</a> I just joined. That makes management soooo much easier. This project aims higher. A course needs more than just video! One needs PDFs to print, tests, still pictures, HTML content (I have a content type &#8220;multimedia enhanced dynamic HTML&#8221;, where video/audio can be attached to an HTML page and it controls its dynamic behavior, the page does not need to be static but can employ dyn. HTML effects controlled by the audio/video, to make stuff move/appear/disappear/etc.). When you create a &#8220;course&#8221; you put the &#8220;items&#8221; - yours and those of other people! (if they allow it - compatible license types are checked and enforced automatically, i.e. in the future) - so you put the &#8220;items&#8221; into the course. The course itself has a &#8220;glue file&#8221; that can be HTML, or Flash. From there you link to the &#8220;items&#8221;. The course file only &#8220;glues&#8221; them together, i.e. it uses those reusable files (by you and/or others) and adds content specific to only that course. Sounds complicated? No, why, you do that any time you write a webpage and use a CMS (content management system).</p>
<p>Mörre</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.letexa.com/2008/04/26/now-dynamic-creation-of-the-course-overview-page/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New archive for the list</title>
		<link>http://blog.letexa.com/2008/04/23/new-archive-for-the-list/</link>
		<comments>http://blog.letexa.com/2008/04/23/new-archive-for-the-list/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 21:59:17 +0000</pubDate>
		<dc:creator>Michael Hasenstein</dc:creator>
		
		<category><![CDATA[Website Changelog]]></category>

		<guid isPermaLink="false">http://blog.letexa.com/2008/04/23/new-archive-for-the-list/</guid>
		<description><![CDATA[It turned out I could not use the Google Groups service to archive the mailinglist list@letexa.com. The technical reason does not matter, I found a service that is a MUCH better match for Letexa! The Mail Archive is a free but professional quality (it seems) service with a spirit very similar to the one of [...]]]></description>
			<content:encoded><![CDATA[<p>It turned out I could not use the Google Groups service to archive the mailinglist <em>list@letexa.com</em>. The technical reason does not matter, I found a service that is a MUCH better match for Letexa! <a href="http://www.mail-archive.com/">The Mail Archive</a> is a free but professional quality (it seems) service with a spirit very similar to the one of this project.</p>
<p>On the private side,  I am going to join a <a href="http://learn2use.de/">German startup learn2use.de</a>, and take over responsibility for all the technology (i.e. &#8220;CTO&#8221;, but that title sounds a little grand for the current early but very promising state). I hope to be able to &#8220;leverage some synergies&#8221; between Letexa and that business, which means I&#8217;ll continue working on Letexa. It&#8217;s just a fun project, and I don&#8217;t care at all that right now I get only 5 visitors per day :-)  That&#8217;s because I <strong>know</strong> that if I tried I could get more, but I take my time. Besides, I use the site to experiment with designs and technology. Design: current Letexa design is supposed to be (remain) simple, with few images (none! except for some buttons and the logo) - and in black&amp;white. Adding some AJAX recently, e.g. for the login, sure wasn&#8217;t a high priority from a project point of view (to say the least), but it sure showed me A LOT of things hard about AJAX. That&#8217;s not the technology itself, but managing a website and many different possible states that can happen when people with or without Javascript use the site, login using AJAX within a page and then press &#8220;Back&#8221; in the browser (which navigates to a page that had been created server-side in &#8220;logged out&#8221; state), and many other potential pitfalls.</p>
<p>Even though I&#8217;ve VERY few readers, I&#8217;ll keep adding to the change-blog, this is a documentary for later!</p>
<p>Mörre</p>
<p>PS: This latest entry also serves to test the new mailinglist archive, because this blog post is sent out via that list too <img src='http://blog.letexa.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.letexa.com/2008/04/23/new-archive-for-the-list/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Site changes: beginning to code the backend for contributors</title>
		<link>http://blog.letexa.com/2008/04/22/site-changes-beginning-to-code-the-backend-for-contributors/</link>
		<comments>http://blog.letexa.com/2008/04/22/site-changes-beginning-to-code-the-backend-for-contributors/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 20:56:57 +0000</pubDate>
		<dc:creator>Michael Hasenstein</dc:creator>
		
		<category><![CDATA[Website Changelog]]></category>

		<guid isPermaLink="false">http://blog.letexa.com/2008/04/22/site-changes-beginning-to-code-the-backend-for-contributors/</guid>
		<description><![CDATA[The &#8220;Contributors&#8221; section has changed. There is no underlying functionality yet, but the main contributor landing page now reflects what is intended. Next step is to implement backend functionality to enable uploading content, and to manage the content one uploaded. The framework for how this could look like has been set&#8230;
As usual, please report any [...]]]></description>
			<content:encoded><![CDATA[<p>The &#8220;Contributors&#8221; section has changed. There is no underlying functionality yet, but the main contributor landing page now reflects what is intended. Next step is to implement backend functionality to enable uploading content, and to manage the content one uploaded. The framework for how this could look like has been set&#8230;</p>
<p>As usual, please report any issues. There are lots of things to consider - even more when one uses AJAX, as I do. For example, if someone logs in using the AJAX method within every page and then uses the browser&#8217;s BACK button one gets to a page where the user wasn&#8217;t logged in. So I had to implement code that changes the appearance of that page to reflect the now logged-in state too, even if it didn&#8217;t the last time the user was there&#8230; and that requires Javascript. There are even more issues when considering the various states of elements on a page (e.g. buttons: enabled or not)  when you do it in PHP and/or in Javascript after loading&#8230;</p>
<p>M&ouml;rre</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.letexa.com/2008/04/22/site-changes-beginning-to-code-the-backend-for-contributors/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Site (code) updates</title>
		<link>http://blog.letexa.com/2008/04/14/site-code-updates/</link>
		<comments>http://blog.letexa.com/2008/04/14/site-code-updates/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 16:58:14 +0000</pubDate>
		<dc:creator>Michael Hasenstein</dc:creator>
		
		<category><![CDATA[Website Changelog]]></category>

		<guid isPermaLink="false">http://blog.letexa.com/2008/04/14/site-code-updates/</guid>
		<description><![CDATA[Yesterday I enabled site-wide user registration, login and logout. Today I enabled AJAX for the login.
This is a minor step, but important, since this is the very basis for enabling user content. By enabling AJAX-ified login I created a basis for a modern interface. The Javascript-disabled browsers still get all the functionality, but IMHO AJAX [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I enabled site-wide user registration, login and logout. Today I enabled AJAX for the login.</p>
<p>This is a minor step, but important, since this is the very basis for enabling user content. By enabling AJAX-ified login I created a basis for a modern interface. The Javascript-disabled browsers still get all the functionality, but IMHO AJAX is not just a hype but  <strong>really</strong> is a great technology for faster browsing.</p>
<p>I&#8217;m using <a href="http://www.simplemachines.org/" title="SMF Forum homepage">SMF forum</a> on  my site. The new site-login uses the user data collected by SMF forum. However - and I&#8217;m quite proud of this - only during the login procedure itself I use SMF and its database. I avoid any additional calls to SMF, not even via the relatively lightweight smf_api.php API file they provide (compared to the native SMF routines in SSI.php)! After SMF user authentication I rely on the PHP session mechanism only. True, SMF does more sanity checks to ensure security, but when the only issue is to display to the user the fact they are logged in, and not a security critical action like withdrawing money or deleting uploaded content, it makes little sense to have all this overhead for a simple status message!</p>
<p>A few days ago I switched to <a href="http://code.google.com/p/swfobject/" title="SWFObject project homepage">swfobject 2.0</a> for Flash detection, and to having just one site-wide PHP template file for displaying the Flash multimedia content. One of the differences now: This new version of swfobject does not require Javascript to function. This is for the very few people who disable Javascript (the Firefox &#8220;noscript&#8221; plugin is quite popular&#8230;), but forgot to remove Flash&#8230; <img src='http://blog.letexa.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Mörre</p>
<p>PS: If anyone finds a bug in this new login code send me an email, please! (<a href="mailto:webmaster@letexa.com" title="Send an email to the Letexa webmaster">webmaster@letexa.com</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.letexa.com/2008/04/14/site-code-updates/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Small update: Course View Counts</title>
		<link>http://blog.letexa.com/2008/03/25/small-update-course-view-counts/</link>
		<comments>http://blog.letexa.com/2008/03/25/small-update-course-view-counts/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 15:16:54 +0000</pubDate>
		<dc:creator>Michael Hasenstein</dc:creator>
		
		<category><![CDATA[Website Changelog]]></category>

		<guid isPermaLink="false">http://blog.letexa.com/2008/03/25/small-update-course-view-counts/</guid>
		<description><![CDATA[Not much, I just added an asynchronous AJAX call to all course HTML pages to call a script on the server that increases the view count for that course by 1.
Interesting: In Firefox when I reload the course&#8217;s description page I see the updated view count immediately, on MS IE (7) I see the update [...]]]></description>
			<content:encoded><![CDATA[<p>Not much, I just added an asynchronous AJAX call to all course HTML pages to call a script on the server that increases the view count for that course by 1.</p>
<p>Interesting: In Firefox when I reload the course&#8217;s description page I see the updated view count immediately, on MS IE (7) I see the update only after two minutes - which is correct, since the script that loads the data incl. the view count for a course asynchronously (AJAX) sends an Expires: header two minutes in the future, to prevent repeat calls when a user does simple back/forth navigation.</p>
<p>Mörre</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.letexa.com/2008/03/25/small-update-course-view-counts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Technical changes to the website (some AJAX)</title>
		<link>http://blog.letexa.com/2008/03/06/technical-changes-to-the-website-some-ajax/</link>
		<comments>http://blog.letexa.com/2008/03/06/technical-changes-to-the-website-some-ajax/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 08:02:06 +0000</pubDate>
		<dc:creator>Michael Hasenstein</dc:creator>
		
		<category><![CDATA[Website Changelog]]></category>

		<guid isPermaLink="false">http://blog.letexa.com/2008/03/06/technical-changes-to-the-website-some-ajax/</guid>
		<description><![CDATA[I made some changes &#8220;under the hood&#8221; that shall help me managing more courses. So far everything was each course with its own files in its own directory. So changes had to be done in ALL those many files. I now have just one top-level PHP file, and the courses utilize that file and only [...]]]></description>
			<content:encoded><![CDATA[<p>I made some changes &#8220;under the hood&#8221; that shall help me managing more courses. So far everything was each course with its own files in its own directory. So changes had to be done in ALL those many files. I now have just one top-level PHP file, and the courses utilize that file and only the text description for each course page is an individual file in that courses´ directory.</p>
<p>I also started utilizing mySQL. The &#8220;statistics&#8221; panel on the right on each course page is loaded AFTER the page has loaded using async. communication. I didn&#8217;t want to delay page load by waiting for those mySQL server data before being able to send the page, when that statistics data  is of only marginal interest to most viewers.</p>
<p>Everything works as before now, but internally I have amuch better foundation for addinng more courses now, and to add more features. So far that statistics data isn&#8217;tcreated, I don&#8217;t count &#8220;Viewed&#8221; yet, for example. I need to improve the Flash part of my infrastructure in order to do that first, because I don&#8217;t want to cound a page view as &#8220;course has been viewed&#8221;, but wait for a message from inside the Flash course to be sure people really DID view the contents.</p>
<p>Anyway, I&#8217;m slow, but this is a hobby project - even though a serious one! - and I&#8217;ll keep updating and adding over time! My own benefit: a field for experiments, a showcase, and a way to keep up with modern web technologies not just passively. Oh, and I still want to make this a community project, I already checked the feedback some time ago, but I still have some work to do. Of course, anyone is free to come into the project right now, but before I can actively seek contributors I need to provide a better base and better instructions and explanations.</p>
<p>Mörre</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.letexa.com/2008/03/06/technical-changes-to-the-website-some-ajax/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Screencast: Installing Fedora 8 Linux (in VMware)</title>
		<link>http://blog.letexa.com/2007/12/13/new-screencast-installing-fedora-8-linux-in-vmware/</link>
		<comments>http://blog.letexa.com/2007/12/13/new-screencast-installing-fedora-8-linux-in-vmware/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 14:58:33 +0000</pubDate>
		<dc:creator>Michael Hasenstein</dc:creator>
		
		<category><![CDATA[New Course]]></category>

		<guid isPermaLink="false">http://blog.letexa.com/2007/12/13/new-screencast-installing-fedora-8-linux-in-vmware/</guid>
		<description><![CDATA[This 9m:27s screencast shows you an installation of Fedora 8 Linux as guest system inside a VMware virtual machine. This includes the demonstration of the installation and setup of the VMware tools package in the installed system.
I used Techsmith&#8217;s Camtasia for recording the screencast. There was some difficulty, but in their user-to-user support forums some [...]]]></description>
			<content:encoded><![CDATA[<p>This 9m:27s screencast shows you an installation of Fedora 8 Linux as guest system inside a VMware virtual machine. This includes the demonstration of the installation and setup of the VMware tools package in the installed system.</p>
<p>I used Techsmith&#8217;s Camtasia for recording the screencast. There was some difficulty, but in their user-to-user support forums some of their engineers keep a watch - and helped me out by spending a few hours on my problem and giving me an easy to use workaround for it. Very nice, no one at Adobe would do this for Captivate. Still, something as simple as a screencast can be a major headache. I was unable to include the audio in the screencast Flash itself, because that produced lots of strange (audible) audio errors. I also couldn&#8217;t save it as &#8220;video&#8221; (.avi or .flv) since this either requires the user to have the Techsmith codec installed, or I&#8217;d have to use a video codec designed for &#8220;normal&#8221; video and not lossless screen capture - with horrible consequences for quality (try watching screencasts on Youtube). Besides, the Flash format is even better than the best screencast-optimized codec (so far?), the resulting file is much smaller than the video file.</p>
<p>So now I load the loader, which loads the screencast Flash .swf file, and only then lets you start the screencast. I would have preferred to let you (the user) start right away, after all, Flash is a streaming format and what better content is their to stream then a completely linear screencast? But I decided to program it to wait until all is loaded - sorry. That&#8217;s because I already stream the audio, which as I said I could not include in the screencast file, and I don&#8217;t want to have TWO streams (screencast video and the audio) in parallel, both taking up bandwidth and maybe not in sync&#8230; So users just have to wait for the 12.8MB to load. Could be worse.</p>
<p>Mörre</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.letexa.com/2007/12/13/new-screencast-installing-fedora-8-linux-in-vmware/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

