Collecting the Internet So You Don't Have To

We work on the Internet. As such, we are constantly consuming information. Believe me, there is a lot of it out there. Sometimes we even forget things unless we write them down. Our blog covers everything from web standards to the muppets, php to comic books, music and everything else that we find interesting. Leave us a note when you drop by.

SCU Launches its new online presence

Design
Ross McDowall
Ross McDowall Senior Web Developer
Visual Lizard
work
1 (204) 957-5520 ext:151
toll-free
1 (888) 237-9559
url
http://www.visuallizard.com
Ross McDowall Fearless Dwarven Warrior

Steinbach Credit Union has relaunched its website with a new look. In preparation for a change in its online banking software and after four years with its previous layout, SCU was looking for a fresh look. The latest version of the SCU site has provided SCU with our new and improved Catalyst 4.0 Content Management System.

The new CMS provides them with substantial flexibility in placing their content throughout the site. The content administration is very straight forward and keeps the content separate from the design and layout which allows the site to have a cohesive look during the maintenance and updating of their content.

The design presented us with some specific coding and stylistic challenges.

The home page displaying the three section options had to display horizontally centred dependent on how tall the browser window was set, and if the user changed the size of the window, the positioning would adjust to compensate. Using some specific javascript and css rules we were able to accomplish this. Once we had it working in highly standards compliant browsers we moved on to making it work on those browsers that have not yet worked out all of their standards issues.

/

On the three landing pages we were asked to provide some customization functionality in order to personalize the user’s experience on the site. We built and provided a few widgets for this personalization. For those people who registered to customize their landing pages, they can choose from up to three little widgets at this point.

/

There is a Stock Watch, Weather and Currency Conversion widget to choose from.

/

/

Additional touches to the site included some javascript functionality to slide content left and right so as not to have the page scroll. With some creative css and javascript coding we were able to achieve a site that while some pages require scrolling, the navigation and footer do not move or disappear allowing the user to have constant access to their navigation.

/

In a number of cases the design which we had to apply to the site was somewhat counter-intuitive to what is standard practice in web development, however with a lot of work we were able to provide SCU with the design they wanted working the way they wanted. It must be remembered at all times in the service industry that the client’s perception is always correct.

The New Guy at Visual Lizard

General

Today was my first day at Visual Lizard and I have come to the conclusion that I have a lot to learn about this new highly-technical, constantly-changing world of modern web media.

Julian and Doug have hired me as a part-time writer to work on a few of Visual Lizard’s current projects, including the Canadian Tumour Repository Network website and it’s related applications. A significant portion of my responsibilities here will involve writing for Visual Lizard’s web page and web projects which require quick, accessible built-in documentation for users. I will assist in writing business proposals and will occasionally write blogs and post updates for sites such as Winnipegfirst.ca.

Presently, I have to say that my technological prowess is pretty ordinary.  I have been using computers since I was 10 years old (I’m 27) and although I use my laptop on an everyday basis, it is usually to check my e-mail, surf social networking sites like Facebook and Twitter and use basic programs like Microsoft Word and Microsoft Excel.  

I recently graduated from the two-year Creative Communications program at Red River College with a major in Journalism where we used programs like Final Cut Pro, Pro Tools and to a lesser degree, InDesign and Photo Shop so I can at least say that I have a working knowledge of various video, audio and image editing programs.

However, Visual Lizard is involved in complex website development and the software and language is all new to this guy.  Content management systems, encoding, core framework and Google Analytics are all terms that are alien to me at this point, but I’m sure that in two weeks time I will be telling you all about how I wrote some mad documentation for the metadata repository (I really don’t know what that means).

So I’m excited to learn more about the world of web design and development even if it is not what I went to school for. I am lucky enough to be working in a modern new office environment on a 20-inch iMac with a group of six awesome people that were willing to take me on as a new employee, even if it’s only on a short term basis.

I look forward to learning how to explain how to use web applications and databases to users as it is a new and challenging experience for someone with my limited experience. I am also eager to work with a great group of people who will have to be patient with someone who doesn’t know a lot of computer programming terminology or how to navigate Visual Lizard’s Catalyst Content Management System just yet.  I am not worried at all though as everyone seems to be willing to give me enough time to grow, listen, absorb and learn, even if that means that I might trip over myself a few times along the way.

Transformers: Revenge of the Fallen

Event
Wil Alambre
Wil Alambre Senior Programmer
Visual Lizard
work
1 (204) 957-5520 ext:152
toll-free
1 (888) 237-9559
url
http://www.visuallizard.com
Wil Alambre Whiteboard Ninja

Release Date: June 24, 2009 (conventional theaters and IMAX)
Studio: DreamWorks Pictures (Paramount)
Director: Michael Bay
Screenwriter: Ehren KrugerRoberto OrciAlex Kurtzman
Starring: Shia LaBeoufMegan FoxJosh DuhamelTyrese GibsonKevin DunnJulie WhiteJohn Benjamin HickeyRamon RodriguezIsabel LucasJohn Turturro
Genre: Action, Adventure, Sci-Fi
MPAA Rating: PG-13 (for intense sequences of sci-fi action violence, language, some crude and sexual material, and brief drug material)
Official Website: Transformersmovie.com | MySpace.com/Transformers
Review: Not Available
DVD Review: Not Available
DVD: Not Available
Movie Poster: One-Sheet | Poster 1 | Poster 2 | Poster 3 | Teaser
Production Stills: View here
Plot Summary: In the highly-anticipated "Transformers: Revenge of the Fallen," debuting June 24, 2009, Sam Witwicky (Shia LaBeouf) again joins with the Autobots® against their sworn enemies, the Decepticons®. Michael Bay directs from a screenplay by Ehren Kruger & Roberto Orci & Alex Kurtzman.

Slow Acl->check() calls in CakePHP

Functionality
Dwayne Kristjanson
Dwayne Kristjanson Senior Programmer
Visual Lizard
work
1 (204) 957-5520 ext:154
toll-free
1 (888) 237-9559
url
http://www.visuallizard.com
Dwayne Kristjanson Indifference Engine

For version 2 of one of our projects we made the decision to scrap the customized access control from version 1 and make use of the ACL functionality built-in to Cake. Which seemed like the right way to go, that way we’d benefit from improvements to this feature in Cake itself and would have one less thing to worry about. That was almost certainly the right decision, but we very quickly ran into issues with page load times. For most Cake applications the existing ACL functionality is probably fine, but in this case we wanted to know if a user had permission to access certain functionality before displaying a link to it. So we were running multiple calls to Acl->check() on every page load, which quickly bogged things down.

Looking into things made it pretty obvious we weren’t the only ones with this problem. There were suggestions for tuning that we implemented, but that didn’t solve the problem. So today I sat down to dig into this again. The root of the problem was with a particular slow query that (in the case of my development machine) took around 200 ms to run:

SELECT
	`Aco`.`id`, 
	`Aco`.`parent_id`,
	`Aco`.`model`,
	`Aco`.`foreign_key`,
	`Aco`.`alias`
FROM
	`acos` AS `Aco`
	LEFT JOIN `acos` AS `Aco0`
		ON (`Aco0`.`alias` = ’controllers’)
	LEFT JOIN `acos` AS `Aco1`
		ON (
			`Aco1`.`lft` > `Aco0`.`lft`
			AND `Aco1`.`rght` < `Aco0`.`rght`
			AND `Aco1`.`alias` = ’App’
		)
	LEFT JOIN `acos` AS `Aco2`
		ON (
			`Aco2`.`lft` > `Aco1`.`lft`
			AND `Aco2`.`rght` < `Aco1`.`rght`
			AND `Aco2`.`alias` = ’Menus’
		)
	LEFT JOIN `acos` AS `Aco3`
		ON (
			`Aco3`.`lft` > `Aco2`.`lft`
			AND `Aco3`.`rght` < `Aco2`.`rght`
			AND `Aco3`.`alias` = ’index’
		)
WHERE
	(
		(
			`Aco`.`lft` <= `Aco0`.`lft`
			AND `Aco`.`rght` >= `Aco0`.`rght`
		) OR (
			`Aco`.`lft` <= `Aco3`.`lft`
			AND `Aco`.`rght` >= `Aco3`.`rght`
		)
	)
ORDER BY
	`Aco`.`lft` DESC

In this query Cake’s ACL routine is looking for rules matching controllers/App/Menus/index to see whether or not the current user should be allowed in. My first thought was caching the results of these queries, but when I looked at what was running I found that it wasn’t the same query over and over, but rather a large number of similar queries that each took around 200ms to run. So I’d need to speed up the query the first time it ran, not the second time.

So I tried messing around with the SQL directly. Surprisingly, the first thing I tried seemed to work. I moved the lft and rght conditions out of the ON clauses and into the WHERE clause:

 

SELECT
	`Aco`.`id`,
	`Aco`.`parent_id`,
	`Aco`.`model`,
	`Aco`.`foreign_key`,
	`Aco`.`alias`
FROM
	`acos` AS `Aco`
	LEFT JOIN `acos` AS `Aco0`
		ON (`Aco0`.`alias` = ’controllers’)
	LEFT JOIN `acos` AS `Aco1`
		ON (`Aco1`.`alias` = ’App’)
	LEFT JOIN `acos` AS `Aco2`
		ON ( `Aco2`.`alias` = ’Menus’)
	LEFT JOIN `acos` AS `Aco3`
		ON (`Aco3`.`alias` = ’index’)
WHERE
	`Aco1`.`lft` > `Aco0`.`lft`
	AND `Aco1`.`rght` < `Aco0`.`rght`
	AND `Aco2`.`lft` > `Aco1`.`lft`
	AND `Aco2`.`rght` < `Aco1`.`rght`
	AND `Aco3`.`lft` > `Aco2`.`lft`
	AND `Aco3`.`rght` < `Aco2`.`rght`
	AND (
		(
			`Aco`.`lft` <= `Aco0`.`lft`
			AND `Aco`.`rght` >= `Aco0`.`rght`
		) OR (
			`Aco`.`lft` <= `Aco3`.`lft`
			AND `Aco`.`rght` >= `Aco3`.`rght`
		)
	)
ORDER BY
	`Aco`.`lft` DESC

So, now I knew what the problem was, but I didn’t yet know where it was coming from or how to solve the problem. A bit more digging revealed that the SQL was generated in cake/libs/model/db_acl.php in the node() method of class AclNode. This allowed me to add in a custom model MyAcl that did the following:

  1. Defined custom MyAco and MyAro classes that extended Aco and Aro and redefined the node() method to use the faster SQL from above.
  2. Defined a custom MyAcl class that extended DbAcl and redefined the constructor to use MyAco and MyAro instead of Aro and Aco.
  3. Changed core.php to use MyAcl as Acl.classname. I added an App::import("model","MyAcl") before the Configure::write() statement to ensure the model would be available.

 With these changes in place things ran much, much faster. Now I just need to figure out some of proving to myself that my new SQL is actually equivalent to what was being generated before.

Where The Wild Things Are

Event
Wil Alambre
Wil Alambre Senior Programmer
Visual Lizard
work
1 (204) 957-5520 ext:152
toll-free
1 (888) 237-9559
url
http://www.visuallizard.com
Wil Alambre Whiteboard Ninja

Release Date: October 16, 2009
Studio: Warner Bros. Pictures
Director: Spike Jonze
Screenwriter: Spike JonzeDave Eggers
Starring: Catherine KeenerMax RecordsMark RuffaloLauren AmbroseJames GandolfiniCatherine O’HaraForest Whitaker
Genre: Adventure
MPAA Rating: Not Available
Official Website: WheretheWildThingsAre.com
Review: Not Available
DVD Review: Not Available
DVD: Not Available
Movie Poster: View here
Production Stills: View here
Plot Summary: Maurice Sendak’s classic book "Where the Wild Things Are" comes to the big screen in an adventure tale for every generation.

Wolverine, Old Man Logan

Event
Wil Alambre
Wil Alambre Senior Programmer
Visual Lizard
work
1 (204) 957-5520 ext:152
toll-free
1 (888) 237-9559
url
http://www.visuallizard.com
Wil Alambre Whiteboard Ninja

The Story: MARK MILLAR and STEVE MCNIVEN—who last teamed for the monumental CIVIL WAR—bring us the most important WOLVERINE story of the 21st Century. Nobody knows what happened on the night the heroes fell. All we know is that they disappeared and evil triumphed and the bad guys have been calling the shots ever since. What happened to Wolverine is the biggest mystery of all. For 50 years, no one has heard hide nor hair from him…and in his place stands an old man called Logan. A man concerned only about his family. A man pushed to the brink by the HULK GANG. A man forced to help an old friend—the blind archer, HAWKEYE—to drive three thousand miles to secure his family’s safety. Get ready for the ride of your life, Logan. Collecting WOLVERINE #66-72 & WOLVERINE GIANT-SIZE OLD MAN LOGAN. Parental Advisory …$34.99 

MagnaCarta 2

Event
Wil Alambre
Wil Alambre Senior Programmer
Visual Lizard
work
1 (204) 957-5520 ext:152
toll-free
1 (888) 237-9559
url
http://www.visuallizard.com
Wil Alambre Whiteboard Ninja

 

src="http://www.ebgames.com/gs/gscinema/gsprodvideo_top.jpg"
src="http://www.ebgames.com/gs/gscinema/gsprodvideo_left.jpg" src="http://www.ebgames.com/gs/gscinema/gsprodvideo_right.jpg"
src="http://www.ebgames.com/gs/gscinema/gsprodvideo_bottom.jpg"
src="http://www.ebgames.com/common/gui/clear.gif"

Love, war and destiny intertwine in an all-new role-playing adventure!

The shadow of civil war looms over the kingdom of Lanzheim and Juto, a boy with no recollection of his past may be the key to ending the cycle of bloodshed. Magnacarta 2 delivers a unique role-playing experience that combines real-time action, timing-based attacks, over-drive combinations and the strategic use of skills, magical power and critical attacks on a journey to discover one’s true destiny in the midst of tragedy and 

 

  • Unparalleled graphics: Beautifully detailed graphics powered by the Unreal Engine 3.
  • Deep storyline: Original storyline driven by intense themes of love, war, politics, sacrifice and the ultimate question of choosing one’s own fate told through beautifully rendered CGI cut-scenes.
  • Dynamic battle system: A fresh twist on combat that combines strategic turn-based battle concepts and real time gameplay that seamlessly blends world navigation and fighting without any load times or interruptions.
  • Unique visual style: A stunning and distinctive photo-realistic manga style with character designs by famed Korean artist Hyung-Tae Kim.

Brutal Legend

Event
Wil Alambre
Wil Alambre Senior Programmer
Visual Lizard
work
1 (204) 957-5520 ext:152
toll-free
1 (888) 237-9559
url
http://www.visuallizard.com
Wil Alambre Whiteboard Ninja

Brütal Legend marries visceral action combat with open-world freedom, set in a universe somewhere between Lord of the Rings and Spinal Tap. It’s a fresh take on the action/driving genre, which is full of imitation cover bands. The vivid and wildly creative world of Brütal Legend is brought to life through a spate of chrome, leather, rocker babes, epic music, fire-breathing/stud-wearing beasts, mountains made of guitar amps, and more. Follow Eddie as he embarks on a tour of epic destruction with an axe, a guitar, and his minions as he commands the power of rock in epic band battles. It’s lighter-flicking awesomeness that will melt your face clean off.

This Is Why I Love Whiteboards

Design
Wil Alambre
Wil Alambre Senior Programmer
Visual Lizard
work
1 (204) 957-5520 ext:152
toll-free
1 (888) 237-9559
url
http://www.visuallizard.com
Wil Alambre Whiteboard Ninja

Yesterday, what I thought was going to be a quick thirty minute task turned into a six hour interface rebuild. Sometimes, you just need to step back from the screen and rethink the whole thing... preferably with smelly markers and lots of drawing space!

Easily one of my favourite additions to the Visual Lizard offices is the wall of whiteboards directly behind our workspace. More than once, I’ve needed to bounce an idea of one of the others, and having a giant drawing surface within reach makes everything easier.

The to-do item I was tasked with started out simple enough, but quickly became very convoluted, with concepts and variables conflicting all over the place... and it seemed every solution only twisted something else out of shape! Inevitably, I was forced to step away from it for bit to clear my head (and have lunch). When I got back, Dwayne and I approached the problem on the whiteboard, trying to wrap our head around what we were trying to accomplish without any code getting in the way.

Toggle/Reveal UI

In the end, we were able to quickly turn my growing problem-task into a series of coherent requirements, and a couple hours later, I was not only finished, but had managed to add some functional and aesthetic improvements. :)

"On Screen Manitoba" Launches

Design
Wil Alambre
Wil Alambre Senior Programmer
Visual Lizard
work
1 (204) 957-5520 ext:152
toll-free
1 (888) 237-9559
url
http://www.visuallizard.com
Wil Alambre Whiteboard Ninja

Working with Visual Lizard and Guppy Design, On Screen Manitoba has revamped and relaunched it’s website!

Click to visit On Screen Manitoba

The new website features all the information it’s visitors and On Screen Manitoba members have come to rely on, but now sports a number of new additions. Keep track on important upcoming dates or events, look over past events in the photo galleries, enjoy trailers and promo reels in the video gallery, and members can update their directory profiles by logging in behind-the-scenes!

Click to visit On Screen Manitoba

On Screen Manitoba is an innovative membership-driven association that leads, builds and represents the Manitoba motion picture industry. Their membership represents the full spectrum of individuals and organizations (production companies, labour groups, distributors, broadcasters, suppliers and supporting organizations) that make up the motion picture industry in Manitoba.