<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.6.1" -->
<rss version="0.92">
<channel>
	<title>Vincent Janelle</title>
	<link>http://vancouverlinuxguy.com/blog</link>
	<description>My blog sucks.</description>
	<lastBuildDate>Tue, 19 Aug 2008 19:38:16 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>drupal node validation unique title with locks</title>
		<description>
/**
 * Implementation of hook_validate().
 */

function hook_validate($node, &$form) {
  $lock = "SELECT GET_LOCK('hook_validate_lock', 60)";

  $result = 0; 
  $count = 0;

  while ( $result != 1) {
    $result = db_query($lock); 
    $result = db_result($result);
  }

  // Search for ...</description>
		<link>http://vancouverlinuxguy.com/blog/2008/08/19/drupal-node-validation-unique-title-with-locks/</link>
			</item>
	<item>
		<title>Wow, call_user_func is slow (testing php class implementations vs call_user_func)</title>
		<description>Wrote this little microbench to test php class based implementations as a method of writing modular code.   No idea if it's actually a valid test or not.

Results:

float(0.29755711555481)
float(0.87803196907043)

Code below:



Pretty version of this

&#60;?php

interface iTest {
public function getTrue();
public function getFalse();
}

class Foo implements iTest {
public function getTrue() {
return TRUE;
}

public function getFalse() {
return FALSE;
}
}

class Bar ...</description>
		<link>http://vancouverlinuxguy.com/blog/2008/08/08/wow-call_user_func-is-slow-testing-php-class-implementations-vs-call_user_func/</link>
			</item>
	<item>
		<title>Merging objects in php</title>
		<description>I swear, stdClass in php are just associative arrays without builtin functions to do this crap.

$foo1 = new stdClass();
$foo2 = new stdClass();

$foo3 = new stdClass();

$foo1-&#62;one = "1";
$foo2-&#62;two = "2";

foreach ( $foo1 as $key =&#62; $value ) {
$foo3-&#62;$key = $value;
}
foreach ( $foo2 as $key =&#62; $value ) {
$foo3-&#62;$key = $value;
}

var_dump($foo3); </description>
		<link>http://vancouverlinuxguy.com/blog/2008/07/30/merging-objects-in-php/</link>
			</item>
	<item>
		<title>Cooking with Vince (With other people&#8217;s recipies)</title>
		<description>Stuffed Peppers Recipe with Rice and Cheese - Recipe for Stuffed Red BellOm nom nom. </description>
		<link>http://vancouverlinuxguy.com/blog/2008/07/05/cooking-with-vince-with-other-peoples-recipies/</link>
			</item>
	<item>
		<title>Moved to Slicehost</title>
		<description>Giving up on dreamhost, tired of the slow page loads, overloaded databases, etc.

Trying out slicehost for the next few months, seems ok so far since it gives me a playground for my other more interesting things involving java that I want to play with. </description>
		<link>http://vancouverlinuxguy.com/blog/2008/07/01/moved-to-slicehost/</link>
			</item>
	<item>
		<title>Itunes remote</title>
		<description>Technorati Tags: itunes remote, itunes, applescript

This nifty little application (http://www.delicioussuite.com/technology/deliciousfun/applications/remote_itunes.html) allows you to remotely control remote instances of itunes using remote applescript events (see http://docs.info.apple.com/article.html?path=Mac/10.4/en/mh896.html on how to enable, you'll need to make sure your account has a password).

Current limitations like sorting your list doesn't work, but if you have ...</description>
		<link>http://vancouverlinuxguy.com/blog/2008/06/07/itunes-remote/</link>
			</item>
	<item>
		<title>Grails AcegiSecurity Create User on BootStrap</title>
		<description>To create users on startup with a blank database:



import org.codehaus.groovy.grails.web.servlet.GrailsApplicationAttributes
class BootStrap {
def init = { servletContext -&#62;
new Role(description:"Administrators", authority:"ROLE_ADMIN").save();
new Role(description:"User", authority:"ROLE_USER").save();
def ctx = servletContext.getAttribute(GrailsApplicationAttributes.APPLICATION_CONTEXT);
def authService =  ctx.getBean("authenticateService");
def pass = authService.passwordEncoder('aPasswordGoesHere');
def config = authService.securityConfig;
def defaultRole = config.security.defaultRole;
def role = Role.findByAuthority(defaultRole);
def adminRole = Role.findByAuthority("ROLE_ADMIN");
def p = new User(username:"admin"
,passwd:pass
,enabled:true
,email:'test@example.com',
,userRealName:"Default Admin");
role.addToPeople(p);
adminRole.addToPeople(p);
if (p.save())
println("Created default admin");
else ...</description>
		<link>http://vancouverlinuxguy.com/blog/2008/06/05/grails-acegisecurity-create-user-on-bootstrap/</link>
			</item>
	<item>
		<title>Using services from bootstrap.groovy in grails</title>
		<description>I'm currently writing an application for some upcoming strutta.com functionality using grails.  During development though, I have it setup to recreate my data everytime I restart the server, and then I repopulate from a seperate source.

I do have a controller setup to manually import specific ids from the head end ...</description>
		<link>http://vancouverlinuxguy.com/blog/2008/06/04/using-services-from-bootstrapgroovy-in-grails/</link>
			</item>
	<item>
		<title>links for 2008-04-12</title>
		<description>
	
		Amazon S3: Browser-Based Uploads using POST
		(tags: amazon s3 post upload aws)
	
 </description>
		<link>http://vancouverlinuxguy.com/blog/2008/04/12/links-for-2008-04-12/</link>
			</item>
	<item>
		<title>links for 2008-04-10</title>
		<description>
	
		Installing lighttpd and PHP 5 with FastCGI on CentOS 5 x86_64
		(tags: centos php fastcgi lighttpd)
	
 </description>
		<link>http://vancouverlinuxguy.com/blog/2008/04/10/links-for-2008-04-10/</link>
			</item>
</channel>
</rss>
