<?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>MP:Mediaprojekte &#187; Tutorials</title>
	<atom:link href="http://mediaprojekte.de/mp/tutorials/feed/" rel="self" type="application/rss+xml" />
	<link>http://mediaprojekte.de</link>
	<description>Webentwicklung Grafik und Design Marketing und Werbung Multimedia</description>
	<lastBuildDate>Wed, 25 Jan 2012 14:48:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>nginx directive to deny all access to .svn directories</title>
		<link>http://mediaprojekte.de/webdevelopment/nginx-directive-to-deny-all-access-to-svn-directories/</link>
		<comments>http://mediaprojekte.de/webdevelopment/nginx-directive-to-deny-all-access-to-svn-directories/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 10:14:36 +0000</pubDate>
		<dc:creator>MP:Schorsch</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.mediaprojekte.de/webdevelopment/nginx-directive-to-deny-all-access-to-svn-directories/</guid>
		<description><![CDATA[When deploying a Rails application you should make sure not to put .svn folders on the server. If this is unevitable, you should at least deny the access to those. Ever tried this on your domain?  http://my_super_project.com/.svn/entries If you are using nginx as a webserver and the link above serves you a download, you should [...]]]></description>
			<content:encoded><![CDATA[<p>When deploying a Rails application you should make sure not to put .svn folders on the server. If this is unevitable, you should at least deny the access to those.</p>
<p>Ever tried this on your domain?</p>
<blockquote><p> http://my_super_project.com<strong>/.svn/entries</strong></p></blockquote>
<p>If you are using nginx as a webserver and the link above serves you a download, you should add the following location-directive to your nginx.conf:</p>
<blockquote><p> location ~ /\.svn/* {<br />
deny  all;<br />
}</p></blockquote>
<p>This directive should reside in your server{}  definition before all other location definitions.</p>
<p>Let me know if this works .. at least it did the job on my server.</p>
]]></content:encoded>
			<wfw:commentRss>http://mediaprojekte.de/webdevelopment/nginx-directive-to-deny-all-access-to-svn-directories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Technical Web 2.0 Startup Basics and Software Quality Improvements</title>
		<link>http://mediaprojekte.de/webdevelopment/technical-web-20-startup-basics-and-software-quality-improvements/</link>
		<comments>http://mediaprojekte.de/webdevelopment/technical-web-20-startup-basics-and-software-quality-improvements/#comments</comments>
		<pubDate>Tue, 06 Nov 2007 16:42:36 +0000</pubDate>
		<dc:creator>MP:Schorsch</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Webdevelopment]]></category>

		<guid isPermaLink="false">http://www.mediaprojekte.de/webdevelopment/technical-web-20-startup-basics-and-software-quality-improvements/</guid>
		<description><![CDATA[A lot of people have great ideas for new web -platforms/-software but simply lack the knowledge about an engineering approach to software development. This article addresses those companies/startups (seen as software buyers-&#62;customers), as well as software developers. So please don´t get confused when i´m trying to bring examples for both of those groups. When you [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of people have great ideas for new web -platforms/-software but simply lack the knowledge about an<span> engineering approach</span> to software development. This article addresses those companies/startups (seen as software buyers-&gt;customers), as well as software developers. So please don´t get confused when i´m trying to bring examples for both of those groups.</p>
<p>When you start a software project, you need to ensure your services are better in comparison to others. From a startup/customer point of view this can be a new web 2.0 niche, a nice interface or a new community. As a developer making an offer, what counts first is a faster time to market or just simply being cheaper.</p>
<p>Such arguments might be eligible, but they can crumble and stab your project to death, if the underlying software/development basis is not following strong conventions. Such conventions ensure two mostly overlooked arguments: &#8220;<strong>Softwarequality and Development Workflows</strong>&#8221;</p>
<p>But what does that mean? The non-technical customer just uses a nice frontend and does not have a clue why he should pay more attention to those technical related questions. Well in the first place this might be right, but in the long run (and successful projects run long) each of the following is indispensable.</p>
<p>I´ve seen a couple of unsuccessful projects so far. On some i lost the pitch because of my pricing, on others i was just a spectator. What they mostly had in common, was their lack of software <span>engineering basics. Please don´t misunderstand me, i don´t want to precociously raise my finger. It also took me a while to adapt the following techniques and i want to share them because they have proven their usefulness. </span></p>
<p><span>Be aware that i´m getting a little technical here and there, so you might want to open a second tab to google some words. This topic could fill a book, so don&#8217;t be to hard on me if i forget something or keep things shorter. </span></p>
<p><span></span></p>
<h5>Use a Version Control System</h5>
<p>Every person involved in a project needs a version control for their files.</p>
<p><strong>What??</strong> Yes, be it excel, photoshop or sourcecode files everything must go into a central version control database.<br />
<strong> Why?? </strong>Ever received ten emails with a new version and of course inconsistent names?  A version control database acts a single point of access for all project related files. The only question you´ll ask in the future is &#8220;Did you checked it in/out?&#8221;. You can go back to every version any time, put the blame on somebody and sleep better with the central backup on your mind.<br />
<a href="http://subversion.tigris.org/" title="Subversion" target="_blank">Subversion</a>, followed by cvs, is the most popular system and has proven its stability on many projects around the globe. You´ll find clients for all operating systems and also popular coding enviroments (eclipse) . The one i like best is <a href="http://tortoisesvn.tigris.org/" title="Tortoise SVN Client">TortoisSVN</a>. Installing a subversion server and getting accommodated with a client like Tortoise takes you between 5 min and  an hour (depending on your skills and teacher)!</p>
<h5>Use a Ticketsystem</h5>
<p>Everybody tends to forget certain things. A ticketsystem acts as your ToDo-brain and is absolutely inevitable for the project controlling. It lets you estimate timeperiods (set milestones) depending on how much work there still is to do.  You can control your project members, retain bugs and when you go live it can serve as a customer feedback system.</p>
<p>Wide spread ones are trac, fogBugz or Mantis but you´ll also find</p>
<h5>Use automated Tests</h5>
<p>When it comes to testing one tends to think of &#8220;I clicked this through while coding, so it works&#8221;. Well yeah it probably works right, but can you click every single function/region of your software before every release or update? Definitely not, so one must use automated tests. I come from a php background and wasn&#8217;t aware of such until i started with RubyonRails. In Ruby and other languages you have a kind of a Testing-Culture which php is completely lacking. This is kind of scary since testing frameworks for php are available namely<a href="http://simpletest.org" title="simpletest php testing automation" target="_blank"> simpletest</a> or <a href="http://www.phpunit.de/" title="phpUnit php testing framework">phpunit</a>.</p>
<p>Another good and simple approach to testing is <a href="http://www.openqa.org/selenium/" title="selenium frontend browser testing ">selenium</a>, which as a firefox plugins even enables normal users to perform automated tests. I´m not going to dive deeper into testing or even test driven development, just remember &#8220;Automated tests let you sleep better!&#8221;</p>
<h5>Use an automated deployment workflow</h5>
<p>Deploying/delivering a (web) software can involve checkout from a version control system,  file transfers (to your webspace), database updates, automated tests, packing source files, rollback on errors or restarting server processes. Manually handling those steps can be pretty painstaking and of course you´ll tend to forget a step or the stepping order. The automation of those tasks is not trivial but there are  tools like <a href="http://ant.apache.org/" title="Apache ANT automation framework">ANT </a>or the great <a href="http://www.capify.org/" title="Ruby Capistrano Automation">Capistrano</a> to help you out. Another point is the time it takes to handle all deployment steps manually. You can easily spend half a day on deploying and another one on rolling it all back, because of some error which occured (if you did not test it good enough).</p>
<h5>Comment the Code</h5>
<p>Commenting source code is probably the most basic guideline a developer should follow. Ever had the situation where you spent an hour to find out what you wrote half a year ago?  Or what about debugging someone elses code?</p>
<p>But also a customer should insist on code comments. What if you coder gets hit by a truck?</p>
<p>Another great reason for comments and the use of a common commenting language/markup is the automated creation of a software documentation. Tools to handle such are <a href="http://java.sun.com/j2se/javadoc/" title="javadoc homepage" target="_blank">javaDoc</a>, <a href="http://www.phpdoc.org/" title="php documentor" target="_blank">phpDocumentor</a> or <a href="http://rdoc.sourceforge.net/" title="rdoc ruby code documentor" target="_blank">rdoc</a> and you´ll also find them for other languages.</p>
<h5>Develop Codeing Guidelines</h5>
<p>This is not a task to be done by a customer, but he should at least ask for the existence of them. Such guidelines should refer to naming schemes for files, database tables/columns, functions and classes. Further they should cover code layout related specifications like indenting, bracket styles, or commenting.</p>
<p>The whole aim here is to bring consistency and beauty into the code which helps the developer to faster read and understand the program.</p>
<h5>Use common (OpenSource) Frameworks</h5>
<p>By &#8220;common&#8221; i refer to &#8220;standardized&#8221; and vastly spread  pieces of code. Using Frameworks sets one ahead, because the abstraction layer saves code, time and prevents inventing the wheel twice.</p>
<p>To customers this means they can rely on a certain stability in terms of code quality and/or support, but more important they are less dependent on the developer. Why less dependent? Imagine a situation where you switch your coder and afterwards pay another programmer to clean this mess up. It is not only difficult to find a descent coder for this task, but also one who is willing to stick his noose into unknown spaghetti code. The solution will always be pretty expensive and you´ll probably end up with a refactoring using a framework.</p>
<p>Frameworks exist for every coding language and in a web project you´ll probably end up using a couple of them. I´ll just name a few in the following example:</p>
<ul>
<li>Model/View/Controller(MVC) framework like <a href="http://www.cakephp.org/" title="cakePHP mvc framework" target="_blank">cakePHP</a>, Ruby on Rails, django for the main intelligence</li>
<li><a href="http://www.prototypejs.org/" title="prototype javascript framework" target="_blank">prototype</a> or <a href="http://jquery.com/" title="jQuery javascript framework - write less do more" target="_blank">jQuery</a> for the javascript part</li>
<li><a href="http://www.yaml.de/" title="yaml css framework" target="_blank">YAML </a>for the CSS</li>
</ul>
<p>A good programmer might not agree with me on this, and if there are strong coding guidelines, a deep documentation and a good application layout he might be right. But this does not reflect the software market reality. Further its is very unlikely that even a good programmer knows the deep details of each of the languages he is using, so a framework empowers him to achieve his tasks with less pain.</p>
<h5>Don´t mix languages</h5>
<p>Each language in a web project serves for a special porpuse. CSS for the looks, html for the structure, javascript for the funk and ruby for the main intelligence. Possible mixing of those languages can occur via html with inline css definitions, html with inline javascript, javascript creation via ruby or php.</p>
<p>The complete division of  css and html is meanwhile pretty widespread, but the mix of javascript with html/php/ruby/.. is quite scary. Yes i know most developers only slowly dive into the secrets of js and frameworks like Ruby on Rails seem to take the pain out of implementing javascript. This is how i got started, when i hated javascript. But trust me you will dive into big ass problems when there are browser based bugs, custom animations you need, xss-attacks, speed issues or simply browsers without javascript.<br />
I won&#8217;t dive into the javascript discussion deeper, instead just give a few statements which apply to other language divisions too:</p>
<ul>
<li>better maintainability</li>
<li>better debugging</li>
<li>better profiling</li>
<li>you can hire a language expert and he does not need to know the other languages</li>
<li>you can switch a language implementation with ease f.ex. mobile Browser stylesheet,  special javascript for an iPhone</li>
<li>higher code quality through separate testing f.ex. independently test  ruby code, javascript or css</li>
</ul>
<h5>Conclusion</h5>
<p>This was a whole bunch of information but i hope you took your time to go through each point. If you did, you now have some basics to ensure quality which serves all parties involved in a software project.</p>
<p>To sum it up:</p>
<ul>
<li>as a customers you get better software and achieve greater control.</li>
<li>as a developer you can ask higher prices at lower costs due to higher quality.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mediaprojekte.de/webdevelopment/technical-web-20-startup-basics-and-software-quality-improvements/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Barcamp Cologne &#8211; Pimp My Laptop Session</title>
		<link>http://mediaprojekte.de/community/barcamp-cologne-pimp-my-laptop-session/</link>
		<comments>http://mediaprojekte.de/community/barcamp-cologne-pimp-my-laptop-session/#comments</comments>
		<pubDate>Tue, 21 Aug 2007 17:40:58 +0000</pubDate>
		<dc:creator>MP:Schorsch</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[BarCamp]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Köln]]></category>

		<guid isPermaLink="false">http://www.mediaprojekte.de/community/barcamp-cologne-pimp-my-laptop-session/</guid>
		<description><![CDATA[Neben einer Open Air Session, habe ich auf dem Barcamp Cologne auch eine kleine Notebook Pimping Session gehalten. Die Schoko-Maus hat ein etwas älteres Medion Notebook, welchem ich mittels einer handelsüblichen Bohrmaschine etwas mehr Kühlung verschaffe: Link: sevenload.com Ich danke allen für den regen Zuspruch zu dieser lustigen Harware Session.]]></description>
			<content:encoded><![CDATA[<p>Neben einer Open Air Session, habe ich auf dem Barcamp Cologne auch eine kleine Notebook Pimping Session gehalten.</p>
<p>Die <a href="http://www.schokodinatorin.de/" title="Christine - die Schoko Maus" target="_blank">Schoko-Maus</a> hat ein etwas älteres Medion Notebook, welchem ich mittels einer handelsüblichen Bohrmaschine etwas mehr Kühlung verschaffe:</p>
<p><script type="text/javascript" src="http://de.sevenload.com/pl/Ykc1soV/425x350"></script><br />Link: <a href="http://de.sevenload.com/videos/Ykc1soV/Schokodinatorin-Notebook-Pimping">sevenload.com</a></p>
<p>Ich danke allen für den regen Zuspruch zu dieser lustigen Harware Session.</p>
]]></content:encoded>
			<wfw:commentRss>http://mediaprojekte.de/community/barcamp-cologne-pimp-my-laptop-session/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three Ways to debug an Adobe Air Javascript Application</title>
		<link>http://mediaprojekte.de/tutorials/three-ways-to-debug-an-adobe-air-javascript-application/</link>
		<comments>http://mediaprojekte.de/tutorials/three-ways-to-debug-an-adobe-air-javascript-application/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 14:55:59 +0000</pubDate>
		<dc:creator>MP:Schorsch</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.mediaprojekte.de/tutorials/three-ways-to-debug-an-adobe-air-javascript-application/</guid>
		<description><![CDATA[Without a debug console a programmer is flying blind. When programming an Air Application with Javascript you´ll pretty soon miss the good old firebug(damn i love it). So here are three simple ways, to look into your running engine. 1. Adobe commandline tool ADL Adobe has a command line tool which enables you to run [...]]]></description>
			<content:encoded><![CDATA[<p>Without a debug console a programmer is flying blind. When programming an Air Application with Javascript you´ll pretty soon miss the good old firebug(damn i love it). So here are three simple ways, to look into your running engine.</p>
<h5>1. Adobe commandline tool ADL</h5>
<p>Adobe has a command line tool which enables you to run and test your Air software. It´s called ADL and resides in the /bin folder of the SDK. To start a program under Windows you need to go into the command line (Win+R -&gt; cmd) and type something like this:</p>
<blockquote><p>C:\air\bin&gt; adl c:\my_air_test\application.xml</p></blockquote>
<p>The adl needs to know the applications xml definition to start your program. After the launch you can follow the debug output in the open command window. Inside the Javascript you use:  air.trace(&#8216;my debug output&#8217;); . Air mostly takes care of converting arrays and objects to a visible form (comma separated). <a href="http://livedocs.adobe.com/labs/air/1/devappshtml/CommandLineTools_2.html#1031914" title="Adobe Air debugging with trace and adl" target="_blank">Here is the link to Adobe Documentation</a>.</p>
<h5>2. Firebug Lite</h5>
<p><a href="http://www.getfirebug.com/lite.html" title="Firebug lite javascript debug console" target="_blank">Firebug Lite</a> is a piece of Javascript simulating the console.log output for InternetExplorer and other non &#8220;Real Firebug&#8221; compatible Browsers. It appends a &#8220;log console div&#8221; to your website and even has an interactive command line.</p>
<p>To use it you just have to  include the firebug lite js in your head section and hit F12 in your app:</p>
<blockquote><p>&lt;script src=&#8221;js/debug/firebug.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;</p></blockquote>
<p>In the javascript code you can use console.log(&#8216;my debug output&#8217;);</p>
<p>Using firebug lite enables you to also debug your software in other browsers than air, if you are not using air specific javascript API functions like read/write files.</p>
<h5>3. build your own debug output</h5>
<p>I actually started with this method. I made a &lt;div id=&#8221;debug&#8221;&gt; in the html and used a simple (jQuery powered) function to append the debug output into  the div container:</p>
<blockquote><p> function debug(data){<br />
if(debug_on == true)<br />
{<br />
$(&#8216;#debug&#8217;).append(data); //append(&#8216;whatever&#8217;) comes from jQuery lib<br />
}<br />
}</p></blockquote>
<p>The debug div is hidden via css and only shows up when the debug_on flag is set. Using jQuery it is pretty simple to add more functions like clear log.</p>
<p>All three methods have pro´s and con´s which could be discussed further. For now i hope i could save you some time in getting an overview.</p>
]]></content:encoded>
			<wfw:commentRss>http://mediaprojekte.de/tutorials/three-ways-to-debug-an-adobe-air-javascript-application/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>UWA Widget Präsentation auf dem Webmontag Köln</title>
		<link>http://mediaprojekte.de/webdevelopment/uwa-widget-praesentation-auf-dem-webmontag-koeln/</link>
		<comments>http://mediaprojekte.de/webdevelopment/uwa-widget-praesentation-auf-dem-webmontag-koeln/#comments</comments>
		<pubDate>Mon, 28 May 2007 14:26:48 +0000</pubDate>
		<dc:creator>MP:Schorsch</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[Köln]]></category>
		<category><![CDATA[UWA]]></category>
		<category><![CDATA[Webmontag]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://www.mediaprojekte.de/webdevelopment/uwa-widget-praesentation-auf-dem-webmontag-koeln/</guid>
		<description><![CDATA[Auf dem Webmontag in Köln am 07.05.2007 habe ich eine weitere kurze Präsentation der Universal Widget Api gehalten. Erst heute bin ich auf den Videomitschnitt von Mr.Topf gestoßen. Christian Scholz, der übrigens auch Plone entwickelt, hat noch weitere Video´s und Texte zu diesem Webmontag archiviert. Vielen Dank!]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.mediaprojekte.de/wp-content/uploads/2007/05/mr_topf.jpg" alt="mr_topf.jpg" align="right" />Auf dem Webmontag in Köln am 07.05.2007 habe ich eine weitere kurze Präsentation der Universal Widget Api gehalten.</p>
<p>Erst heute bin ich auf den <a title="video uwa webmontag köln auf mrtopf.de" href="http://mrtopf.de/blog/vlog/webmontag-videos-4-porno-schorsch-universal-widget-api/">Videomitschnitt von Mr.Topf gestoßen</a>.  Christian Scholz, der übrigens auch Plone entwickelt, hat noch weitere <a title="Videos Webmontag Köln Mai 2007" href="http://mrtopf.de/blog/web20/die-webmontags-videos-von-koln-im-uberblick/">Video´s</a> und <a title="Webmontag Köln Protokol" href="http://mrtopf.de/blog/web20/ein-bericht-vom-webmontag-koln/">Texte </a>zu diesem Webmontag archiviert.</p>
<p>Vielen Dank!</p>
]]></content:encoded>
			<wfw:commentRss>http://mediaprojekte.de/webdevelopment/uwa-widget-praesentation-auf-dem-webmontag-koeln/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Add Sound Effects to HTML with Javascript and Flash</title>
		<link>http://mediaprojekte.de/webdevelopment/add-sound-effects-to-html-with-javascript-and-flash/</link>
		<comments>http://mediaprojekte.de/webdevelopment/add-sound-effects-to-html-with-javascript-and-flash/#comments</comments>
		<pubDate>Fri, 11 May 2007 17:28:06 +0000</pubDate>
		<dc:creator>MP:Schorsch</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Sounds]]></category>

		<guid isPermaLink="false">http://www.mediaprojekte.de/webdevelopment/add-sound-effects-to-html-with-javascript-and-flash/</guid>
		<description><![CDATA[I normally hate music on websites. You enter a site, suddenly hear a jingle or music and instantly start looking for the sound off button. If i can´t find it and the sound does not stop, i´m out. I´m not talking about this kind of background music in this article.  I rather want to show [...]]]></description>
			<content:encoded><![CDATA[<p>I normally hate music on websites. You enter a site, suddenly hear a jingle or music and instantly start looking for the sound off button. If i can´t find it and the sound does not stop, i´m out.</p>
<p>I´m not talking about this kind of background music in this article.  I rather want to show you a technique to catch your users attention after he interacted with your site / webapplication. Especially when using AJAX techniques where the page does not reload. You are (probably)  already giving the user some visual hints(<a href="http://www.ajaxload.info/" title="Ajaxload - the loading gif generator" target="_blank">loading.gif</a>), so he knows that something is happening. Those kind of hints can also be small pieces of sound.</p>
<p>What you need to get things cooking:</p>
<ul>
<li>a couple of small mp3 sounds</li>
<li>an event like onsubmit / onclick or any kind of switch in your javascript which is worth the sound output</li>
<li>the <a href="http://jeroenwijering.com/?item=Flash_Single_MP3_Player" title="flash mp3 Player - single mp3 player" target="_blank">single MP3 Flash Player</a> (because it is so damn small)</li>
<li>some Javascript + basic coding knowledge</li>
</ul>
<p><strong>The Basics:</strong></p>
<p>You are catching some HTML Element Event (f.ex. onclick), with javascript. Than you insert a somehow hidden flash-embed into the dom which holds the mp3 player. The mp3 player recieves his settings via post parameters, which are given to him inside the flash-embed code and starts playing instantly.</p>
<p>The player and some of the javascript i´m using, comes from the<a href="http://www.sean-o.com/jquery/jmp3/" title="jQUery mp3 Player Plugin" target="_blank"> jmp3 jQuery Plugin</a>. Please check the license of the player!</p>
<p><strong>The only tricks we actually need are:</strong></p>
<ul>
<li>dynamically include the hidden flash player</li>
<li>set the right variables for the flash player like: no repeat, no download, auto start playing and so on.</li>
<li>I went one step further thinking always the same sound would be boring. So i have a javascript array with sound filenames, from which a sound is randomly picked.</li>
</ul>
<p>In the example i´m using jQuery to grab the events and do the DOM modifications. Of course you can take your prefered js library or plain javascript(you freak) for this too. The example only uses  a click-event and the  insertion into the DOM can also be done in other fashions. I´ll leave that to you to play with it.</p>
<p>I thought of naming this technique MANDY. Of course i could´ve used some funky acronym, but what the hell. With such a name you can tell your coder-friends &#8220;I did it with Mandy&#8221; or &#8220;I´m just diving into Mandy&#8221;, which is probably making a bigger impression.</p>
<p><strong>Locations where i did it with Mandy:</strong></p>
<ul>
<li>at the post office -&gt; form submissions with clapping soundz</li>
<li>on the cash desk -&gt; shop payments with dropping coins</li>
<li>on the printer -&gt; before the print window opens -&gt; typing sounds</li>
<li>in the lobby -&gt; squeaking door sounds after logins</li>
<li>on Twitter -&gt; twitter king widget having new Messages</li>
</ul>
<p>There are tons of other places where it would be nice to do it with Mandy. Have fun!<br />
You can download the tutorial code here:</p>
<p><a href="http://www.mediaprojekte.de/wp-content/wp-filez/tutorials/mandy_sound.zip" title="mandy_sound.zip"><img src="http://www.mediaprojekte.de/wp-includes/js/tinymce/plugins/filemanager/InsertFile/img/ext/zip_small.gif" alt="mandy_sound.zip" border="0" /> mandy_sound.zip (<span style="font-size: 80%" id="67.83 KB,null">67.83 KB)</span></a></p>
<p>or visit the <a href="http://www.mediaprojekte.de//wp-content/wp-filez/tutorials/mandy_sound/mandy_making_soundz.html">demo site </a></p>
]]></content:encoded>
			<wfw:commentRss>http://mediaprojekte.de/webdevelopment/add-sound-effects-to-html-with-javascript-and-flash/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>MVC Javascript Example inside a UWA Widget</title>
		<link>http://mediaprojekte.de/tutorials/mvc-javascript-example-inside-a-uwa-widget/</link>
		<comments>http://mediaprojekte.de/tutorials/mvc-javascript-example-inside-a-uwa-widget/#comments</comments>
		<pubDate>Thu, 10 May 2007 00:18:05 +0000</pubDate>
		<dc:creator>MP:Schorsch</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://www.mediaprojekte.de/tutorials/mvc-javascript-example-inside-a-uwa-widget/</guid>
		<description><![CDATA[While building the UWA Twitter King Widget, i had a lot of Javascript to get in control of. So i decided to organize it into a MVC Scheme. I was inspired by JAMAL (which i forget to mention, damn), cakePHP and RubyonRails. In the following Movie you can get a short glance of how the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.mediaprojekte.de/wp-content/uploads/2007/05/twitter_widget_mvc.jpg" alt="twitter_widget_mvc.jpg" align="right" />While building the<a href="http://www.mediaprojekte.de/webdevelopment/twitter-king-widget-beta-using-netvibes-uwa/" title="twitter king uwa netvibes widget"> UWA Twitter King Widget</a>, i had a lot of Javascript to get in control of. So i decided to organize it into a MVC Scheme. I was inspired by <a href="http://jamal.moagil.de/" title="Jamal Jacascript MVC jQuery Framework" target="_blank">JAMAL</a> (which i forget to mention, damn), <a href="http://cakephp.org/" title="cakePHP the best php mvc framework" target="_blank">cakePHP </a>and <a href="http://www.rubyonrails.org/" title="RubyOnRails the best Ruy MVC Framework" target="_blank">RubyonRails</a>.</p>
<p>In the following Movie you can get a short glance of how the javascipt inside the Twitter King is organized.  Please be aware, that if you don´t have some basic knowledge of programming you´ll find this boooring.  I´m using the code-tree-view of the <a href="http://www.aptana.com/" title="the best javascript editor">Aptana Editor</a> and to really understand you should have tested the <a href="http://my-widget.com/twitter_widget.html" title="Twitter King UWA Widget" target="_blank">twitter uwa widget</a>(beta 0.8 as of writing) and looked in the javascript code.</p>
<p>I´m not fully satisfied with the code and some could have probably been written shorter or smarter, but i just recently dived so deep in JS and think this might be nice to get a feedback on.</p>
<p>As long as i can´t get it to work on sevenload you can download the avi</p>
<p><a href="http://www.mediaprojekte.de/wp-content/wp-filez/screencast/js-mvc-in-twitter-widget.avi" title="js-mvc-in-twitter-widget.avi">js-mvc-in-twitter-widget.avi (5.4<span style="font-size: 80%" id="283.75 KB,null"> MB)</span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mediaprojekte.de/tutorials/mvc-javascript-example-inside-a-uwa-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.mediaprojekte.de/wp-content/wp-filez/screencast/js-mvc-in-twitter-widget.avi" length="5650944" type="video/x-msvideo" />
		</item>
		<item>
		<title>Twitter King Widget beta using Netvibes UWA</title>
		<link>http://mediaprojekte.de/webdevelopment/twitter-king-widget-beta-using-netvibes-uwa/</link>
		<comments>http://mediaprojekte.de/webdevelopment/twitter-king-widget-beta-using-netvibes-uwa/#comments</comments>
		<pubDate>Sun, 29 Apr 2007 21:14:01 +0000</pubDate>
		<dc:creator>MP:Schorsch</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[King-Widget]]></category>
		<category><![CDATA[Netvibes]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[UWA]]></category>

		<guid isPermaLink="false">http://www.mediaprojekte.de/webdevelopment/twitter-king-widget-beta-using-netvibes-uwa/</guid>
		<description><![CDATA[At first i wanted to write a Tutorial about how to build a UWA &#8211; ( Universal Widget Api ) Widget, but since i´m kind of short in time for this, i´ll just post the resulting Widget. This is the first beta version of a Twitter Widget. This Widget runs on Netvibes and your Google [...]]]></description>
			<content:encoded><![CDATA[<p>At first i wanted to write a Tutorial about how to build a UWA &#8211; ( Universal Widget Api ) Widget, but since i´m kind of short in time for this, i´ll just post the resulting Widget.</p>
<p>This is the first beta version of a Twitter Widget. This Widget runs on Netvibes and your Google Personal Homepage as Gadget. The Widget and currently displays:</p>
<ul>
<li>the global Public timeline or</li>
<li>your timeline (Posting) or</li>
<li>your friends timeline or</li>
<li>another users timeline or</li>
<li>another users friends timeline</li>
</ul>
<p>Update to beta 0.4</p>
<ul>
<li> post messages to Twitter</li>
<li>Tabbed interface</li>
</ul>
<p style="text-align: center"><a href="http://my-widget.com/twitter_widget.html" title="Twitter King Widget using the Universal Widget Api" target="_blank"><img src="http://www.mediaprojekte.de/wp-content/uploads/2007/04/twitter_king_widget_1.jpg" title="twitter_king_widget_1.jpg" alt="twitter_king_widget_1.jpg" /></a></p>
<p>The Twitter King Widget  is far from complete and currently only displays <strong>public</strong> content. <strike>For the geeks: I could not manage to get the authentication working, because twitter does not offer an enhanced remote authentication method and the netvibes UWA gave me problems with the normal http basic authentication.</strike> <strike>Future Versions will definitely have the ability to post messages and do more of that funky protected stuff.</strike></p>
<p>To try it out klick the link below, add the widget to your favorite Webtop and start following your and your friends twitters.</p>
<p><a href="http://my-widget.com/twitter_widget.html" title="Twitter King Widget using the Universal Widget Api" target="_blank">Link to the &#8220;Twitter King Widget&#8221; beta version</a></p>
<p>You can add the widget several times to have it display different posting timelines. When i´m updating the codebase this will automatically affect your existing widgets.</p>
<p><a href="http://eco.netvibes.com/subscribe/194727"><img src="http://eco.netvibes.com/img/add2netvibes.png" width="91" height="17" alt="Add to Netvibes"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mediaprojekte.de/webdevelopment/twitter-king-widget-beta-using-netvibes-uwa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HTML Listen mit CSS schneller rendern</title>
		<link>http://mediaprojekte.de/webdevelopment/html-listen-mit-css-schneller-rendern/</link>
		<comments>http://mediaprojekte.de/webdevelopment/html-listen-mit-css-schneller-rendern/#comments</comments>
		<pubDate>Mon, 23 Apr 2007 00:05:09 +0000</pubDate>
		<dc:creator>MP:Schorsch</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://www.mediaprojekte.de/webdevelopment/html-listen-mit-css-schneller-rendern/</guid>
		<description><![CDATA[Unser Blog ist nun schon ziemlich voll und langsam rächt sich der unaufgeräumte Upload-Ordner(ca. 400 files). Ob im Filemanager oder auch Imagemanager Tinymce Plugin, die Listen der Dateien brauchen Jahre um vollends per HTML dargestellt zu werden. Im Filemanager Plugin habe ich das Problem heute kurz angegangen und siehe da &#8230; HTML Speed Tuning vom [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.mediaprojekte.de/wp-content/wp-filez/filemenager_popup_1.jpg" title="Filemanager WordPress Plugin" alt="Filemanager WordPress Plugin" align="right" height="189" width="271" />Unser Blog ist nun schon ziemlich voll und langsam rächt sich der unaufgeräumte Upload-Ordner(ca. 400 files). Ob im Filemanager oder auch Imagemanager Tinymce Plugin, die Listen der Dateien brauchen Jahre um vollends per HTML dargestellt zu werden.</p>
<p>Im <a href="http://www.mediaprojekte.de/cms-systeme/wordpress/wordpress-20-plugin-filemanager-tinymce-editor/" title="Filemanager TinyMCE Plugin WordPress">Filemanager Plugin</a> habe ich das Problem heute kurz angegangen und siehe da &#8230; HTML Speed Tuning vom Feinsten.</p>
<p><strong>Das Problem: </strong></p>
<p>Im Filemanager wird für jeden Dateityp und damit für jeden Eintrag in der Liste, ein eigenes Icon als Bild mit &lt;img &#8230;&gt; Tag rausgeschrieben.. Das Einbinden der Bilder und damit der HTML Aufbau, dauert ewig. Ich muss warten bis die Seite geladen hat, bevor ich Aktionen ausführen kann.</p>
<p>&lt;img src=&#8221;zip.gif&#8221;&gt;&lt;a href..&gt;mein Link zur zip datei&lt;/a&gt;</p>
<p><strong>Die Lösung:</strong></p>
<p>Speed Tuning mit CSS &#8230; anstatt die Bilder direkt in den Quellcode zu schreiben, lassen sich dies auch per CSS vor jedes Element in der Dateiliste setzten. Dafür bekommt jeder Link eine spezielle Klasse, welche dann per CSS ein Hintergrundbild anzeigt. Natürlich ist dieser Trick nicht ganz neu, doch im Zusammenhang mit Render-Geschwindigkeit hatte ich ihn noch nicht eingesetzt.</p>
<p>&lt;a .. class=&#8221;zip_bg&#8221;&gt;mein dateilink&lt;/a&gt;</p>
<p>CSS:</p>
<p>a.zip_bg{background: url(../img/ext/zip_small.gif) no-repeat left top;padding:000 18px;}</p>
<p><strong>Das Update</strong></p>
<p>Gibt es so direkt noch nicht.</p>
<p>Auf Grund der Anzahl unser Plugins habe ich mich entschlossen die King Plugins und noch jede Menge weiterer WordPress Plugins,  auf Google Code zu hosten. Das Blog King Monsterpacket können sich wagemutige Freaks schon per SVN saugen.</p>
]]></content:encoded>
			<wfw:commentRss>http://mediaprojekte.de/webdevelopment/html-listen-mit-css-schneller-rendern/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Universal Widgets UWA &#8211; Vortrag Barcamp Frankfurt</title>
		<link>http://mediaprojekte.de/webdevelopment/universal-widgets-uwa-vortrag-barcamp-frankfurt/</link>
		<comments>http://mediaprojekte.de/webdevelopment/universal-widgets-uwa-vortrag-barcamp-frankfurt/#comments</comments>
		<pubDate>Sun, 22 Apr 2007 21:17:25 +0000</pubDate>
		<dc:creator>MP:Schorsch</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[BarCamp]]></category>
		<category><![CDATA[Frankfurt]]></category>
		<category><![CDATA[UWA]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://www.mediaprojekte.de/webdevelopment/universal-widgets-uwa-vortrag-barcamp-frankfurt/</guid>
		<description><![CDATA[Kurz entschlossen hielt ich heute meine erste Barcamp Session, auf dem Barcamp Frankfurt. Ich hatte am Samstag schon diversen Leuten den Ansatz der UWA Widget API, und die daraus resultierenden universell einsetzbaren Widgets, erläutert. Das stieß auf reges Interesse, doch als der Raum heute verdammt voll war, überraschte mich das schon ein wenig. Anfangs dachte [...]]]></description>
			<content:encoded><![CDATA[<p>Kurz entschlossen hielt ich heute meine erste Barcamp Session, auf dem Barcamp Frankfurt.</p>
<p>Ich hatte am Samstag schon diversen Leuten den Ansatz der <a href="http://dev.netvibes.com/doc/" title="Netvibes UWA Api developer Blog" target="_blank">UWA Widget API</a>, und die daraus resultierenden universell einsetzbaren Widgets, erläutert. Das stieß auf reges Interesse, doch als der Raum heute verdammt voll war, überraschte mich das schon ein wenig. Anfangs dachte ich, ich wäre im falschen Raum.<br />
Hier der Vortrag als PDF und der marginal gekürzte und leicht dokumentierte Quellcode</p>
<p><a href="http://www.mediaprojekte.de/wp-content/wp-filez/docs/uwa_widgets_vortrag_barcamp_frankfurt.pdf" title="uwa_widgets_vortrag_barcamp_frankfurt.pdf"><img src="http://www.mediaprojekte.de/wp-includes/js/tinymce/plugins/filemanager/InsertFile/img/ext/pdf_small.gif" alt="uwa_widgets_vortrag_barcamp_frankfurt.pdf" border="0" /> uwa_widgets_vortrag_barcamp_frankfurt.pdf (<span style="font-size: 80%" id="135.43 KB,22 04 2007 - 23:11">135.43 KB 22 04 2007 &#8211; 23:11)</span></a></p>
<p><a href="http://www.mediaprojekte.de/wp-content/wp-filez/docs/uwa_widgets_vortrag_barcamp_frankfurt.pdf" title="uwa_widgets_vortrag_barcamp_frankfurt.pdf"><span style="font-size: 80%" id="135.43 KB,22 04 2007 - 23:11"></span></a><a href="http://www.mediaprojekte.de/wp-content/wp-filez/docs/netvibes_widget.txt" title="netvibes_widget.txt"><img src="http://www.mediaprojekte.de/wp-includes/js/tinymce/plugins/filemanager/InsertFile/img/ext/txt_small.gif" alt="netvibes_widget.txt" border="0" /> netvibes_widget.txt (<span style="font-size: 80%" id="7.05 KB,22 04 2007 - 23:15">7.05 KB 22 04 2007 &#8211; 23:15)</span></a></p>
<p>Gerrit van Aaken (<a href="http://www.preagnanz.de" title="Gerrit von Aaken Blog" target="_blank">preagnanz.de</a>)  hat seinen Power Macintosh Computer dazu bewegt einen Video aufzuzeichnen .. mehr davon auf <a href="http://de.sevenload.com/suche">sevenload</a> nach barcampfrankfurt.</p>
<p><object width="425" height="350"><param name="FlashVars" value="slxml=de.sevenload.com"/><param name="movie" value="http://de.sevenload.com/pl/MP3yz2l/425x350/swf" /><embed src="http://de.sevenload.com/pl/MP3yz2l/425x350/swf" type="application/x-shockwave-flash" width="425" height="350" FlashVars="slxml=de.sevenload.com"></embed></object><br />Link: <a href="http://de.sevenload.com/videos/MP3yz2l/Universal-Widgets">sevenload.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mediaprojekte.de/webdevelopment/universal-widgets-uwa-vortrag-barcamp-frankfurt/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

