Lets Get Dugg!



I updated the site to fix the feeds that send out urls for http://letsgetdugg.com:9010/*. The issue stemmed from Catalyst not being able to handle proper URL generation for backend servers with the HTTPD engine. Most people tend to run with the FastCGI engine and this issue does not happen there.

Since this is a on-the-seat-of-my-pants fix, My default Typeface theme is out of action, so I have to use the ported wordpress 'connections' theme by vanillamist for now. I am refactoring Typeface's template support to make WordPress theme porting easier.

Plugin to solve the uri_for url generation

Add this to your Application.pm in your lib/ directory.

and this should solve all your url woes.

-Victor


Not everyone chooses to go the FCGI way of deploying their web applications. Some people, like I, prefer deploying applications under Catalyst's httpd or Rails' Mongrel. Unfortunately, Lighttpd at this time (version 1.4.13) has a inept mod_proxy module. It does not load balance correctly and nor does it recover from a downed proxy node, requiring a full restart. Obviously this is unacceptable when it comes to a production system.

deployment

Pound comes in and saves the day. It is a fast load balancing proxy that claims it can handle 600 requests/sec. The deployment of choice here is Lighttpd => Pound => web application. However, there is a small snag, Pound appends X-Forwarded-for headers without an option to disable it. So every request that comes in from Pound to your web application comes with "X-Forwarded-For: 127.0.0.1." This means you can't tell from where the client came from. Here is the solution to remedy this issue, but it requires some hacking on the Pound source.

Open http.c and comment out line 902 and 903
====

You basically want to comment out the top two lines. With this out of the way Pound does not append the extra X-Forwarded-for headers. You should now be able to receive the originating IP address of the client connected to your web application.

Now to finish up. Configuring Lighttpd to pass along to Pound and then to your web application.

Sample Lighttpd configuration

$HTTP["host"] =~ "^letsgetdugg.com$|^www.letsgetdugg.com$" {
    server.document-root        ="/home/victori/servers/letsgetdugg/root"
    dir-listing.activate        = "disable"
    accesslog.filename          = "/var/www/lighttpd/log/letsgetdugg.access.log"
    server.errorlog             = "/var/www/lighttpd/log/letsgetdugg.error.log"
    $HTTP["url"] !~ "static/" {
        proxy.server = ( "" => ( "Letsgetdugg" => ( "host" => "127.0.0.1" , "port" => 7999, "check-local" => "disable" )))	 
    }
}

We make sure that anything in /static does not get sent to your web application but gets processed by Lighttpd.

Sample Pound configuration

ListenHTTP 
  Address 127.0.0.1 
  Port    7999 
  Service
    HeadRequire "Host: .*letsgetdugg.com.*"
    BackEnd
      Address 127.0.0.1
      Port    9010
    End
    BackEnd
      Address 127.0.0.1
      Port    9011
    End
    BackEnd
      Address 127.0.0.1
      Port    9012
    End
  End

Thats all! This deployment should suffice till Lighttpd 1.5 goes stable.


New version of Typeface. One too many things to list of what has changed. Just check it out for your self.


This is a simple video tour of photoshop CS3. The first thing that struck me about CS3 is the artwork or lack of. The icons and the About menu lack graphic polish. Did someone get fired in the artistic department? Well this is a beta, so lets move on.

The first thing that you will notice that is drastically changed in photoshop CS3 is the palette menu. It is one single column now. Concerning the palette menu, I can't tell if anything is missing, since I don't use photoshop throughly like some graphic designers do. Next what I noticed is the "Save for Web" menu has been changed for "Save for Web & Device." It seems like Adobe is providing the utilities for graphic designers to target embedded devices such as PDAs and cell phones.

Lastly, what struck me is the new way of handling the right hand palettes. It seems they can be docked and folded out. Also it seems like Adobe presented 3 new viewing modes for OS X photoshop; maximized screen mode, full screen mode, and standard screen mode. Fairly cool features, however, I think I will stick with the default standard screen mode.

This was a bit rushed, so the overview is very brief and I neglected covering Adobe Bridge. However, this does give you a casual glance at what has been changed in CS3.

Just a note, Bridge is still as slow as ever!

Yes, you can try out CS3 without a serial key for 30 days 2 days!


This is my Catalyst Textmate bundle. It features snippet shortcuts that should make you a more productive Catalyst developer. Happy coding.

Catalyst/trunk/misc/textmate_bundle/

Use SVN to grab it.

So what can you do with it?

Snippet Command
Output
csub

default Catalyst controller method.

body

$c->res->body()

forward

$c->forward()

param

$c->req->params->{}

stash

$c->stash->{}

tmpl

$c->stash->{template} = ''

flash

$c->flash->{}

headers

$c->req->headers->{}

model

$c->model('::')->.


Parallel's new coherence feature in action.

Pretty amazing stuff if you ask me.


My first Catalyst screencast.

I used my view helper TTSimple.

Enjoy!


- Fourth release, a bit more user friendly than before.

Fixed:
Fixed all remaining IE render issues.
Cleaned up CSS.
Fixed caching issues with cache::store::fastmmap.
Code clean up.
Fixed miscellaneous metaweblog xmlrpc issues.
Fixed time in words to not be dependent on a single time zone.
Cleaned up documentation.

New Features:
Added install script to bootstrap the initial user.