<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-8010254895780061626</id><updated>2008-01-22T12:22:50.664-08:00</updated><title type='text'>lifeofbrian.org</title><link rel='alternate' type='text/html' href='http://www.lifeofbrian.org/blog/'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.lifeofbrian.org/blog/atom.xml'/><author><name>Brian Mansell</name></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8010254895780061626.post-1599842898222380947</id><published>2008-01-22T12:00:00.000-08:00</published><updated>2008-01-22T12:22:37.113-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='macbook'/><category scheme='http://www.blogger.com/atom/ns#' term='gtd'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Patience is a virtue</title><summary type='text'> Here's hoping that Apple decides to ship my new laptop sooner rather than later. This 'secondary machine' as I've coined it, will be useful in the daily migration of projects between work, school, and home. Also, the ability to watch movies on occasion is an added benefit.</summary><link rel='alternate' type='text/html' href='http://www.lifeofbrian.org/blog/2008/01/patience-is-virtue.html' title='Patience is a virtue'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8010254895780061626&amp;postID=1599842898222380947' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lifeofbrian.org/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/1599842898222380947'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/1599842898222380947'/><author><name>Brian Mansell</name></author></entry><entry><id>tag:blogger.com,1999:blog-8010254895780061626.post-5085512164607329821</id><published>2008-01-18T09:49:00.001-08:00</published><updated>2008-01-18T09:53:03.659-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgres mysql'/><title type='text'>MySQL to Postgres: SHOW FULL PROCESSLIST</title><summary type='text'>Over the next few weeks, I'll make an attempt to share a few tips on learning PostgreSQL from a MySQL user's prospective

SHOW FULL PROCESSLIST / SHOW PROCESSLIST

Start up the Postgres shell  (psql)
select * from pg_stat_activity;

From here you will see the client details, query, the state of the query, and the timestamp from when it was executed.</summary><link rel='alternate' type='text/html' href='http://www.lifeofbrian.org/blog/2008/01/mysql-to-postgres-show-full-processlist.html' title='MySQL to Postgres: SHOW FULL PROCESSLIST'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8010254895780061626&amp;postID=5085512164607329821' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lifeofbrian.org/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/5085512164607329821'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/5085512164607329821'/><author><name>Brian Mansell</name></author></entry><entry><id>tag:blogger.com,1999:blog-8010254895780061626.post-5137193491939096348</id><published>2007-12-07T08:32:00.000-08:00</published><updated>2007-12-07T08:35:43.312-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>T_PAAMAYIM_NEKUDOTAYIM</title><summary type='text'>aka... Scope Resolution Operator (::) in PHP.

From Wikipedia:
Paamayim Nekudotayim (IPA: [paʔamajim nəkudotajim]) is the official name for the Scope Resolution Operator (::) in PHP. It means "twice colon" or "double colon" in Hebrew.
Nekudotayim (נקודתיים) means 'colon'; it comes from nekuda (IPA: [nəkuda]), 'point' or 'dot', and the dual suffix ayim (יים-), hence 'two points'. Similarly, the </summary><link rel='alternate' type='text/html' href='http://www.lifeofbrian.org/blog/2007/12/tpaamayimnekudotayim.html' title='T_PAAMAYIM_NEKUDOTAYIM'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8010254895780061626&amp;postID=5137193491939096348' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lifeofbrian.org/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/5137193491939096348'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/5137193491939096348'/><author><name>Brian Mansell</name></author></entry><entry><id>tag:blogger.com,1999:blog-8010254895780061626.post-504425107244205393</id><published>2007-11-08T08:39:00.000-08:00</published><updated>2007-11-08T08:42:23.804-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>MySQL:  EXPLAIN EXTENDED</title><summary type='text'>In this older article, Peter Zaitsev (a MySQL guru) explains a somewhat rarely discussed feature introduced in MySQL 4.1 known as the Extended Explain. 

One nice feature added for EXPLAIN statement in MySQL 4.1 is EXTENDED keyword which provides you with some helpful additional information on query optimization. It should be used together with SHOW WARNINGS to get information about how query </summary><link rel='alternate' type='text/html' href='http://www.lifeofbrian.org/blog/2007/11/mysql-explain-extended.html' title='MySQL:  EXPLAIN EXTENDED'/><link rel='related' href='http://www.mysqlperformanceblog.com/2006/07/24/extended-explain/' title='MySQL:  EXPLAIN EXTENDED'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8010254895780061626&amp;postID=504425107244205393' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lifeofbrian.org/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/504425107244205393'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/504425107244205393'/><author><name>Brian Mansell</name></author></entry><entry><id>tag:blogger.com,1999:blog-8010254895780061626.post-2856318563240501969</id><published>2007-10-31T10:40:00.000-07:00</published><updated>2007-10-31T11:11:16.545-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='halloween'/><category scheme='http://www.blogger.com/atom/ns#' term='costume'/><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>BREAKING NEWS: Beware of fake Halloween teeth</title><summary type='text'>From our friends at the Associated Press:
WASHINGTON - The Consumer Product Safety Commission announced an 11th-hour recall Wednesday to warn consumers that fake Halloween teeth sold by the tens of thousands since last year contain excessive amounts of lead.

I'm glad I left my fake Halloween teeth at home on this Halloween day.</summary><link rel='alternate' type='text/html' href='http://www.lifeofbrian.org/blog/2007/10/breaking-news-beware-of-fake-halloween.html' title='BREAKING NEWS: Beware of fake Halloween teeth'/><link rel='related' href='http://www.msnbc.msn.com/id/21562611/' title='BREAKING NEWS: Beware of fake Halloween teeth'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8010254895780061626&amp;postID=2856318563240501969' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lifeofbrian.org/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/2856318563240501969'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/2856318563240501969'/><author><name>Brian Mansell</name></author></entry><entry><id>tag:blogger.com,1999:blog-8010254895780061626.post-1107425859037358029</id><published>2007-10-24T14:54:00.000-07:00</published><updated>2008-01-22T12:22:50.696-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='gtd'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Basic Task Management with Apple Mail</title><summary type='text'>I've found that one of the easiest ways to keep up with task requests from others is to simply flag the messages and then make an effort to review the flagged messages queue twice a day.

To take advantage of this feature, make sure that the flag icon column appears in your mail listing.</summary><link rel='alternate' type='text/html' href='http://www.lifeofbrian.org/blog/2007/10/basic-task-management-with-apple-mail.html' title='Basic Task Management with Apple Mail'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8010254895780061626&amp;postID=1107425859037358029' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lifeofbrian.org/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/1107425859037358029'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/1107425859037358029'/><author><name>Brian Mansell</name></author></entry><entry><id>tag:blogger.com,1999:blog-8010254895780061626.post-8079116094150728477</id><published>2007-10-08T09:29:00.000-07:00</published><updated>2007-10-08T09:36:27.863-07:00</updated><title type='text'>Project vs. Process</title><summary type='text'>From Wikipedia: A project is a temporary and one-time endeavor undertaken to create a unique product or service, which brings about beneficial change or added value. This property of being a temporary and one-time undertaking contrasts with processes, or operations, which are permanent or semi-permanent ongoing functional work to create the same product or service over and over again. 
By </summary><link rel='alternate' type='text/html' href='http://www.lifeofbrian.org/blog/2007/10/project-vs-process.html' title='Project vs. Process'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8010254895780061626&amp;postID=8079116094150728477' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lifeofbrian.org/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/8079116094150728477'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/8079116094150728477'/><author><name>Brian Mansell</name></author></entry><entry><id>tag:blogger.com,1999:blog-8010254895780061626.post-806480195546612377</id><published>2007-10-05T15:29:00.000-07:00</published><updated>2007-10-05T15:41:22.436-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>It's all in the name</title><summary type='text'>When designing a schema for a database, always remember to be consistent with naming conventions, especially:Primary KeysForeign KeysBoolean fieldsDate fieldsAdditionally, consider using join tables or enums rather than char fields if there are very few options which may pertain to a given column.

Lastly, keep your names case consistent. Databases you may be working with are most likely case </summary><link rel='alternate' type='text/html' href='http://www.lifeofbrian.org/blog/2007/10/its-all-in-name.html' title='It&apos;s all in the name'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8010254895780061626&amp;postID=806480195546612377' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lifeofbrian.org/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/806480195546612377'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/806480195546612377'/><author><name>Brian Mansell</name></author></entry><entry><id>tag:blogger.com,1999:blog-8010254895780061626.post-3347273100853215589</id><published>2007-08-08T12:31:00.000-07:00</published><updated>2007-10-05T15:43:42.653-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='organization'/><category scheme='http://www.blogger.com/atom/ns#' term='gtd'/><title type='text'>Gmail Spring Cleaning</title><summary type='text'>Here are a few tips on cleaning up your GmailDelete your spam
Gmail deletes spam automatically, but if you're wanting to clean the slate completely, then this is the first step to take.Delete the oldest unread messages first
Query for the oldest unread messages by entering the following in the search box:
is:unread before:2007/07/01(In this example I want to see all unread messages sent to me </summary><link rel='alternate' type='text/html' href='http://www.lifeofbrian.org/blog/2007/08/gmail-spring-cleaning.html' title='Gmail Spring Cleaning'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8010254895780061626&amp;postID=3347273100853215589' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lifeofbrian.org/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/3347273100853215589'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/3347273100853215589'/><author><name>Brian Mansell</name></author></entry><entry><id>tag:blogger.com,1999:blog-8010254895780061626.post-3829019256375601840</id><published>2007-05-08T18:51:00.000-07:00</published><updated>2007-10-05T15:42:13.254-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='innodb'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><title type='text'>MySQL Tip: Using BETWEEN rather than LIMIT</title><summary type='text'>I've found that when working with a large data set in MySQL (InnoDB) that uses an integer primary key, it can be easier to query a batch of rows from the set using the BETWEEN comparison rather than the LIMIT clause.

The LIMIT clause is helpful in selecting the first X number of rows from within a table, but when selecting X number of rows after Y number rows (e.g. LIMIT 4000000,20000) it can </summary><link rel='alternate' type='text/html' href='http://www.lifeofbrian.org/blog/2007/05/mysql-tip-using-between-rather-than.html' title='MySQL Tip: Using BETWEEN rather than LIMIT'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8010254895780061626&amp;postID=3829019256375601840' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lifeofbrian.org/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/3829019256375601840'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/3829019256375601840'/><author><name>Brian Mansell</name></author></entry><entry><id>tag:blogger.com,1999:blog-8010254895780061626.post-3677890279617288523</id><published>2007-05-08T12:13:00.000-07:00</published><updated>2007-10-05T15:43:08.877-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iterm'/><category scheme='http://www.blogger.com/atom/ns#' term='mac os x'/><category scheme='http://www.blogger.com/atom/ns#' term='cd'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='iso'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Easiest way to burn ISOs under Mac OS X</title><summary type='text'>This morning, after downloading Ubuntu 7.04's ISO, I discovered a very easy method for burning an ISO file to a CDR. 

Start Terminal (or ITerm)
Execute the following command (Note: In this example I'm using the Ubuntu 7.04 ISO)

hdiutil burn ubuntu-7.04-desktop-i386.iso



Within a few minutes your ISO will be ready to boot. Apparently, this method also works with .DMG files.</summary><link rel='alternate' type='text/html' href='http://www.lifeofbrian.org/blog/2007/05/easiest-way-to-burn-isos-under-mac-os-x.html' title='Easiest way to burn ISOs under Mac OS X'/><link rel='related' href='http://developer.apple.com/DOCUMENTATION/Darwin/Reference/ManPages/man1/hdiutil.1.html' title='Easiest way to burn ISOs under Mac OS X'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8010254895780061626&amp;postID=3677890279617288523' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lifeofbrian.org/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/3677890279617288523'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/3677890279617288523'/><author><name>Brian Mansell</name></author></entry><entry><id>tag:blogger.com,1999:blog-8010254895780061626.post-7664274780151959400</id><published>2007-05-01T20:29:00.000-07:00</published><updated>2007-05-02T14:04:00.413-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vi'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Global search and replace with Vi/Vim</title><summary type='text'>Vi provides a few great shortcuts for handling search and replace of text within a file. On occasion, I've ran into situations where I've wanted to rename variables within a file while editting it in Vi.

First of all in order to indicate the entire file as the range of your change: utilize the '%' wildcard. In the example below, all references to 'foo' will be replaced with 'variable'. The 'g' </summary><link rel='alternate' type='text/html' href='http://www.lifeofbrian.org/blog/2007/05/global-search-and-replace-with-vivim.html' title='Global search and replace with Vi/Vim'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8010254895780061626&amp;postID=7664274780151959400' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.lifeofbrian.org/blog/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/7664274780151959400'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8010254895780061626/posts/default/7664274780151959400'/><author><name>Brian Mansell</name></author></entry></feed>