<?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>GerillaFilm &#187; Web</title>
	<atom:link href="http://www.gerillafilm.se/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gerillafilm.se</link>
	<description>Small means, great stuff</description>
	<lastBuildDate>Tue, 20 Dec 2011 09:43:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>WordPress and jQuery Masonry setup with floating images</title>
		<link>http://www.gerillafilm.se/web/wordpress-and-jquery-masonry-setup-with-floating-images/</link>
		<comments>http://www.gerillafilm.se/web/wordpress-and-jquery-masonry-setup-with-floating-images/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 08:34:51 +0000</pubDate>
		<dc:creator>Finn</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[masonry]]></category>
		<category><![CDATA[the_post_thumbnail]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.gerillafilm.se/?p=347</guid>
		<description><![CDATA[The Masonry jQuery plugin is an easy way to stack divs in a nice grid without the usual problem with CSS floats &#8211; e.g divs with different heights will not look good beside each other. In a recent project a client wanted WordPress thumbnails stacked in this way. I first added some code to functions.php in order [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://masonry.desandro.com/" target="_blank">Masonry jQuery plugin</a> is an easy way to stack divs in a nice grid without the usual problem with CSS floats &#8211; e.g divs with different heights will not look good beside each other.</p>
<p>In a recent project a client wanted WordPress thumbnails stacked in this way. I first added some code to <em>functions.php</em> in order to set widths and heights to the selected thumbnails.<span id="more-347"></span></p>
<pre class="brush: php; title: ; notranslate"> // this goes into functions.php
add_image_size( 'front-thumb', 150, 9999 ); //150 pixels wide (and unlimited height)</pre>
<p>UPDATE 20 DEC 2011:</p>
<pre class="brush: php; title: ; notranslate">
// this goes on top of the page, either to header.php or on top of the specific page template

&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.masonry.min.js&quot;&gt;&lt;/script&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
jQuery(document).ready(function($){

  var $container = $('.front-box-container');
  $container.imagesLoaded( function(){
    $container.masonry({
      itemSelector : '.front-box',
      singleMode:true
    });
  });

});
&lt;/script&gt;

// On the specific page or category archive create a new loop and create the markup for Masonry to catch:

&lt;?php query_posts(array('paged' =&gt; get_query_var('page'),'posts_per_page' =&gt; 25, 'cat'=&gt; '-3' ) ); ?&gt;

&lt;div class=&quot;front-box-container&quot;&gt;
&lt;ul class=&quot;front&quot;&gt;
&lt;?php while ( have_posts() ) : the_post(); ?&gt;

&lt;div class=&quot;front-box&quot;&gt;
    &lt;li&lt;?php if (! has_post_thumbnail()){echo (' class=&quot;front-noimage&quot;');}?&gt;&gt;
    	&lt;a href=&quot;&lt;?php the_permalink() ?&gt;&quot;&gt;

    	   	&lt;?php the_post_thumbnail('front-thumb'); ?&gt;
    	        &lt;div class=&quot;front-info&quot;&gt;
            &lt;h2&gt;&lt;a href=&quot;&lt;?php the_permalink() ?&gt;&quot;&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/h2&gt;
            &lt;div class=&quot;alternate-content&quot;&gt;&lt;?php the_excerpt(); ?&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;/li&gt;

&lt;/div&gt;

&lt;?php endwhile;
wp_reset_query(); ?&gt;

&lt;/ul&gt;
&lt;/div&gt; &lt;!-- front-box-container --&gt;
</pre>
<p>That should make the images with (<em>.front-box</em>) inside the parent div (<em>.front-box-container</em>) float nicely with Masonry. Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gerillafilm.se/web/wordpress-and-jquery-masonry-setup-with-floating-images/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ultimate .htaccess rewrite tutorial with 301 redirects</title>
		<link>http://www.gerillafilm.se/web/ultimate-htaccess-rewrite-tutorial-with-301-redirects/</link>
		<comments>http://www.gerillafilm.se/web/ultimate-htaccess-rewrite-tutorial-with-301-redirects/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 08:28:44 +0000</pubDate>
		<dc:creator>Finn</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[clean urls]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[new domain]]></category>
		<category><![CDATA[parameter]]></category>
		<category><![CDATA[query string]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[retain path]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.gerillafilm.se/?p=286</guid>
		<description><![CDATA[So, over the last couple of weeks I have moved several sites to new locations and publishing platforms which demands some redirects unless you wanna be a SEO killer. The examples below are mostly URLs with query strings which I either want to hide or make prettier. The fourth and fifth examples are quite useful when [...]]]></description>
			<content:encoded><![CDATA[<p>So, over the last couple of weeks I have moved several sites to new locations and publishing platforms which demands some redirects unless you wanna be a SEO killer. The examples below are mostly URLs with query strings which I either want to hide or make prettier. The fourth and fifth examples are quite useful when you want to create human readable URLs for APIs or web services.</p>
<p><em>Updated 22 November 2011.</em></p>

<h2>1. Rewrite and redirect URLs with query parameters (files placed in root directory)</h2>
<p>Original URL:</p>
<pre class="brush: xml; title: ; notranslate">http://www.example.com/index.php?id=1</pre>
<p>Desired destination URL:</p>
<pre class="brush: xml; title: ; notranslate">http://www.example.com/path-to-new-location/</pre>
<p>.htaccess syntax:</p>
<pre class="brush: xml; title: ; notranslate">RewriteEngine on
RewriteCond %{QUERY_STRING} id=1
RewriteRule ^index\.php$ /path-to-new-location/? [L,R=301]</pre>
<h2>2. Redirect URLs with query parameters (files placed in subdirectory)</h2>
<p>Original URL:</p>
<pre class="brush: xml; title: ; notranslate">http://www.example.com/sub-dir/index.php?id=1</pre>
<p>Desired destination URL:</p>
<pre class="brush: xml; title: ; notranslate">http://www.example.com/path-to-new-location/</pre>
<p>.htaccess syntax:</p>
<pre class="brush: xml; title: ; notranslate">RewriteEngine on
RewriteCond %{QUERY_STRING} id=1
RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [L,R=301]</pre>
<h2>3. Redirect one clean URL to a new clean URL</h2>
<p>Original URL:</p>
<pre class="brush: xml; title: ; notranslate">http://www.example.com/old-page/</pre>
<p>Desired destination URL:</p>
<pre class="brush: xml; title: ; notranslate">http://www.example.com/new-page/</pre>
<p>.htaccess syntax:</p>
<pre class="brush: xml; title: ; notranslate">RewriteEngine On
RewriteRule ^old-page/?$ $1/new-page$2 [R=301,L]</pre>
<h2>4. Rewrite and redirect URLs with query parameter to directory based structure, retaining query string in URL root level</h2>
<p>Original URL:</p>
<pre class="brush: xml; title: ; notranslate">http://www.example.com/index.php?id=100</pre>
<p>Desired destination URL:</p>
<pre class="brush: xml; title: ; notranslate">http://www.example.com/100/</pre>
<p>.htaccess syntax:</p>
<pre class="brush: xml; title: ; notranslate">RewriteEngine On
RewriteRule ^([^/d]+)/?$ index.php?id=$1 [QSA]</pre>
<h2>5. Rewrite URLs with query parameter to directory based structure, retaining query string parameter in URL subdirectory</h2>
<p>Original URL:</p>
<pre class="brush: xml; title: ; notranslate">http://www.example.com/index.php?category=fish</pre>
<p>Desired destination URL:</p>
<pre class="brush: xml; title: ; notranslate">http://www.example.com/category/fish/</pre>
<p>.htaccess syntax:</p>
<pre class="brush: xml; title: ; notranslate">RewriteEngine On
RewriteRule ^/?category/([^/d]+)/?$ index.php?category=$1 [L,QSA]</pre>
<h2>6. Domain change &#8211; redirect all incoming request from old to new domain (retain path)</h2>
<pre class="brush: xml; title: ; notranslate">RewriteEngine on
RewriteCond %{HTTP_HOST} ^example-old\.com$ [NC]
RewriteRule ^(.*)$ http://www.example-new.com/$1 [R=301,L]</pre>
<p>If you do not want to pass the path in the request to the new domain, change the last row to:</p>
<pre class="brush: xml; title: ; notranslate">RewriteRule ^(.*)$ http://www.example-new.com/ [R=301,L]</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gerillafilm.se/web/ultimate-htaccess-rewrite-tutorial-with-301-redirects/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Custom WordPress Varnish VCL v1</title>
		<link>http://www.gerillafilm.se/web/custom-wordpress-varnish-vcl-v1/</link>
		<comments>http://www.gerillafilm.se/web/custom-wordpress-varnish-vcl-v1/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 08:56:44 +0000</pubDate>
		<dc:creator>Finn</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[varnish]]></category>

		<guid isPermaLink="false">http://www.gerillafilm.se/?p=158</guid>
		<description><![CDATA[Over the last couple of days I&#8217;ve been struggling with getting my dev WordPress environment set up with Varnish (2.1.3) Out of the box with minimal config it provides great speed and hitrate but zero functionality together with the cookie-laden WordPress. So far I have tested a bunch of VCL:s found online but here&#8217;s my take [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last couple of days I&#8217;ve been struggling with getting my dev WordPress environment set up with <a href="http://www.varnish-cache.org" target="_blank">Varnish</a> (2.1.3) Out of the box with minimal config it provides great speed and hitrate but zero functionality together with the cookie-laden WordPress. So far I have tested a bunch of VCL:s found online but here&#8217;s my take (based on practically every nice example found out there).<span id="more-158"></span></p>
<p>To get WordPress to purge when you create or edit posts, I have tried W3 Total Cache, but the Varnish implementation doesn&#8217;t seem to work that well. The only plug-in that I have gotten to work with this setup is <a href="http://github.com/pkhamre/wp-varnish" target="_blank">WP-Varnish</a> by Pål-Kristian Hamre.</p>
<p>The single specified backend config has to do with another test I&#8217;m working on with getting Varnish to serve different sites running for example Drupal and WordPress, with a single VCL. I&#8217;ll get back to that one.</p>
<pre class="brush: python; title: ; notranslate">backend wp1 {.host = &quot;mywpsite.mydomain.com&quot;;.port = &quot;8080&quot;;}
sub vcl_recv {
if (req.http.host == &quot;mywpsite.mydomain.com&quot;) {set req.http.host = &quot;mywpsite.mydomain.com&quot;;set req.backend = wp1;}
}
acl purge {
&quot;127.0.0.1&quot;;
}
sub vcl_recv {
 set req.grace = 6h;
 if (req.request == &quot;PURGE&quot;) {
if (!client.ip ~ purge) {error 405 &quot;Not allowed.&quot;;}purge(&quot;req.url ~ &quot; req.url &quot; &amp;&amp; req.http.host == &quot; req.http.host);error 200 &quot;Purged.&quot;;
}
}
# Do the PURGE thing
sub vcl_hit {if (req.request == &quot;PURGE&quot;) {set obj.ttl = 0s;error 200 &quot;Purged&quot;;}}
sub vcl_miss {if (req.request == &quot;PURGE&quot;) {error 404 &quot;Not in cache&quot;;}}
sub vcl_recv {
 # set standard proxied ip header for getting original remote address
set req.http.X-Forwarded-For = client.ip;
 # logged in users must always pass
if( req.url ~ &quot;^/wp-(login|admin)&quot; || req.http.Cookie ~ &quot;wordpress_logged_in_&quot; ){return (pass);}
 # don't cache search results
if( req.url ~ &quot;\?s=&quot; ){return (pass);}
 # always pass through posted requests and those with basic auth
if ( req.request == &quot;POST&quot; || req.http.Authorization ) {return (pass);}
 # else ok to fetch a cached page
unset req.http.Cookie;
return (lookup);
}
sub vcl_fetch {
 # remove some headers we never want to see
unset beresp.http.Server;
unset beresp.http.X-Powered-By;
 # only allow cookies to be set if we're in admin area - i.e. commenters stay logged out
if( beresp.http.Set-Cookie &amp;&amp; req.url !~ &quot;^/wp-(login|admin)&quot; ){unset beresp.http.Set-Cookie;}
 # don't cache response to posted requests or those with basic auth
if ( req.request == &quot;POST&quot; || req.http.Authorization ) {return (pass);}
 # Trust Varnish if it says this is not cacheable
if ( ! beresp.cacheable ) {return (pass);}
 # only cache status ok
if ( beresp.status != 200 ) {return (pass);}
 # don't cache search results
if( req.url ~ &quot;\?s=&quot; ){return (pass);}
 # else ok to cache the response
set beresp.ttl = 24h;
return (deliver);
}
sub vcl_deliver {
# add debugging headers, so we can see what's cached
if (obj.hits &gt; 0) {set resp.http.X-Cache = &quot;HIT&quot;;set resp.http.X-Cache-Hits = obj.hits;}
else {set resp.http.X-Cache = &quot;MISS&quot;;}
# remove some headers added by varnish
unset resp.http.Via;
unset resp.http.X-Varnish;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gerillafilm.se/web/custom-wordpress-varnish-vcl-v1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Webmin &#8211; Hetzner VPS Debian 6 LAMP + fastcgi + php5 + apache</title>
		<link>http://www.gerillafilm.se/linux/webmin-setup-hetzner-debian-6-lamp-stack-with-fastcgi-php5-apache/</link>
		<comments>http://www.gerillafilm.se/linux/webmin-setup-hetzner-debian-6-lamp-stack-with-fastcgi-php5-apache/#comments</comments>
		<pubDate>Wed, 18 May 2011 10:50:22 +0000</pubDate>
		<dc:creator>Finn</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[fcgid]]></category>
		<category><![CDATA[Hetzner]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[vq7]]></category>
		<category><![CDATA[webmin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.gerillafilm.se/?p=138</guid>
		<description><![CDATA[This tutorial applies to servers preconfigured with LAMP (Debian 6, Apache 2, Mysql 5, PHP 5.2). If the LAMP stack is not installed, it&#8217;s pretty straightforward to install the respective components via apt-get install. Since the image I&#8217;m using has Webmin preinstalled I use it to quickly get started. The main thing with this setup [...]]]></description>
			<content:encoded><![CDATA[<p>This tutorial applies to servers preconfigured with LAMP (Debian 6, Apache 2, Mysql 5, PHP 5.2). If the LAMP stack is not installed, it&#8217;s pretty straightforward to install the respective components via apt-get install. Since the image I&#8217;m using has Webmin preinstalled I use it to quickly get started.<span id="more-138"></span></p>
<p>The main thing with this setup is to avoid permission issues when installing and running Drupal and WordPress. Since they depend quite heavily on writing files, changing settings, updating plugins and modules you may end up with a very loose permissions scheme that tends to lead to an insecure installation.</p>
<h3>Goals</h3>
<ul>
<li>make Apache run PHP applications as an arbitrary user (not www-data)</li>
<li>create &#8220;sandboxed&#8221; websites and users to avoid Apache user gaining access to other sites on the same machine (especially important if you&#8217;re using or want to create a shared hosting environment)</li>
<li>avoid 777 permissions all over the place</li>
</ul>
<p>(If Apache is already installed, this is where you begin)</p>
<p><strong>Install modules:</strong></p>
<pre>aptitude install apache2-suexec libapache2-mod-fcgid php5-cgi
/etc/init.d/apache2 restart</pre>
<p>You might get the following error message, ignore it for now:</p>
<pre>"Could not reliably determine the server's fully qualified domain name,
using xxx.xxx.xxx.xxx for ServerName"</pre>
<p><strong>Disable the mod_php </strong>- we will use fcgid instead:</p>
<pre>a2dismod php5</pre>
<p><strong>Enable the newly installed Apache modules:</strong></p>
<pre>a2enmod rewrite
a2enmod suexec
a2enmod include
a2enmod fcgid</pre>
<p><strong>Open and edit /etc/php5/cgi/php.ini</strong></p>
<pre>nano /etc/php5/cgi/php.ini</pre>
<p><strong>Uncomment or add the following line:</strong></p>
<pre>cgi.fix_pathinfo = 1</pre>
<p><strong>Restart Apache:</strong></p>
<pre>/etc/init.d/apache2 restart</pre>
<p><strong>In Webmin</strong>, go to Servers &gt; ProFTPD Server &gt; Files and directories</p>
<pre>Set "Limit users to directories" to "Home directory". Save.
Apply changes (restart ProFTPD Server).</pre>
<p><strong>Create a directory</strong> for the site which also will be the home directory for your web user:</p>
<pre>mkdir -p /var/www/my<em>newsite.com</em>/public_html</pre>
<p><strong>In Webmin</strong>, create a user under System &gt; Users and groups &gt; Create a new user</p>
<pre>Username: <em>mynewuser</em>
User ID: Automatic
Home directory: browse to /var/www/my<em>newsite.com</em>/ and select it
Password: Normal password &gt; (<em>Choose a good, random password</em>)
Primary group: New group with same name as user
Create home directory: Yes
Copy template files to home directory: Yes
Create user in other modules: Yes</pre>
<p><strong>Make your new user owner of their webroot:</strong></p>
<pre>cd /var/www/my<em>newsite.com </em>
chown -R <em>mynewuser:<em>mynewusergroup</em></em> *
<em>NOTE: sometimes the permissions might get corrupted, in that case, try: </em>chown -R <em>mynewuser:<em>mynewusergroup</em></em> /var/www/<em>mynewsite.com</em></pre>
<p><strong>Create a fastcgi wrapper script for the new site:</strong></p>
<pre>mkdir -p /var/www/php-fcgi/<em>mynewsite.com</em>
nano /var/www/php-fcgi/<em>mynewsite.com</em>/php-fcgi-starter</pre>
<p><strong>Add the following to php-fcgi-starter then save:</strong></p>
<pre><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica} -->#!/bin/sh
PHPRC=/etc/php5/cgi/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/lib/cgi-bin/php</pre>
<p><strong>Make the script executable and owned by the user:</strong></p>
<pre>chmod 755 /var/www/php-fcgi/<em>mynewsite.com</em>/php-fcgi-starter

cd /var/www/php-fcgi/<em>mynewsite.com chown -R mynewuser:nynewusergroup *  </em></pre>
<p>In Webmin, remove the catch-all virtual server if it exists (Handles the name-based server <tt></tt>on address <tt>*</tt>.)</p>
<p><strong>Then remove the leftovers from the virtual host:</strong></p>
<pre>rm /etc/apache2/sites-enabled/000-default</pre>
<p><strong>Create a new virtual host:</strong></p>
<p>Servers &gt; Apache webserver &gt; Create virtual host:</p>
<pre>Specific address:  <em>mynewsite.com </em>Add name virtual server address (if needed): Yes
Listen on address (if needed): Yes
Port: 80
Document root: /var/www/<em>mynewsite.com</em>/public_html
Allow access to this directory: Yes
Server name: <em>mynewsite.com </em>Add virtual server to file: New file under virtual servers directory
Copy directives from: Nowhere</pre>
<p>NOTE 1: if you later create sites to be handled by fcgi you may copy/paste the directives from the initial site and then only change document root and user/group info in the new site&#8217;s directives.</p>
<p>NOTE 2:  you still need to create new fastcgi wrapper scripts and unique user for each site.</p>
<p><strong>Tell Apache to listen for the new site:</strong></p>
<pre>Servers &gt; Apache webserver &gt; Global configuration &gt; Networking and addresses:

Check "Include all addresses".
Under "Adresses for name virtual servers" add:
<em>mynewsite.com:80</em></pre>
<p><strong>Save and restart Apache </strong>(&#8220;Apply changes&#8221; in Webmin).</p>
<p><strong>Add directives for the site</strong>. Virtual server &gt; Edit directives:</p>
<pre>ServerName mynewsite.com
ServerAlias mynewsite.com
DocumentRoot /var/www/mynewsite.com/public_html
&lt;IfModule mod_fcgid.c&gt;
 SuexecUserGroup mynewuser mynewusergroup 
 &lt;Directory /var/www/mynewsite.com/public_html&gt;
  Options +ExecCGI
  AllowOverride All
  AddHandler fcgid-script .php
  FCGIWrapper /var/www/php-fcgi/mynewsite.com/php-fcgi-starter .php
  Order allow,deny
  Allow from all 
 &lt;/Directory&gt;&lt;/IfModule&gt;
# ErrorLog /var/log/apache2/error.log
# CustomLog /var/log/apache2/access.log combined
ServerSignature Off</pre>
<p><strong>Save and restart Apache. Done!</strong></p>
<p>(<a href="http://www.howtoforge.com/how-to-set-up-apache2-with-mod_fcgid-and-php5-on-debian-lenny" target="_blank">Based on Falko Timme&#8217;s guide</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gerillafilm.se/linux/webmin-setup-hetzner-debian-6-lamp-stack-with-fastcgi-php5-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Photoshop Express &#8211; cloudy today?</title>
		<link>http://www.gerillafilm.se/mjukvara/adobe-photoshop-express-cloudy-today/</link>
		<comments>http://www.gerillafilm.se/mjukvara/adobe-photoshop-express-cloudy-today/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 09:28:00 +0000</pubDate>
		<dc:creator>Finn</dc:creator>
				<category><![CDATA[Mjukvara]]></category>
		<category><![CDATA[Photo]]></category>
		<category><![CDATA[Social networking]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.gerillafilm.se/mjukvara/adobe-photoshop-express-cloudy-today/</guid>
		<description><![CDATA[Everything should be in the cloud right? When Adobe recently launched Adobe Photoshop Express, a slimmed down version of PS for the web I felt a wee bit skeptical. The notion of online media editing isn&#8217;t exactly new and fresh in 2008, but let me tell you what&#8217;s nice: API skillz. Support for editing and [...]]]></description>
			<content:encoded><![CDATA[<p>Everything should be in the cloud right? When Adobe recently launched <a href="http://www.photoshop.com/express" target="_blank">Adobe Photoshop Express</a>, a slimmed down version of PS for the web I felt a wee bit skeptical. The notion of online media editing isn&#8217;t exactly new and fresh in 2008, but let me tell you what&#8217;s nice:</p>
<p><strong>API skillz.</strong></p>
<p>Support for editing and exporting photos and video to social networks and photo sharing sites is found in iPhoto (Facebook, Picasa etc &#8211; only by 3rd party though). The thing with PS Express is that you&#8217;re allowed to import your external pics from within the web app. After finishing them up with a basic set of tools much like those found in iPhoto or Picasa you simply send them back to your site of choice. As of today Facebook, Photobucket and Picasa Web album is supported. Flickr should be there soon as well.</p>
<p><strong>Annoyance warning: PS Express puts a caption on its own on all photos you upload back to Facebook. Meh.</strong></p>
<p><img src="http://dev.gerillafilm.se/wp-content/uploads/2008/04/psexp.jpg" alt="psexp.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gerillafilm.se/mjukvara/adobe-photoshop-express-cloudy-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.gerillafilm.se/category/web/feed/ ) in 0.60734 seconds, on Feb 7th, 2012 at 9:17 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 8th, 2012 at 2:41 am UTC -->
