POST DETAILS
Posted on 13/1/10
Written by
Number of Comments: 0
Posted in LilBlogs

WYSIWYG CakePHP plugin for LilBlogs 2.0

LilBlogs 2.0 beta is almost complete. It will be released within few days.

The only thing that is currently bothering me is LilBlogs still being a CakePHP 1.2 application. Although blogs plugin runs smoothly with CakePHP 1.3, there are still some minor hiccups.

Assets for example. CakePHP 1.3 introduces a new directory structure for plugin and theme assets. Therefore LilBlogs 2.0 will probably be splitted in two "branches" - one for CakePHP 1.2.x and the other one for CakePHP 1.3.

This means more work maintaining the LilBlogs plugin, but I think it is necessary for keeping users /you/ happy.

POST DETAILS
Posted on 17/10/09
Written by
Number of Comments: 0
Posted in LilBlogs

First contributor to LilBlogs

Yes. There are other LilBlogs users besides me. Ramon has just sent me Dutch translation of LilBlogs. But wait, there's more. A first spam message has been also posted to LilBlogs Google Group... :)

Thanks again.

POST DETAILS
Posted on 15/10/09
Written by
Number of Comments: 2
Posted in LilBlogs

Testing LilBlogs 2.0 pre alpha

I've just switched to pre-alpha version of LilBlogs 2.0. Testing to see how it works in production env. Uh, some hiccups are already showing up.

BTW... check it under branches on LilBlogs Google Code

POST DETAILS
Posted on 9/9/09
Written by
Number of Comments: 1
Posted in LilBlogs

Simple news theme for LilBlogs

I've created a simple, "news" theme for LilBlogs. This example clearly shows all powers of CakePHP theming engine. It rocks!

Click here to see preview of "news" theme on this blog.

Here's a download link. All you have to do it to extract your theme to your webroot/plugins/lil_blogs/themed folder and either set it as default theme with Configure::write('LilBlogsPlugin.defaultTheme', 'news') or update theme field in your "blogs" table.

Have fun. And please... if you have your own LilBlogs theme and you're willing to share it, please send it to me and I'll publish your link or even your theme package here.

POST DETAILS
Posted on 25/5/09
Written by
Number of Comments: 2

Quick Optimization of CakePHP Application with YSlow

I run a busy Slovenian site featuring weather radar image on Google maps - vreme.malamalca.com . It is a simple CakePHP app which collects weather and radar data, stores it in cache and outputs it in friendly format.

Recently my site is receiving some heavy traffic due to high probability of hail storms which are result of high temperatures - around 35° (95°F). Everyone wants to check if their car /or home/ is in immediate danger. Bad weather is causing high spikes of traffic and sluggish response times.

After checking my site with YSlow, it got "F" grade. My site needed some improvements. There are some steps I took which got my site to grade "B" of YSlow:

  1. I changed my cache engine to APC. This had a tremendous effect in responsiveness of my app (although it is not graded by YSlow)
  2. Next step was implementation of some Apache directives in .htacces in /webroot folder:

Here are new .htaccess contents:

	RewriteEngine On
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

	# compress content with type html, text, and css
	AddOutputFilterByType DEFLATE text/plain
	AddOutputFilterByType DEFLATE text/html
	AddOutputFilterByType DEFLATE text/xml
	AddOutputFilterByType DEFLATE text/css
	AddOutputFilterByType DEFLATE text/javascript
	AddOutputFilterByType DEFLATE application/xml
	AddOutputFilterByType DEFLATE application/xhtml+xml
	AddOutputFilterByType DEFLATE application/rss+xml
	AddOutputFilterByType DEFLATE application/javascript
	AddOutputFilterByType DEFLATE application/x-javascript

	BrowserMatch ^Mozilla/4 gzip-only-text/html
	BrowserMatch ^Mozilla/4\.0[678] no-gzip
	BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

	#AddOutputFilter DEFLATE js css
	# properly handle requests coming from behind proxies
	Header append Vary User-Agent

	ExpiresActive On
	ExpiresByType application/javascript "access plus 10 years"
	ExpiresByType text/css "access plus 10 years"
	ExpiresByType text/js "access plus 10 years"
	ExpiresByType text/javascript "access plus 10 years"
	ExpiresByType application/x-javascript "access plus 10 years"
	ExpiresByType image/png "access plus 10 years"
	ExpiresByType image/gif "access plus 10 years"
	ExpiresByType image/jpeg "access plus 10 years"

	FileETag none

These adjustments made my site usable again even in spikes of 500 users per minute.

Note: some aditional warnings... this directives extend duration of cached items in your browser. You should know what are you trying to achieve.