<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Flashgamer</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/" />
    <link rel="self" type="application/atom+xml" href="http://www.flashgamer.com/atom.xml" />
   <id>tag:www.flashgamer.com,2008://1</id>
    <link rel="service.post" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1" title="Flashgamer" />
    <updated>2008-04-18T12:36:04Z</updated>
    <subtitle>Flash, Games and Flash Games</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.2</generator>
 
<entry>
    <title>ExpressionEngine plugin - Send Tweet</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/04/expressionengine_plugin_send_t.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=117" title="ExpressionEngine plugin - Send Tweet" />
    <id>tag:www.flashgamer.com,2008://1.117</id>
    
    <published>2008-04-18T12:10:51Z</published>
    <updated>2008-04-18T12:36:04Z</updated>
    
    <summary>This week, I wanted to find an easy way to maintain a Twitter channel for Flashmagazine. By following this Twitter user, you can stay up to date on current Community News, Reviews and Tutorials and get notified the instant something interesting happens. I just love the ease of ExpressionEngine. Since I only could find EE plugins that can read from Twitter, I figured I&apos;d make a plugin that can send messages as well. After some...</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="ExpressionEngine" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p>This week, I wanted to find an easy way to maintain a Twitter channel for <a href="http://www.flashmagazine.com/">Flashmagazine</a>. By following <a href="http://twitter.com/flashmagazine">this Twitter user</a>, you can stay up to date on current Community News, Reviews and Tutorials and get notified the instant something interesting happens.</p>

<p>I just love the ease of ExpressionEngine. Since I only could find EE plugins that can read from Twitter, I figured I'd make a plugin that can send messages as well. After some thinking, I made/setup/tested/implemented one in just 4 hours. I'm by no means a whiz with PHP, but making EE plugins is really easy and well documented.</p>

<p>I've tested the plugin for a couple days and it appears to work well, so I guess it's time to release it for others to use.</p>]]>
        <![CDATA[<h2>About the plugin</h2>
This plugin will send messages to your Twitter.com account. I originally made this to set up an automated <a href="http://twitter.com/flashmagazine">Twitter feed for my site Flashmagazine</a>. Just seconds after I publish a new story, my subscribers can be notified of it. You could use this for a lot of other purposes as well, so feel free to email me with other use cases :)

<p>The plugin receives a string of text and send it to Twitter. To prevent this from happening the script will write the text string to a file. Before sending another Tweet, the script will check against the contents of the text file on the server. This is a little "expensive" but should only be a performance hit on huge sites.</p>

<h2>Setup</h2>
You will need to do some manual editing of this PHP file for this to work:

<p>- Open the plugin PHP file in your favorite PHP editor<br />
- Change the username and password variables at the top of the class to match your Twitter.com credentials<br />
- Copy the file to your ExpressionEngine plugin folder<br />
- Open the plugin settings in the EE Control Panel to look up syntax and check that the script installed properly</p>

<p>That's all. The plugin works as a tag pair:</p>

<pre>{exp:send_tweet}Text to send to twitter{/exp:send_tweet}</pre>

<h2>Usage Send_Tweet plugin for EE</h2>
To use the plugin to notify Twitter of new stories, paste this into your RSS template:

<pre>{exp:send_tweet}{exp:weblog:entries weblog="news" limit="1" rdf="off" dynamic_start="on" disable="member_data|trackbacks"}{title}: {comment_url_title_auto_path}{/exp:weblog:entries}{/exp:send_tweet}</pre>

<p>This code will send the title and URL from the latest story published to Twitter. If the URL is long, Twitter will use tinyurl.com to shorten it for you. Keep in mind that Twitter won't accept messages over 140 characters so keep the titles short to make sure the URL's are not cut off.</p>

<p>Make sure you set the weblog parameter to reflect how you set up your site and that {comment_url_title_auto_path} works with your setup (You may need to use a different tag such as title_url, just check what is used in your RSS file). You can put this code anywhere in the RSS file. I have mine at the top of the PHP file.</p>

<h2>How to make Twitter update automatically</h2>
<a href="http://www.feedburner.com">Feedburner</a> is a service that will grab and republish your RSS file. They offer a service that you can "Ping" when you have updated your site. They will then go grab the latest version of your RSS feed and re-publish it.

<p>ExpressionEngine can "ping" FeedBurner automatically. All you need to do is to set up an account with FeedBurner and open the EE Control Panel. Go to Admin -> Weblog Administration -> Default Ping Servers and add the URL http://ping.feedburner.com.</p>

<p>(Note: you may use any other XML-RPC service. Feedburner is just a suggestion from me. http://rpc.pingomatic.com is another good service that'll do the same, but for a bunch of sites at once)</p>

<h2>Debugging</h2>
To see debug output from the plugin, edit the plugin file (as noted in the comments) and wrap the output with an empty node like this:
<tweet_response>{exp:send_tweet}{exp:weblog:entries weblog="news" limit="1" rdf="off" dynamic_start="on" disable="member_data|trackbacks"}{title}: {comment_url_title_auto_path}{/exp:weblog:entries}{/exp:send_tweet}<tweet_response>

<p>If you don't add that extra node, Firefox (and maybe other browsers as well) will request the document twice, causing incorrect debug messages to be shown in some cases.</p>

<h2>Installing plugins in EE</h2>
<a href="/f/pi.send_tweet.php.zip">Download and unzip this file</a> and copy "pi.send_tweet.php" to your plugins folder (/sysfolder/plugins/). That's it :)]]>
    </content>
</entry>
<entry>
    <title>Macromedia and Adobe - newly combined?</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/04/macromedia_and_adobe_newly_com.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=116" title="Macromedia and Adobe - newly combined?" />
    <id>tag:www.flashgamer.com,2008://1.116</id>
    
    <published>2008-04-11T09:01:16Z</published>
    <updated>2008-04-14T09:41:50Z</updated>
    
    <summary>I had to reinstall my CS3 package today and got a surprise when I logged in to retrieve my serial number. On the page listing your registrations it says &quot;We’re making improvements to support the newly combined Macromedia and Adobe community&quot;. Wow? What can I say? Two years in the making and you still can&apos;t view the serial numbers of your licensed products. I sure hope this only temporarily, or the Adobe customers will have...</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="Flash" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p>I had to reinstall my CS3 package today and got a surprise when I logged in to retrieve my serial number. On the page listing your registrations it says "We’re making improvements to support the newly combined Macromedia and Adobe community". Wow? What can I say? Two years in the making and you still can't view the serial numbers of your licensed products.</p>

<p>I sure hope this only temporarily, or the Adobe customers will have to pay the bill in the form of foolish costs to call centers that just tell people what their serial numbers are. There's also a link to your <a href="http://www.adobe.com/go/wec_view_registration">Adobe registered products</a> that is "Temporarily Unavailable". Good thing I'm not in a hurry then, after all I just make a living from Adobe tools... Luckily there's warez sites with serial numbers around, so you at least have a chance to run your software ;-P</p>

<p>Oh - and did I mention why I had to reinstall the entire CS3 package? Since I was part of the Dreamweaver Beta and I forgot to uninstall the software before it expired, I had to delete it manually by searching for files (The uninstaller would not start since it was expired too...). This in turn prevented it to be installed when I got my CS3 package. Not having Dreamweaver isn't such a big deal any more. I much prefer <a href="http://www.getfirebug.com/">FireBug</a> and <a href="http://macromates.com/">TextMate</a>, but Dreamweaver wasn't the only bit that didn't install.</p>

<p>The Dreamweaver Beta also installed Device Central and Bridge and the CS3 installer was unable to remove these as well. Another problem I've had recently is that my Photoshop CS3 crashed upon every Open or Save attempt. The last drop was that I needed Device Central yesterday and it claimed my product was expired, so I bit the sour apple and spent an hour deactivating, uninstalling and reinstalling it all. Amazing how much stuff the uninstallers actually leave behind.</p>

<p><em>Update: Photoshop and Dreamweaver now works, but Device Central just says "License Expired". It appears to be impossible to reinstall just this one bit. Any suggestions welcome!</em></p>

<p><em>Update 2: The <a href="http://www.adobe.com/support/contact/cs3clean.html">CS3 cleanup script</a> did the trick when used on level 2. Blahhh... what a day to spend a day :(</em></p>

<p>Here's something to cheer up anyone with similar problems: Elijah Wood gets mortified.</p>

<p><object type="application/x-shockwave-flash" data="http://blip.tv/scripts/flash/showplayer.swf?file=http%3A%2F%2Fmortified%2Eblip%2Etv%2Frss%2Fflash%3Fsort%3Ddate%26nsfw%3Ddc&showfsbutton=true&user=Mortified&brandlink=http%3A%2F%2Fgetmortified%2Ecom&brandname=Mortified%20Shoebox%20Show&showsharebutton=true&showguidebutton=true&showplayerpath=http%3A%2F%2Fblip%2Etv%2Fscripts%2Fflash%2Fshowplayer%2Eswf" width="400" height="255" allowfullscreen="true" id="showplayer"><param name="movie" value="http://blip.tv/scripts/flash/showplayer.swf?file=http%3A%2F%2Fmortified%2Eblip%2Etv%2Frss%2Fflash%3Fsort%3Ddate%26nsfw%3Ddc&showfsbutton=true&user=Mortified&brandlink=http%3A%2F%2Fgetmortified%2Ecom&brandname=Mortified%20Shoebox%20Show&showsharebutton=true&showguidebutton=true&showplayerpath=http%3A%2F%2Fblip%2Etv%2Fscripts%2Fflash%2Fshowplayer%2Eswf" /><param name="quality" value="best" /><embed src="http://blip.tv/scripts/flash/showplayer.swf?file=http%3A%2F%2Fmortified%2Eblip%2Etv%2Frss%2Fflash%3Fsort%3Ddate%26nsfw%3Ddc&showfsbutton=true&user=Mortified&brandlink=http%3A%2F%2Fgetmortified%2Ecom&brandname=Mortified%20Shoebox%20Show&showsharebutton=true&showguidebutton=true&showplayerpath=http%3A%2F%2Fblip%2Etv%2Fscripts%2Fflash%2Fshowplayer%2Eswf" quality="best" width="400" height="255" name="showplayer" type="application/x-shockwave-flash"></embed></object></p>]]>
        
    </content>
</entry>
<entry>
    <title>Portfolio and update</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/04/portefolio_and_update.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=115" title="Portfolio and update" />
    <id>tag:www.flashgamer.com,2008://1.115</id>
    
    <published>2008-04-02T13:36:26Z</published>
    <updated>2008-04-02T14:19:06Z</updated>
    
    <summary>About two years ago, I quit my own company to go freelance. I was working on a huge project with more than 50 small Flash apps, but I left the project some months ago more or less out of frustration. It&apos;s now more than three years since it was started and there&apos;s still nothing I can show publicly. Well, I&apos;ve not been sitting idle. I&apos;ve made a kids game (with Netron) that has gotten rave...</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="About / Various" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p><img alt="Lille.jpg" src="http://www.flashgamer.com/img/Lille.jpg" width="136" height="190" align="right" />About two years ago, I quit <a href="http://www.netron.no">my own company</a> to go freelance. I was working on a huge project with more than 50 small Flash apps, but I left the project some months ago more or less out of frustration. It's now more than three years since it was started and there's still nothing I can show publicly.</p>

<p>Well, I've not been sitting idle. I've made <a href="http://www.krussedull.com/">a kids game</a> (with Netron)  that has gotten <a href="http://del.icio.us/flashmagazine/portefolio">rave reviews</a>. The game was done in both Norwegian and English and it will soon get worldwide distribution in even more languages. With a fun storyline, more than 40 minutes of animation, 30 mini-games and a drawing program it's a solid package of kids entertainment. The game targets kids 3-10 but should work well for childish grownups as well.</p>

<p>I've also done an <a href="http://tusenfryd.no/Kart/index.aspx">awesome looking 3D map for an amusement park</a> (also with Netron) as well as changing the backend of <a href="http://www.flashmagazine.com">Flashmagazine</a> to <a href="http://www.flashgamer.com/2008/03/getting_to_know_expressionengi.html">ExpressionEngine</a>. I've also been working on an AS3 version of an Open Source project that I'll get out the door soon. It's lagged behind because of fun commercial work, but I'll get it out within the end of next week.</p>

<p><img alt="tusenmap.jpg" src="http://www.flashgamer.com/img/tusenmap.jpg" width="500" height="262" /></p>

<p>I've also gotten myself an office downtown Oslo, in Storgata 51, straight in between the town centre and Grunerløkka. I share offices with <a href="http://pivot.no/">two product designers</a> that has <a href="http://www.flashgamer.com/2008/02/real_3d_flashmagazine_logo.html">a really cool device</a>, <a href="http://www.junebug.no/">one designer</a> as well as <a href="http://www.variousarchitects.no/">three architects</a>.</p>

<p><a href="http://www.variousarchitects.no">The architects website</a> was designed by <a href="http://www.junebug.no">Junebug</a> and I converted the design to ExpressionEngine and set it up. I'm yet again amazed at how flexible EE is. Every item written on the site can be associated with an architect and/or a project. If you look at an architects page, you can also see all the latest news for the projects they work on. Every project page also shows the news associated with it, so it's effectively a full project history. Every project has a unique RSS feed so anyone can easily track the progress in a project with next to no extra effort for the one filling in the content in the CMS. Really pleased with how the site tuned out.</p>]]>
        
    </content>
</entry>
<entry>
    <title>My first EE plugin</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/03/my_first_ee_plugin.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=114" title="My first EE plugin" />
    <id>tag:www.flashgamer.com,2008://1.114</id>
    
    <published>2008-03-25T15:45:14Z</published>
    <updated>2008-04-18T12:19:24Z</updated>
    
    <summary>While making my second EE site, I needed a way to create a Slideshow from thumbnails. I found a slick JavaScript called Shadowbox that can display images, Flash, movies and more. It&apos;s kind of like LightBox, but better and fully standards compliant (click the images of Hoss or Aral to test). Using the Shadowbox approach, you can accommodate users with anything from 2&quot; to 30&quot; screens easily. If a user have a nice, expensive 30&quot;,...</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="ExpressionEngine" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p>While making my <a href="http://www.variousarchitects.no/">second EE site</a>, I needed a way to create a Slideshow from thumbnails. I found a slick JavaScript called <a href="http://mjijackson.com/shadowbox/">Shadowbox</a> that can display images, Flash, movies and more. It's kind of like LightBox, but better and fully standards compliant (<a href="http://www.flashmagazine.com/news/detail/fitc_amsterdam_day_1/">click the images of Hoss or Aral</a> to test). Using the Shadowbox approach, you can accommodate users with anything from 2" to 30" screens easily. If a user have a nice, expensive 30", why not give them a nice big image to feast their eyes on?</p>

<p>I really like EE, but the image handling is <a href="http://www.flashgamer.com/2008/03/getting_to_know_expressionengi.html">a bit weak</a>.  I couldn't find a user friendly way to associate a series of images with an entry, so I figured the easiest would be to have the user upload/add images separated by a comma and then do some clever parsing on this.</p>

<p>EE isn't really clever at doing string parsing at all. You can enable PHP in the templates for complete flexibility, but that has some uncool security implications. I figured there had to be someone with a similar problem already, but I couldn't find a plugin that could do what I wanted so I figured I'd roll my own. It was surprisingly easy and the result is the SplitAndWrap-plugin (feedback wanted!).</p>

<p>Here's the doc on how it works:</p>

<h2>Usage SplitAndWrap plugin for EE</h2>
Splits a string based on a delimiter and enables you to wrap code around the returned elements. The plugin works as a tag pair. You can wrap each returned element with code like this:

<pre>{exp:splitandwrap char="," str="image1.jpg,image2.jpg,image3.jpg"}
  &lt;img src='{splitted}' width='65' height='30'/&gt;
{/exp:splitandwrap}</pre>

<p>This will produce an output like this:<br />
<code><br />
&lt;img src='image1.jpg' width='65' height='30'/&gt;<br />
&lt;img src='image2.jpg' width='65' height='30'/&gt;<br />
&lt;img src='image3.jpg' width='65' height='30'/&gt;<br />
</code></p>

<p>The {splitted} variable will be replaced with each element across the loop. You'll probably want to use this with a custom field, so to make a list of comma separated names, just do like this:</p>

<pre>
{exp:splitandwrap char="," str="{my_field_of_names}"}
  &lt;li&gt;{splitted}&lt;/li&gt;
{/exp:splitandwrap}
</pre>

<p>Here is a more advanced example where I use a comma separated list of images with the excellent imagesizer plugin to produce a list of clickable thumbnails leading to the original image:</p>

<pre>
&lt;ul class="img"&gt;
{exp:splitandwrap char="," str="{embed:images}" parse="inward"}
&lt;li class="img"&gt;&lt;a href="{splitted}" rel="shadowbox[myGallery];options={counterType:'skip',continuous:true,animSequence:'sync'}"&gt;
{exp:imgsizer:size src="{splitted}" width="65"}
&lt;img src="{sized}" border="0" class="border_a"/&gt;
{/exp:imgsizer:size}
&lt;/a&gt;&lt;/li&gt;
{/exp:splitandwrap}
&lt;/ul&gt;
</pre>

<p>Notice the parse="inward" parameter. This ensures that the splitandwrap plugin is parsed before the imgsizer plugin. Without this, there's no output. This output will work with another brilliant piece of code - Shadowbox.js - to produce a slideshow that both validates and looks good.</p>

<p>Shadowbox URL: <a href="http://mjijackson.com/shadowbox/">http://mjijackson.com/shadowbox/</a><br />
Imgsizer URL : <a href="http://www.lumis.com/">http://www.lumis.com/</a></p>

<p>NOTE:<br />
If used as a single tag, you can even use this plugin as general purpose string removal tool:</p>

<pre>{exp:splitandwrap char=" " str="This is a sample text"}</pre>

<p>The above will produce this output:<br />
<pre>Thisisasampletext</pre><br />
<em>(not really sure if that's useful at all, but it's an interesting side-effect)</em></p>

<h2>Installing plugins in EE</h2>
<a href="/f/pi.splitandwrap.php.zip">Download and unzip this file</a> and copy "pi.splitandwrap.php" to your plugins folder (/sysfolder/plugins/). That's it :)

<p>The site I made this for is now live: <a href="http://www.variousarchitects.no">variousarchitects.no</a> Click a project and try the slideshow :-)</p>]]>
        
    </content>
</entry>
<entry>
    <title>Phillip Kerman also loves the Adobe Updater</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/03/phillip_kerman_also_loves_the.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=113" title="Phillip Kerman also loves the Adobe Updater" />
    <id>tag:www.flashgamer.com,2008://1.113</id>
    
    <published>2008-03-17T09:30:44Z</published>
    <updated>2008-03-17T09:42:20Z</updated>
    
    <summary>I&apos;m not very fond of the Adobe Updater and now there&apos;s even a hate-song out there :D More fun from Phil here and some Flash and AIR bashing here as well....</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p>I'm <a href="http://www.flashgamer.com/2008/02/adobe_updater.html">not very fond of the Adobe Updater</a> and now there's even a hate-song out there :D</p>

<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/IBkKBeVX9js&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/IBkKBeVX9js&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>

<p><a href="http://www.youtube.com/user/phillipk">More fun from Phil here</a> and some <a href="http://www.youtube.com/watch?v=n2b9Oc-NErg&feature=related">Flash and AIR bashing</a> here as well.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Mini ExpressionEngine Dictionary</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/03/expressionengine_common_word_d.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=112" title="Mini ExpressionEngine Dictionary" />
    <id>tag:www.flashgamer.com,2008://1.112</id>
    
    <published>2008-03-16T00:09:33Z</published>
    <updated>2008-03-16T00:14:44Z</updated>
    
    <summary>When I started using ExpressionEngine (EE), many of the words used in the documentation was confusing. I made a list as I went along and I&apos;m posting it here in case others find it handy. Control Panel - This is where you set up your EE website, the backend if you will. This is where you edit Templates, Weblogs, Categories, Members and all aspects of your site. Category - A list of elements that may...</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="ExpressionEngine" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p><img alt="icon_ee_logo.jpg" src="http://www.flashgamer.com/img/icon_ee_logo.jpg" width="136" height="95" align="right" />When I started using ExpressionEngine (EE), many of the words used in the documentation was confusing. I made a list as I went along and I'm posting it here in case others find it handy.</p>

<p><strong>Control Panel</strong> - This is where you set up your EE website, the backend if you will. This is where you edit Templates, Weblogs, Categories, Members and all aspects of your site.</p>

<p><strong>Category</strong> - A list of elements that may have URL/image/description properties related to them. Categories are assigned to a Category Group. Categories may be added dynamically by site users based on the permissions you set (does not require the use of the Control Panel). May be considered as "tags". You can assign multiple categories to each Weblog Entry.</p>

<p><strong>Category Group</strong> - A group of categories. May hold several Category Fields. You can assign any combination of Category Groups to each weblog. You'll find these categories under the Category tab when you add content to a weblog.</p>

<p><strong>Category Field</strong> - An input field. May be of type Text, Texarea and Dropdown.</p>

<p><strong>Embedded Template</strong> - Any template can be nested inside other templates. If an element is repeated across pages, break it into it's own template and embed this instead. That way, changes to it will be site-wide with just one edit.</p>

<p><strong>Field</strong> - An input field. May be of type Text, Texarea, Dropdown, Date and Relationship. Using plugins, you can also get various WYSIWYG editors. Text types may be set up to support formatting. Dropdowns may get their content from from another custom field. Relationships are like "Advanced Search". They may grab content from other Weblogs and vice versa. Very powerful stuff that takes a little fiddling to learn.</p>

<p><strong>Field Group</strong> - A set of custom fields that can be assigned to a Weblog. A typical set may be title, image, summary and article. A products weblog (section) use a Field group that has fields such as product name, weight, specs and price.</p>

<p><strong>Template</strong> - A HTML-page with placeholders for fields that ExpressionEngine will fill in. The can be a complete or just a part of a page. The templates are setup to pull content from one or more weblogs. The Field Groups assigned to each weblog will decide what data EE will be able to fill into each template.</p>

<p><strong>Template Group</strong> - A group of templates. Grouping affects the rendered URL's. If you want long, descriptive URLs, you can achieve this by grouping templates. To end up with a URL like this: http://www.adobe.com/aboutadobe/pressroom/ you can create a Template Group called 'aboutadobe' and create a 'pressroom' template in this group.</p>

<p><strong>Weblog</strong> - Usually used to create sections in a site (Home, News, Products, About). Each Weblog have different design, user rights and input fields. Weblog can also be considered a Template group. Weblogs are only editable from the Control Panel.</p>

<p><strong>Weblog Entry</strong> - A single piece of CMS content / article</p>]]>
        
    </content>
</entry>
<entry>
    <title>Getting to know ExpressionEngine</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/03/getting_to_know_expressionengi.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=111" title="Getting to know ExpressionEngine" />
    <id>tag:www.flashgamer.com,2008://1.111</id>
    
    <published>2008-03-15T20:19:25Z</published>
    <updated>2008-03-15T23:04:33Z</updated>
    
    <summary>I&apos;ve recently changed the Content Management System we use for Flashmagazine. The old CMS was built in 2003. It was based on PHP and had a fancy Flash 5-based backend. The system is no longer in active development, so I needed something new for Flashmag. I thought others may be interested in hearing why I ended up using ExpressionEngine, so here it goes. I spent a good deal of time researching potential CMS systems such...</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="ExpressionEngine" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p><img alt="icon_ee_logo.jpg" src="http://www.flashgamer.com/img/icon_ee_logo.jpg" width="136" height="95" align="right" />I've recently changed the Content Management System we use for <a href="http://www.flashmagazine.com">Flashmagazine</a>. The old CMS was built in 2003. It was based on PHP and had a fancy Flash 5-based backend. The system is no longer in active development, so I needed something new for Flashmag. I thought others may be interested in hearing why I ended up using ExpressionEngine, so here it goes.</p>

<p>I spent a good deal of time researching potential CMS systems such as <a href="http://wordpress.org/">WordPress</a>, <a href="http://www.sixapart.com/">Movable Type</a>, <a href="http://www.joomla.org/">Joomla</a>, <a href="http://drupal.org/">Drupal</a> and <a href="http://ez.no/">EZ Publish</a>. WP and MT just would not cut it. They were too simple, but I use them on several sites so I know what they're suited for. EZ Publish looked good. I bought and read an entire book about EZ Publish. If you ever need a book about EZ Publish, <a href="http://www.amazon.com/Learning-publish-Management-Solutions-Leaders-community/dp/1904811019/ref=pd_bbs_sr_2?ie=UTF8&s=books&qid=1205612917&sr=8-2">DON'T  ever buy this book</a>. It's really poorly written and totally convinced me not to go further with EZ. Drupal looked really flexible, but really seemed like a lot of work to get anywhere. It's kind of the choice for nerds that want to use the tool that "all the other cool kids use". Joomla looked alright, but it's <a href="http://en.wikipedia.org/wiki/Joomla#History">history is terrible</a>. So much useless fighting and it seems <a href="http://blog.wired.com/monkeybites/2007/06/commercial_joom.html">it may even go on</a>. I was really uncertain what to do next.</p>

<p>I asked my buddy <a href="http://evolutionar-e.com/blog/">David Vogeleer</a> what he used. He used <a href="http://expressionengine.com/">ExpressionEngine</a> at work and said he loved it. Expression Engine (EE)? Never heard of it. I checked it out and I instantly liked <a href="http://expressionengine.com/">the website</a>. <a href="http://expressionengine.com/docs/modules/weblog/weblog_entries.html">The syntax</a> looked good and easy to learn. Hmm... They offer <a href="http://www.enginehosting.com/">managed servers on clusters</a> so I don't need to fiddle with the setup? Cool. A bunch of <a href="http://expressionengine.com/downloads/addons/">official and user contributed plugins and extensions</a>? Really <a href="http://expressionengine.com/docs/">good documentation</a> (with user comments), <a href="http://expressionengine.com/wiki/">wiki</a>, <a href="http://expressionengine.com/knowledge_base/">knowledge base</a>, <a href="http://expressionengine.com/forums/">active forum</a> with lots of users (but also very active professional admins)? Wow. This really looked promising.</p>

<p>I downloaded the free version, played a bit with it. Tried the $10 hosted trial and sent an email with a bunch of questions and got good answers within 2 hours. That really impressed me!</p>

<p>I thought a bit about this and decided to give it a try. Before starting, I bought and read a <a href="http://www.train-ee.com/courseware/ebooks/">very well written PDF book</a> that I recommend buying for anyone getting started with EE. The PDF is a compilation of <a href="http://www.boyink.com/splaat/comments/building-an-expressionengine-site-chapter-1/">a free article series</a> but the PDF is worth the $25.</p>

<p>After reading, I used the $10 trial and started setting up. Flashmag had content in four main categories; <a href="http://www.flashmagazine.com/news/index/">News</a>, Articles, <a href="http://www.flashmagazine.com/reviews/index/">Reviews</a> and <a href="http://www.flashmagazine.com/tutorials/index/">Tutorials</a>. Articles are really just long "News" stories, so I figured I'd just merge the two and rather highlight the articles and other content in a special sidebar. After setting the structure, I imported most of the 1500 stories in the Flashmag archives easily using the import utility. I spent a couple days tweaking and setting up the required templates and lo and behold - a site with 1200 articles converted to a much more powerful system. </p>

<p>I've now signed up with <a href="http://www.enginehosting.com/">EngineHosting</a> and pay $40 a month. Commercial sites pay a $250 license but that is reduced to $200 when you sign up for the hosting as well. Not bad? </p>

<p>I've now used EE for two more sites and I'm amazed at how flexible it is. It's not like everything is golden, but the good by far outweighs the bad. So here's my take on the pros and cons:</p>

<p><b>ExpressionEngine Pros</b><br />
- Docs like no other CMS I've seen (I've never been this impressed. They even rival <a href="http://no2.php.net/manual/en/">php.net</a> at times)<br />
- Development speed<br />
- Flexible architecture<br />
- Extendable through PHP, Plugins or commercial extensions<br />
- A minute to learn, but not a lifetime to master<br />
- Intuitive tag language that's easy to read and maintain<br />
- Modules for virtually every occasion<br />
- Support!<br />
- High quality hosting at a very reasonable price<br />
- Very helpful and responsive community</p>

<p><b>ExpressionEngine Cons</b><br />
- Image upload / organization could definitely have been solved more elegantly<br />
- Automatic thumbnails or scaling of images only available using a <a href="http://www.lumis.com/site/page/imgsizer/">third party (non-certified) plugin</a> (great quality tho)<br />
- Not an app framework (but it's very flexible). You can bend it to do many things, but it's a CMS at it's core. You can also customize a lot using plain PHP straight in the templates.<br />
- Some default settings are for bloggers, not professional sites. Most professional users may want to turn off these functions:<br />
1. Admin > system preferences > emoticon preferences to turn off emoticon preferences<br />
2. Weblog Administration -> Weblog Management -> (your weblog here) -> Weblog Posting Preferences -> Automatically turn URLs and email addresses into links?<br />
3. Versioning of templates / entries are turned off by default<br />
- There gotta be an easier way to loose the <a href="http://expressionengine.com/wiki/Remove_index.php_From_URLs/">index.php</a> in the URLs </p>

<p>If you have other pros/cons, please add them to the comments! Before starting the conversion process, Jarle told me that I should sign up for <a href="http://www.google.com/webmasters/tools/">Google's webmaster tools</a>. If you own a site and care about SEO, sign up to see how you can fix any problems (according to Google's spider. If you check EE out and end up getting a license, feel free to <a href="http://www.expressionengine.com/index.php?affiliate=Flashmagazine">click this link</a> and I'll get a little affiliate commission :)</p>

<p>PS: I haven't added many new features to Flashmag yet, but that'll come soon.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Real 3D Flashmagazine logo</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/02/real_3d_flashmagazine_logo.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=110" title="Real 3D Flashmagazine logo" />
    <id>tag:www.flashgamer.com,2008://1.110</id>
    
    <published>2008-02-22T14:58:15Z</published>
    <updated>2008-02-22T15:05:51Z</updated>
    
    <summary>My new office has a cool mix of people, 3 architects, 2 product designers, 1 web designer and me. The product design guys just got a 3D printer (!) and I just had to try it out using the Flashmagazine logo! More pictures of the process on Flickr. It&apos;s just insane. With a printer like this, you can make anything!...</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="About / Various" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p>My new office has a cool mix of people, <a href="http://variousarchitects.no/">3 architects</a>, <a href="http://pivot.no/">2 product designers</a>, <a href="http://junebug.no/">1 web designer</a> and me. The product design guys just got a 3D printer (!) and I just had to try it out using the <a href="http://www.flashmagazine.com/">Flashmagazine</a> logo!</p>

<p><a href="http://www.flickr.com/photos/flashmagazine/"><img alt="IMG_2028.jpg" src="http://www.flashgamer.com/img/IMG_2028.jpg" width="500" height="333" /></a></p>

<p><a href="http://www.flickr.com/photos/flashmagazine/">More pictures of the process on Flickr.</a> It's just insane. With a printer like this, you can make anything!</p>]]>
        
    </content>
</entry>
<entry>
    <title>TypeError: Error #1009</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/02/typeerror_error_1009.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=109" title="TypeError: Error #1009" />
    <id>tag:www.flashgamer.com,2008://1.109</id>
    
    <published>2008-02-22T12:21:32Z</published>
    <updated>2008-02-22T12:33:37Z</updated>
    
    <summary>Chances are that you&apos;ve seen this error message before. This is my number one wish for ALL the Adobe compilers - better error messages! I&apos;ve always wondered why Flash / Flex can&apos;t throw proper error messages and this is a brilliant example. In this case, Flash obviously knows exactly what is wrong so why not just just tell it? How about something like this: TypeError: Error #1009: Cannot access the property &quot;someprop&quot; since it is...</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="Flash" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p>Chances are that you've seen this error message before. This is my number one wish for ALL the Adobe compilers - better error messages! I've always wondered why Flash / Flex can't throw proper error messages and this is a brilliant example. In this case, Flash obviously knows exactly what is wrong so why not just just tell it? How about something like this:</p>

<pre> 
<code>TypeError: Error #1009: Cannot access the property <em><strong>"someprop" since it is</strong></em> a null object reference.
	at no.netron.tusenfryd::Map/onLoadSingle()
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at flash.net::URLLoader/onComplete()</code> 
 </pre>

<p>If I just knew the name of the object, I didn't have to search all over for it...</p>]]>
        
    </content>
</entry>
<entry>
    <title>Flash CS3 Quicktime export bug</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/02/flash_cs3_quicktime_export_bug.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=108" title="Flash CS3 Quicktime export bug" />
    <id>tag:www.flashgamer.com,2008://1.108</id>
    
    <published>2008-02-21T12:57:11Z</published>
    <updated>2008-02-21T16:08:55Z</updated>
    
    <summary>How can the same timeline export to two different lengths? This is for sure a bug in the Quicktime export in Flash CS3. A little background - I&apos;m working on a project where we&apos;ll let the user rotate a huge 3D model left or right by clicking some arrows. If you have ever tried to play Flash video backwards, you&apos;ve noticed that this won&apos;t play smoothly since Flash have to calculate any missing keyframes. The...</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="Flash" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p>How can the same timeline export to two different lengths? This is for sure a bug in the Quicktime export in Flash CS3. A little background - I'm working on a project where we'll let the user rotate a huge 3D model left or right by clicking some arrows. If you have ever tried to play Flash video backwards, you've noticed that this won't play smoothly since Flash have to calculate any missing keyframes. The best solution is to use two FLVs embedded in each their movieclip and do some smart toggeling of the two movieclips so you only play one video at a time, but always in the forward direction.</p>

<p>For this to work, you'll need two videos. One containing the normal sequence and one containing the reverse. These videos have to have exactly the same length, or you won't be able to jump between them. Ive done this a bunch of times in former versions of Flash, but in CS3 this is totally broken. Have a look at the timeline below (click for full size version). it has three layers. The first layer (right) contains a series of PNG images showing the rotation of the model towards right. The second layer (left) contains the same images in reversed order.</p>

<p>I export the "rotateRight" quicktime movie and then turn the "right" layer into a guide and export the "left" rotation. The resulting Quicktime movies will now be of different lengths!?!? Not only that - if I re-export the lengths change at random??? Seriously - somebody did not do their homework here! This also reminds me of a problem Andre Michelle is experiencing where <a href="http://blog.andre-michelle.com/2007/198/">the sound object is now less precise than if was before</a>.</p>

<p>Come on - time is only relative <a href="http://www.imdb.com/title/tt0133093/">in movies</a>. In real life a frame is a frame and a second is a second! I've now spent way too many hours researching this. I'll now dig up my old PC version of Flash 8 and fix this.</p>

<p><strong>UPDATE: Using Flash 8 worked like a charm. This is definelty a CS3 bug...</strong></p>

<p><a href="http://www.flashgamer.com/img/qt_big.html" onclick="window.open('http://www.flashgamer.com/img/qt_big.html','popup','width=1090,height=527,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img alt="qt_small.jpg" src="http://www.flashgamer.com/img/qt_small.jpg" width="500" height="242" /><p>Click to view large image</p></a></p>

<p><em>Just to make it worse - the last update for CS3 that <a href="http://www.flashgamer.com/2008/02/adobe_updater.html">I whined about</a> has broken Photoshop. It crashes every time I try to open an image using the Open File dialogue or try to Save. Just brilliant when you want to make pictures illustrating another bug in Adobe software... And - this is not my machine acting up either. My wife has the exact same behavior on her video editing Mac at work and the export issue has also been confirmed by others. It's the same. 100% repeatable randomness.</em></p>]]>
        
    </content>
</entry>
<entry>
    <title>Adobe Updater</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/02/adobe_updater.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=107" title="Adobe Updater" />
    <id>tag:www.flashgamer.com,2008://1.107</id>
    
    <published>2008-02-18T13:09:33Z</published>
    <updated>2008-02-21T13:53:56Z</updated>
    
    <summary>Today, the Adobe Updater started whining about another update. It does this so often that it&apos;s a real annoyance since the core component it keeps updating are stuff I never use or care about such as Bridge and Version Cue. Today, the darn updater has interrupted my work flow more than 5 times over the course of two hours. I sit there working happily and that annoying updater keeps juming in the dock... Anyone have...</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="Flash" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p>Today, the Adobe Updater started whining about another update. It does this so often that it's a real annoyance since the core component it keeps updating are stuff I never use or care about such as Bridge and Version Cue. Today, the darn updater has interrupted my work flow more than 5 times over the course of two hours. I sit there working happily and that annoying updater keeps juming in the dock...</p>

<p>Anyone have some good advice on how to control this better? I do want updates to the applications I use, but I really don't want to be bothered when it comes to all that other crap...</p>

<p>Update: <a href="http://weblogs.macromedia.com/jd/archives/2008/02/adobe_updater_t.cfm">JD got me some good advice</a>. Comments are now working.</p>]]>
        
    </content>
</entry>
<entry>
    <title>A Love Letter to Flash</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/02/a_love_letter_to_flash.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=106" title="A Love Letter to Flash" />
    <id>tag:www.flashgamer.com,2008://1.106</id>
    
    <published>2008-02-05T09:44:54Z</published>
    <updated>2008-02-05T09:45:27Z</updated>
    
    <summary>Just brilliant!...</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="Flash" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p><a href="http://www.wakeuplater.com/website-building/love-letter-to-flash.aspx">Just brilliant!</a></p>]]>
        
    </content>
</entry>
<entry>
    <title>What is Singularity?</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/01/what_is_singularity.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=105" title="What is Singularity?" />
    <id>tag:www.flashgamer.com,2008://1.105</id>
    
    <published>2008-01-31T10:47:54Z</published>
    <updated>2008-01-31T10:49:51Z</updated>
    
    <summary>What&apos;s Aral up to?...</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="Flash" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p>What's Aral up to? <br />
<a href="http://singularity08.com"><img src="http://singularity08.com/images/teaser/button_468x60.gif" width="468" height="60" alt="Singularity?"/></a></p>]]>
        
    </content>
</entry>
<entry>
    <title>Make instant animations with your webcam</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/01/make_instant_animations_with_y.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=104" title="Make instant animations with your webcam" />
    <id>tag:www.flashgamer.com,2008://1.104</id>
    
    <published>2008-01-22T14:32:04Z</published>
    <updated>2008-01-22T14:36:01Z</updated>
    
    <summary>Kind of &quot;toy-ish&quot; but fun none the less, the animation site AniBoom has a cool widget that will allow you to do simple stop motion animation using your webcam and then export this as a GIF. Simple, but fun. Great for explaining kids what animation is and how it works....</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="Animation" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p>Kind of "toy-ish" but fun none the less, the animation site AniBoom has <a href="http://www.aniboom.com/MicroSmotion/">a cool widget</a> that will allow you to do simple stop motion animation using your webcam and then export this as a GIF. Simple, but fun. Great for explaining kids what animation is and how it works.</p>]]>
        
    </content>
</entry>
<entry>
    <title>An AIR of confusion?</title>
    <link rel="alternate" type="text/html" href="http://www.flashgamer.com/2008/01/confusion_in_the_air.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.flashgamer.com/cgi-bin/flyttbar/mt-atom.cgi/weblog/blog_id=1/entry_id=103" title="An AIR of confusion?" />
    <id>tag:www.flashgamer.com,2008://1.103</id>
    
    <published>2008-01-16T19:17:15Z</published>
    <updated>2008-01-16T19:41:48Z</updated>
    
    <summary>Adobe AIR, Apple AIR and there&apos;s even Microsoft AIR... What&apos;s next? How about Google AIR - the free, ad sponsored airline? It looks like Google will support AIR Analytics soon at least?...</summary>
    <author>
        <name>Jensa</name>
        <uri>http://www.flashmagazine.com</uri>
    </author>
            <category term="Flex" />
    
    <content type="html" xml:lang="en" xml:base="http://www.flashgamer.com/">
        <![CDATA[<p><a href="http://labs.adobe.com/technologies/air/">Adobe AIR</a>, <a href="http://www.apple.com/macbookair/">Apple AIR</a> and there's even <a href="http://www.airforcesymposium.com/">Microsoft AIR</a>... What's next? How about <a href="http://whois.domaintools.com/google-air.com">Google AIR</a> - the free, ad sponsored airline?</p>

<p>It looks like <a href="http://www.riapedia.com/2008/01/16/google_officially_supporting_air_analytics_application">Google will support AIR Analytics</a> soon at least?</p>]]>
        
    </content>
</entry>

</feed> 

