<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>trentgardner.net</title>
	<atom:link href="http://trentgardner.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://trentgardner.net</link>
	<description></description>
	<lastBuildDate>Tue, 02 Aug 2011 06:34:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Move SQL Server Database Files</title>
		<link>http://trentgardner.net/sql/move-sql-server-database-files/</link>
		<comments>http://trentgardner.net/sql/move-sql-server-database-files/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 06:16:07 +0000</pubDate>
		<dc:creator>Trent Gardner</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://tgardner.net/?p=102</guid>
		<description><![CDATA[At work we had a SQL Server 2008 R2 database server with about 15 or so databases on it, by default SQL had been configured to put all the *.mdf, *.ldf files in the system drive. The goal was to &#8230; <a href="http://trentgardner.net/sql/move-sql-server-database-files/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>At work we had a SQL Server 2008 R2 database server with about 15 or so databases on it, by default SQL had been configured to put all the *.mdf, *.ldf files in the system drive. </p>
<p>The goal was to move them to a secondary drive that had more than ample space. From reading the <a href="http://support.microsoft.com/kb/224071">Microsoft KnowledgeBase</a>, I realised I would have to detach the database, move the files and reattach the database from the new location. As a programmer, I&#8217;m inherently <del>lazy</del> efficient, so I decided to write a batch script to do all the heavy lifting. Now, arguably the process of writing the batch took longer than it would have taken for me to just manually move the databases, but where&#8217;s the fun in that? Who knows, you may even find it useful and save some time yourself.</p>
<p>So here it is:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"><span style="color: #33cc33;">@</span><span style="color: #b1b100; font-weight: bold;">echo</span> off
&nbsp;
<span style="color: #00b100; font-weight: bold;">if</span> [<span style="color: #33cc33;">%</span><span style="color: #448888;">3</span>] <span style="color: #000000; font-weight: bold;">EQU</span> [] <span style="color: #33cc33;">(</span>
	<span style="color: #b1b100; font-weight: bold;">echo</span> Usage: sql_migrate <span style="color: #33cc33;">^&lt;</span>SQLSERVER<span style="color: #33cc33;">^&gt;</span> <span style="color: #33cc33;">^&lt;</span>SOURCEFOLDER<span style="color: #33cc33;">^&gt;</span> <span style="color: #33cc33;">^&lt;</span>DESTFOLDER<span style="color: #33cc33;">^&gt;</span>
	<span style="color: #00b100; font-weight: bold;">GOTO</span>:EOF
<span style="color: #33cc33;">)</span>
&nbsp;
<span style="color: #b1b100; font-weight: bold;">SET</span> SQLSERVER=<span style="color: #33cc33;">%</span><span style="color: #448888;">1</span>
<span style="color: #b1b100; font-weight: bold;">SET</span> SOURCEFOLDER=<span style="color: #33cc33;">%</span><span style="color: #448888;">~2</span>
<span style="color: #b1b100; font-weight: bold;">SET</span> DESTFOLDER=<span style="color: #33cc33;">%</span><span style="color: #448888;">~3</span>
&nbsp;
<span style="color: #b1b100; font-weight: bold;">SET</span> DBQRY=select DB_NAME<span style="color: #33cc33;">(</span>r.database_id<span style="color: #33cc33;">)</span>, '<span style="color: #33cc33;">@</span>' + REPLACE<span style="color: #33cc33;">(</span>REPLACE<span style="color: #33cc33;">(</span>r.physical_name,'<span style="color: #33cc33;">%</span><span style="color: #448888;">SOURCEFOLDER</span><span style="color: #33cc33;">%</span>\',''<span style="color: #33cc33;">)</span>,'<span style="color: #33cc33;">%</span><span style="color: #448888;">SOURCEFOLDER</span><span style="color: #33cc33;">%</span>',''<span style="color: #33cc33;">)</span> AS DataFile, '<span style="color: #33cc33;">@</span>' + REPLACE<span style="color: #33cc33;">(</span>REPLACE<span style="color: #33cc33;">(</span>l.physical_name,'<span style="color: #33cc33;">%</span><span style="color: #448888;">SOURCEFOLDER</span><span style="color: #33cc33;">%</span>\',''<span style="color: #33cc33;">)</span>,'<span style="color: #33cc33;">%</span><span style="color: #448888;">SOURCEFOLDER</span><span style="color: #33cc33;">%</span>',''<span style="color: #33cc33;">)</span> AS LogFile from sys.master_files r inner join sys.master_files l on r.database_id = l.database_id AND l.type_desc = 'LOG' WHERE r.type_desc = 'ROWS' AND DB_NAME<span style="color: #33cc33;">(</span>r.database_id<span style="color: #33cc33;">)</span> <span style="color: #000000; font-weight: bold;">NOT</span> <span style="color: #00b100; font-weight: bold;">IN</span> <span style="color: #33cc33;">(</span>'master','model','msdb','tempdb'<span style="color: #33cc33;">)</span>
&nbsp;
<span style="color: #b1b100; font-weight: bold;">SET</span> TEMPFILE=<span style="color: #33cc33;">%</span><span style="color: #448888;">temp</span><span style="color: #33cc33;">%</span>\sqlmigratedb.tmp
&nbsp;
sqlcmd -S <span style="color: #33cc33;">%</span><span style="color: #448888;">SQLSERVER</span><span style="color: #33cc33;">%</span> -Q &quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">DBQRY</span><span style="color: #33cc33;">%</span>&quot; -o &quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">TEMPFILE</span><span style="color: #33cc33;">%</span>&quot; -W
&nbsp;
<span style="color: #00b100; font-weight: bold;">for</span> /f &quot;skip=2 tokens=1,2,3 delims=<span style="color: #33cc33;">@</span>&quot; <span style="color: #33cc33;">%%</span><span style="color: #448888;">a</span> <span style="color: #00b100; font-weight: bold;">in</span> <span style="color: #33cc33;">(%</span><span style="color: #448888;">TEMPFILE</span><span style="color: #33cc33;">%)</span> <span style="color: #00b100; font-weight: bold;">do</span> <span style="color: #33cc33;">(</span>
	<span style="color: #00b100; font-weight: bold;">if</span> <span style="color: #000000; font-weight: bold;">NOT</span> [<span style="color: #33cc33;">%%</span><span style="color: #448888;">b</span>] <span style="color: #000000; font-weight: bold;">EQU</span> [] <span style="color: #33cc33;">(</span>
		<span style="color: #00b100; font-weight: bold;">IF</span> <span style="color: #000000; font-weight: bold;">EXIST</span> &quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">SOURCEFOLDER</span><span style="color: #33cc33;">%</span>\<span style="color: #33cc33;">%%</span><span style="color: #448888;">b</span>&quot; <span style="color: #33cc33;">(</span>
			<span style="color: #b1b100; font-weight: bold;">echo</span> Moving <span style="color: #33cc33;">%%</span><span style="color: #448888;">a</span>
			sqlcmd -S <span style="color: #33cc33;">%</span><span style="color: #448888;">SQLSERVER</span><span style="color: #33cc33;">%</span> -Q &quot;ALTER DATABASE <span style="color: #33cc33;">%%</span><span style="color: #448888;">a</span> <span style="color: #b1b100; font-weight: bold;">SET</span> SINGLE_USER WITH ROLLBACK IMMEDIATE&quot;
			sqlcmd -S <span style="color: #33cc33;">%</span><span style="color: #448888;">SQLSERVER</span><span style="color: #33cc33;">%</span> -Q &quot;sp_detach_db '<span style="color: #33cc33;">%%</span><span style="color: #448888;">a</span>'&quot;
			<span style="color: #b1b100; font-weight: bold;">copy</span> /Y &quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">SOURCEFOLDER</span><span style="color: #33cc33;">%</span>\<span style="color: #33cc33;">%%</span><span style="color: #448888;">b</span>&quot; &quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">DESTFOLDER</span><span style="color: #33cc33;">%</span>\<span style="color: #33cc33;">%%</span><span style="color: #448888;">b</span>&quot;
			<span style="color: #b1b100; font-weight: bold;">copy</span> /Y &quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">SOURCEFOLDER</span><span style="color: #33cc33;">%</span>\<span style="color: #33cc33;">%%</span><span style="color: #448888;">c</span>&quot; &quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">DESTFOLDER</span><span style="color: #33cc33;">%</span>\<span style="color: #33cc33;">%%</span><span style="color: #448888;">c</span>&quot;
			sqlcmd -S <span style="color: #33cc33;">%</span><span style="color: #448888;">SQLSERVER</span><span style="color: #33cc33;">%</span> -Q &quot;sp_attach_db '<span style="color: #33cc33;">%%</span><span style="color: #448888;">a</span>','<span style="color: #33cc33;">%</span><span style="color: #448888;">DESTFOLDER</span><span style="color: #33cc33;">%</span>\<span style="color: #33cc33;">%%</span><span style="color: #448888;">b</span>','<span style="color: #33cc33;">%</span><span style="color: #448888;">DESTFOLDER</span><span style="color: #33cc33;">%</span>\<span style="color: #33cc33;">%%</span><span style="color: #448888;">c</span>'&quot;
			sqlcmd -S <span style="color: #33cc33;">%</span><span style="color: #448888;">SQLSERVER</span><span style="color: #33cc33;">%</span> -Q &quot;ALTER DATABASE <span style="color: #33cc33;">%%</span><span style="color: #448888;">a</span> <span style="color: #b1b100; font-weight: bold;">SET</span> MULTI_USER &quot;
&nbsp;
			<span style="color: #00b100; font-weight: bold;">if</span> <span style="color: #33cc33;">%</span><span style="color: #448888;">errorlevel</span><span style="color: #33cc33;">%</span> <span style="color: #000000; font-weight: bold;">LEQ</span> 1 <span style="color: #33cc33;">(</span>
				<span style="color: #b1b100; font-weight: bold;">echo</span> Deleting Existing Files
				<span style="color: #b1b100; font-weight: bold;">del</span> &quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">SOURCEFOLDER</span><span style="color: #33cc33;">%</span>\<span style="color: #33cc33;">%%</span><span style="color: #448888;">b</span>&quot;
				<span style="color: #b1b100; font-weight: bold;">del</span> &quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">SOURCEFOLDER</span><span style="color: #33cc33;">%</span>\<span style="color: #33cc33;">%%</span><span style="color: #448888;">c</span>&quot;
			<span style="color: #33cc33;">)</span>
		<span style="color: #33cc33;">)</span>
	<span style="color: #33cc33;">)</span>
<span style="color: #33cc33;">)</span>
&nbsp;
<span style="color: #b1b100; font-weight: bold;">del</span> &quot;<span style="color: #33cc33;">%</span><span style="color: #448888;">TEMPFILE</span><span style="color: #33cc33;">%</span>&quot;</pre></div></div>

<p>It works by pulling a list of databases out of SQL, then for each database:</p>
<ol>
<li>Setting the database to single-user mode (Killing any existing connections)</li>
<li>Detach the database</li>
<li>Copy the database files to the destination folder</li>
<li>Attach the database from the destination</li>
<li>If all went well, delete the originals</li>
</ol>
<p>You would then use it like:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">sql_migrate.bat . &quot;D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA&quot; d:\data
Moving ONQWholesale
        1 file<span style="color: #33cc33;">(</span>s<span style="color: #33cc33;">)</span> copied.
        1 file<span style="color: #33cc33;">(</span>s<span style="color: #33cc33;">)</span> copied.
Deleting Existing Files
Moving AdventureWorks
        1 file<span style="color: #33cc33;">(</span>s<span style="color: #33cc33;">)</span> copied.
        1 file<span style="color: #33cc33;">(</span>s<span style="color: #33cc33;">)</span> copied.
Deleting Existing Files</pre></div></div>

<p>You can download the batch from <a href="http://files.tgardner.net/sql_migrate.bat">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://trentgardner.net/sql/move-sql-server-database-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Serialize JSON with jQuery</title>
		<link>http://trentgardner.net/jquery/serialize-json-with-jquery/</link>
		<comments>http://trentgardner.net/jquery/serialize-json-with-jquery/#comments</comments>
		<pubDate>Mon, 09 May 2011 01:49:55 +0000</pubDate>
		<dc:creator>Trent Gardner</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[serialize]]></category>

		<guid isPermaLink="false">http://tgardner.net/?p=95</guid>
		<description><![CDATA[I was reading an interesting article on about JSON serialization and decided to wrap it up in as a jQuery extension to include in my development library.  Most of the code has been borrowed from the original implementation, I&#8217;ve just &#8230; <a href="http://trentgardner.net/jquery/serialize-json-with-jquery/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was reading an interesting article on about <a title="Javascript JSON Serialization" href="http://blogs.sitepoint.com/javascript-json-serialization/">JSON serialization</a> and decided to wrap it up in as a jQuery extension to include in my development library.  Most of the code has been borrowed from the original implementation, I&#8217;ve just jQueryifed things. So here it is:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">jQuery<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    $.<span style="color: #660066;">extend</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
        serializeJSON<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #003366; font-weight: bold;">var</span> t <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">typeof</span><span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>t <span style="color: #339933;">!=</span> <span style="color: #3366CC;">&quot;object&quot;</span> <span style="color: #339933;">||</span> obj <span style="color: #339933;">===</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #006600; font-style: italic;">// simple data type</span>
                <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>t <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;string&quot;</span><span style="color: #009900;">&#41;</span> obj <span style="color: #339933;">=</span> <span style="color: #3366CC;">'&quot;'</span> <span style="color: #339933;">+</span> obj <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&quot;'</span><span style="color: #339933;">;</span>
                <span style="color: #000066; font-weight: bold;">return</span> String<span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #006600; font-style: italic;">// array or object</span>
                <span style="color: #003366; font-weight: bold;">var</span> json <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> arr <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>obj <span style="color: #339933;">&amp;&amp;</span> obj.<span style="color: #660066;">constructor</span> <span style="color: #339933;">==</span> Array<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                $.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span>obj<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>k<span style="color: #339933;">,</span> v<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    t <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">typeof</span><span style="color: #009900;">&#40;</span>v<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>t <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;string&quot;</span><span style="color: #009900;">&#41;</span> v <span style="color: #339933;">=</span> <span style="color: #3366CC;">'&quot;'</span> <span style="color: #339933;">+</span> v <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&quot;'</span><span style="color: #339933;">;</span>
                    <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;object&quot;</span> <span style="color: #339933;">&amp;</span> v <span style="color: #339933;">!==</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> v <span style="color: #339933;">=</span> $.<span style="color: #660066;">serializeJSON</span><span style="color: #009900;">&#40;</span>v<span style="color: #009900;">&#41;</span>
                    json.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>arr <span style="color: #339933;">?</span> <span style="color: #3366CC;">&quot;&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">'&quot;'</span> <span style="color: #339933;">+</span> k <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&quot;:'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> String<span style="color: #009900;">&#40;</span>v<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>arr <span style="color: #339933;">?</span> <span style="color: #3366CC;">&quot;[&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;{&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> String<span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>arr <span style="color: #339933;">?</span> <span style="color: #3366CC;">&quot;]&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;}&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>And to use it, you would do something like</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #003366; font-weight: bold;">var</span> obj1 <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
        b1<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
        s1<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;text string&quot;</span><span style="color: #339933;">,</span>
        n1<span style="color: #339933;">:</span> <span style="color: #CC0000;">12345</span><span style="color: #339933;">,</span>
        n2<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">,</span>
        n3<span style="color: #339933;">:</span> undefined<span style="color: #339933;">,</span>
        a1<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">3</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">5</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">8</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#91;</span><span style="color: #CC0000;">13</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">21</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">34</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
        o1<span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
            a<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
            b<span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
                c<span style="color: #339933;">:</span> <span style="color: #CC0000;">42</span><span style="color: #339933;">,</span>
                d<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3.14</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1.618</span><span style="color: #009900;">&#93;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>$.<span style="color: #660066;">serializeJSON</span><span style="color: #009900;">&#40;</span>obj1<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://trentgardner.net/jquery/serialize-json-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET WebMethods with jQuery and AJAX</title>
		<link>http://trentgardner.net/net/asp-net-webmethods-with-jquery-and-ajax/</link>
		<comments>http://trentgardner.net/net/asp-net-webmethods-with-jquery-and-ajax/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 02:49:26 +0000</pubDate>
		<dc:creator>Trent Gardner</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://tgardner.net/?p=69</guid>
		<description><![CDATA[I haven&#8217;t updated this blog in a long, long time, but today I was working on something interesting and thought I should write it down before I forget. I was working on an ASP.NET application and needed to perform an &#8230; <a href="http://trentgardner.net/net/asp-net-webmethods-with-jquery-and-ajax/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t updated this blog in a long, long time, but today I was working on something interesting and thought I should write it down before I forget.</p>
<p>I was working on an ASP.NET application and needed to perform an AJAX request, I could have used the Microsoft AJAX framework, but frankly I don&#8217;t like it. Using the Microsoft ScriptManager element pulls in a lot of extra bloat that really isn&#8217;t necessary and the project was already using jQuery for animations. <br />
ASP provides these things called WebMethods (You&#8217;d probably be familiar with these if you&#8217;ve ever implemented a ASP.NET WebService), basically they&#8217;re a server side function that can be invoked similar to that of a REST API, a la Flickr.</p>
<p>Basically in your ASP.NET page code-behind file you just need to add a static / shared method that is decorated with a special WebMethod attribute.</p>
<p><strong>VB.NET</strong></p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;">&lt;System.<span style="color: #0000FF;">Web</span>.<span style="color: #0000FF;">Services</span>.<span style="color: #0000FF;">WebMethod</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>&gt; _
<span style="color: #FF8000;">Public</span> <span style="color: #FF8000;">Shared</span> <span style="color: #0600FF;">Function</span> HelloWorld<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> name <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span>
    <span style="color: #FF8000;">Return</span> <span style="color: #FF8000;">String</span>.<span style="color: #0600FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Hello world, meet {0}&quot;</span>, name<span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Function</span></pre></div></div>

<p><strong>C#</strong></p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&#91;</span><span style="color: #000000;">System.<span style="color: #0000FF;">Web</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Services</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">WebMethod</span><span style="color: #008000;">&#93;</span>
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> HelloWorld<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span> name<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Format</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Hello world, meet {0}&quot;</span>, name<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>On the front end, I wrote a jQuery extension to consume these methods. This just needs to be included anywhere on the page.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">jQuery<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>    
    $.<span style="color: #660066;">extend</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
        webMethod<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>method<span style="color: #339933;">,</span> data<span style="color: #339933;">,</span> onSuccess<span style="color: #339933;">,</span> onFail<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #003366; font-weight: bold;">var</span> loc <span style="color: #339933;">=</span> window.<span style="color: #660066;">location</span>.<span style="color: #660066;">href</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'?'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>loc.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span>loc.<span style="color: #660066;">length</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span>
                loc <span style="color: #339933;">=</span> loc <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;Default.aspx&quot;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #006600; font-style: italic;">// Serialize the data object with no whitespace </span>
            <span style="color: #006600; font-style: italic;">// (.NET requirement)</span>
            <span style="color: #003366; font-weight: bold;">var</span> pairs <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #000066; font-weight: bold;">in</span> data<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                pairs.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>i <span style="color: #339933;">+</span> <span style="color: #3366CC;">':'</span> <span style="color: #339933;">+</span> data<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            data <span style="color: #339933;">=</span> <span style="color: #3366CC;">'{'</span> <span style="color: #339933;">+</span> pairs.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">','</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">'}'</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #006600; font-style: italic;">// Perform the post operation </span>
            $.<span style="color: #660066;">ajax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
                type<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;POST&quot;</span>
                <span style="color: #339933;">,</span> url<span style="color: #339933;">:</span> loc <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;/&quot;</span> <span style="color: #339933;">+</span> method
                <span style="color: #339933;">,</span> <span style="color: #3366CC;">'data'</span><span style="color: #339933;">:</span> data
                <span style="color: #339933;">,</span> contentType<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;application/json; charset=utf-8&quot;</span>
                <span style="color: #339933;">,</span> dataType<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;json&quot;</span>
                <span style="color: #339933;">,</span> success<span style="color: #339933;">:</span> onSuccess
                <span style="color: #339933;">,</span> error<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>jqXHR<span style="color: #339933;">,</span> textStatus<span style="color: #339933;">,</span> errorThrown<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    <span style="color: #006600; font-style: italic;">// The .NET error and stacktrace is hidden </span>
                    <span style="color: #006600; font-style: italic;">// inside the XMLHttpRequest response</span>
                    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>$.<span style="color: #660066;">isFunction</span><span style="color: #009900;">&#40;</span>onFail<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
                        onFail<span style="color: #009900;">&#40;</span>$.<span style="color: #660066;">parseJSON</span><span style="color: #009900;">&#40;</span>jqXHR.<span style="color: #660066;">response</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>To invoke the above you&#8217;d do something like:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">jQuery.<span style="color: #660066;">webMethod</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'HelloWorld'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> 
    <span style="color: #000066;">name</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'Trent'</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> onSuccess<span style="color: #339933;">,</span> onFailure<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> onSuccess<span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// The response from the function is in the attribute d</span>
    <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>data.<span style="color: #660066;">d</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> onFailure<span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>data.<span style="color: #660066;">Message</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> <span style="color: #339933;">+</span> data.<span style="color: #660066;">StackTrace</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>This will perform an AJAX request to the server and invoke your server side WebMethod.<br />
If anyone has any comments or feedback, please let me know. </p>
]]></content:encoded>
			<wfw:commentRss>http://trentgardner.net/net/asp-net-webmethods-with-jquery-and-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create a RAID 1 Array with an Existing Drive</title>
		<link>http://trentgardner.net/linux/create-a-raid-1-array-with-existing-drive/</link>
		<comments>http://trentgardner.net/linux/create-a-raid-1-array-with-existing-drive/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 23:48:17 +0000</pubDate>
		<dc:creator>Trent Gardner</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[hdd]]></category>
		<category><![CDATA[raid]]></category>
		<category><![CDATA[raid 1]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://tgardner.net/?p=58</guid>
		<description><![CDATA[So, last month the IT department at DIRC was made redundant due to funding issues (The joys of working for the not-for-profit sector), as a result myself and colleague David were out of a job. If you&#8217;re looking for a &#8230; <a href="http://trentgardner.net/linux/create-a-raid-1-array-with-existing-drive/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, last month the IT department at <a title="The Disability Information and Resource Centre" href="http://www.dircsa.org.au"><abbr title="The Disability Information and Resource Centre">DIRC</abbr></a> was made redundant due to funding issues (The joys of working for the not-for-profit sector), as a result myself and colleague <a href="http://www.lifekludger.net/"><abbr title="David Wallace">David</abbr></a> were out of a job. If you&#8217;re looking for a new media consultant, Dave&#8217;s your man.</p>
<p>Luckily, after a weeks vacation and procrastinating about updating my resume / beginning to find a new source of income to cover my rent, I was offered a new job at <a title="http://www.tobacco.net.au" href="http://www.tobacco.net.au">http://www.tobacco.net.au</a> &#8211; Cheap Cigarettes made in Australia. The work&#8217;s completely different, so it&#8217;s a great new learning curve, and hopefully the addictive qualities of nicatine should keep me in a job! <img src='http://trentgardner.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I&#8217;ve got a new HP DL585 server that I&#8217;m using for development, and let me say, this thing is a beast. I set it up about 2 weeks ago with Fedora Core 10, but the problem was all our hard drives didn&#8217;t arrive with the server, and I needed to get it up and running. I needed to create a RAID 1 mirror of the 36GB 15k SAS system drive but only had 1 of the drives.</p>
<p>This morning, the second drive arrived and I had to figure out how to create a mirror of the existing drive, without having to reinstall the entire OS again or lose any data. Thanks to the power of the command line it made light work of a seemingly daunting problem.</p>
<p>&nbsp;</p>
<p>First, create an image of your drive onto another temporary drive:<br />
<em>Mount a partition to store the backup image of the system drive, in this case I used /dev/cciss/c0d1p1</em></p>
<p><span class="code">mkdir /media/backup<br />
mount -t ext3 /dev/cciss/c0d1p1 /media/backup</span></p>
<p><em>Create an image of the drive you&#8217;re wanting to use for the RAID array (/dev/cciss/c0d0)<br />
</em></p>
<p><span class="code">dd bs=4k if=/dev/cciss/c0d0 of=/media/backup/backup.img conv=noerror,sync</span></p>
<p>Secondly, install the new drive being used as the mirror and create the RAID 1 array using the controller.</p>
<p>Finally, reboot with the Fedora CD in the drive and enter recovery mode. Just skip past any menus that come up until you&#8217;re presented with a command prompt.<br />
<em>Now mount the partition with the backup image</em></p>
<p><span class="code">mkdir /mnt/backup<br />
mount -t ext3 /dev/cciss/c0d1p1 /mnt/backup</span></p>
<p><em>Restore the system drive</em></p>
<p><span class="code">dd bs=4k if=/mnt/backup/backup.img of=/dev/cciss/c0d0</span></p>
<p>&nbsp;</p>
<p>Once complete, take the Fedora CD out of the drive and reboot, and the system should be like you never touched it.</p>
<p>This new job has me doing 12 hour days when including travel to and from, so I&#8217;ve barely had time to myself. When I get a few days off, I&#8217;ll try and get a new update on Flickr Manager pushed out.</p>
]]></content:encoded>
			<wfw:commentRss>http://trentgardner.net/linux/create-a-raid-1-array-with-existing-drive/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>What&#8217;s new in Flickr Manager 2.3</title>
		<link>http://trentgardner.net/plugins/whats-new-in-flickr-manager-23/</link>
		<comments>http://trentgardner.net/plugins/whats-new-in-flickr-manager-23/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 09:39:02 +0000</pubDate>
		<dc:creator>Trent Gardner</dc:creator>
				<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://tgardner.net/?p=47</guid>
		<description><![CDATA[In this latest installment of Flickr Manager, you may have noticed some changes to the media panel. The first change is the separation of the browse panel into two separate tabs, &#8220;My Photos&#8221;, &#8220;My Photosets&#8221;. Secondly, a new option to &#8230; <a href="http://trentgardner.net/plugins/whats-new-in-flickr-manager-23/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In this latest installment of Flickr Manager, you may have noticed some changes to the media panel. The first change is the separation of the browse panel into two separate tabs, &#8220;My Photos&#8221;, &#8220;My Photosets&#8221;. Secondly, a new option to hide the licensing information when browsing public photos allows for more photos to be displayed per page, as seen below:</p>
<p><a class="flickr-image" title="Flickr Manager 2.3 Browse Panel" rel="flickr-mgr" href="http://www.flickr.com/photos/16965396@N06/3280495286/"><img class="flickr-medium alignleft" src="http://farm4.static.flickr.com/3554/3280495286_76db739410_m.jpg" alt="Flickr Manager 2.3 Browse Panel" /></a><a class="flickr-image" title="Flickr Manager 2.3 Insertion Panel" rel="flickr-mgr" href="http://www.flickr.com/photos/16965396@N06/3279780825/"><img class="flickr-medium" src="http://farm4.static.flickr.com/3277/3279780825_08dec55947_m.jpg" alt="Flickr Manager 2.3 Insertion Panel" /></a></p>
<p>The method for insertion of images has changed to give you greater control over your Flickr photos. The save button will update the photo information directly on Flickr. When inserting a photo, the title field will reflect the caption to be displayed in the Lightbox or Highslide overlay (No save is necessary for this to take effect).</p>
<p>Finally this update includes some security updates which address several vulnerabilities, and it&#8217;s highly recommended that you upgrade.</p>
]]></content:encoded>
			<wfw:commentRss>http://trentgardner.net/plugins/whats-new-in-flickr-manager-23/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>Flickr Manager I18N</title>
		<link>http://trentgardner.net/uncategorized/flickr-manager-i18n/</link>
		<comments>http://trentgardner.net/uncategorized/flickr-manager-i18n/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 12:35:48 +0000</pubDate>
		<dc:creator>Trent Gardner</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[flickr-manager]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[internationalization]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://tgardner.net/?p=22</guid>
		<description><![CDATA[To bring in the new year, I bring you Flickr Manager 2.1. The updated version contains a number of bug fixes, interface revamps, but the main new feature is the support for internationalization. EDIT: A Launchpad translation project has been &#8230; <a href="http://trentgardner.net/uncategorized/flickr-manager-i18n/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>To bring in the new year, I bring you Flickr Manager 2.1. The updated version contains a number of bug fixes, interface revamps, but the main new feature is the support for internationalization.</p>
<p><strong>EDIT: </strong></p>
<p>A Launchpad translation project has been setup: <a rel="nofollow" href="https://translations.launchpad.net/flickr-manager/trunk/+pots/flickr-manager">Click here to view a list of all currently available translations</a>. Very briefly, Launchpad will enable a community of translators to help translate the plugin into whatever language is needed.</p>
<h3>How to translate with Launchpad</h3>
<ol>
<li>Setup a <a rel="nofollow" href="https://translations.launchpad.net/flickr-manager/trunk/+pots/flickr-manager/+login">Launchpad.net account</a>.</li>
<li>Select your <a rel="nofollow" href="https://translations.launchpad.net/+editmylanguages">preferred languages</a>. This will be the language you want to translate.</li>
<li>You should see your language <a rel="nofollow" href="https://translations.launchpad.net/flickr-manager/">show up in this list</a>. Simply click the name to get started with the translations. The system will try to offer suggests where available (retrieved from other open source projects).</li>
<li>Your translations are saved as you proceed. When it comes time to package a release, your translation will be automatically included in the release for everyone to use. Thanks for your help!</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://trentgardner.net/uncategorized/flickr-manager-i18n/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>WFM Update</title>
		<link>http://trentgardner.net/uncategorized/wfm-update/</link>
		<comments>http://trentgardner.net/uncategorized/wfm-update/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 03:35:52 +0000</pubDate>
		<dc:creator>Trent Gardner</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tgardner.net/?p=25</guid>
		<description><![CDATA[WordPress Flickr Manager 2.0 has been released. I&#8217;ve created a new page here that will contain all future updates and information about the plugin. Thanks, Trent]]></description>
			<content:encoded><![CDATA[<p>WordPress Flickr Manager 2.0 has been released.</p>
<p>I&#8217;ve created a new page <a title="http://tgardner.net/wordpress-flickr-manager/" href="http://tgardner.net/wordpress-flickr-manager/">here</a> that will contain all future updates and information about the plugin.</p>
<p>Thanks,<br />
Trent</p>
]]></content:encoded>
			<wfw:commentRss>http://trentgardner.net/uncategorized/wfm-update/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Flickr Manager gets photo sets in 1.5.0</title>
		<link>http://trentgardner.net/uncategorized/flickr-manager-gets-photo-sets-in-150/</link>
		<comments>http://trentgardner.net/uncategorized/flickr-manager-gets-photo-sets-in-150/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 02:26:45 +0000</pubDate>
		<dc:creator>Trent Gardner</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flickr-manager]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://tgardner.net/2008/02/12/flickr-manager-gets-photo-sets-in-150/</guid>
		<description><![CDATA[In this final release of 1.5.0 I&#8217;ve added photo set support that allows you to browse your personal photo sets as well as take advantage of the Lightbox photo set functionality when inserting photos into posts. An example: Wordcamp Melbourne &#8230; <a href="http://trentgardner.net/uncategorized/flickr-manager-gets-photo-sets-in-150/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In this final release of 1.5.0 I&#8217;ve added photo set support that allows you to browse your personal photo sets as well as take advantage of the <a title="http://www.huddletogether.com/projects/lightbox2/" href="http://www.huddletogether.com/projects/lightbox2/">Lightbox</a> photo set functionality when inserting photos into posts. An example:</p>
<p align="center"><a title="http://www.flickr.com/photos/trentgardner/sets/72157603240620422/" href="http://www.flickr.com/photos/trentgardner/sets/72157603240620422/"><strong>Wordcamp Melbourne 2007<br />
</strong></a><a title="WCM07" rel="flickr-mgr[wcm07]" href="http://www.flickr.com/photos/16965396@N06/2040196426/"><img class="flickr-medium" src="http://farm3.static.flickr.com/2139/2040196426_acc2828841_t.jpg" alt="WCM07" /></a><a title="WCM07" rel="flickr-mgr[wcm07]" href="http://www.flickr.com/photos/16965396@N06/2040195496/"><img class="flickr-medium" src="http://farm3.static.flickr.com/2076/2040195496_5a947790e5_t.jpg" alt="WCM07" /></a><a title="WCM07" rel="flickr-mgr[wcm07]" href="http://www.flickr.com/photos/16965396@N06/2040194564/"><img class="flickr-medium" src="http://farm3.static.flickr.com/2050/2040194564_54cd5b50cb_t.jpg" alt="WCM07" /></a><a title="David &amp; I After Wordcamp Melbourne" rel="flickr-mgr[wcm07]" href="http://www.flickr.com/photos/16965396@N06/2040132852/"><img class="flickr-medium" src="http://farm3.static.flickr.com/2008/2040132852_9cedb2305b_t.jpg" alt="David &amp; I After Wordcamp Melbourne" /></a><a title="WCM07 - 'Baked in South Melbourne' Pizza" rel="flickr-mgr[wcm07]" href="http://www.flickr.com/photos/16965396@N06/2039394071/"><img class="flickr-medium" src="http://farm3.static.flickr.com/2019/2039394071_10fc0218bd_t.jpg" alt="WCM07 - 'Baked in South Melbourne' Pizza" /></a></p>
<p align="left">Also <a title="http://www.php.net" href="http://www.php.net">PHP 5</a> is now required to use this plugin otherwise you&#8217;ll receive the following error:<br />
<span class="code">ERROR: You&#8217;re currently running 4.x.x and you must have at least PHP 5 in order to use Flickr Manager!</span></p>
<p align="left">If you don&#8217;t have PHP 5 and have no way of installing it I believe <a title="http://wordpress.org/extend/plugins/wordpress-flickr-manager/wordpress-flickr-manager.1.4.5.zip" href="http://wordpress.org/extend/plugins/wordpress-flickr-manager/wordpress-flickr-manager.1.4.5.zip">version 1.4.5</a> will still function in some of the later releases of PHP 4.</p>
<p style="text-align: center">The new Browse Panel<br />
<a title="WFM 1.5.0 - Browse Panel" rel="flickr-mgr" href="http://www.flickr.com/photos/16965396@N06/2258801781/"><img class="flickr-medium" src="http://farm3.static.flickr.com/2285/2258801781_6528493abc_m.jpg" alt="WFM 1.5.0 - Browse Panel" /></a></p>
<p style="text-align: center"><a class="downloadlink dlimg" href="http://trentgardner.net/download/wordpress-flickr-manager.zip" title="Version 2.0.4 downloaded 14493 times" ><img src="http://trentgardner.net/wp-content/plugins/download-monitor/img/download.gif" alt="Download WordPress Flickr Manager Version 2.0.4" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://trentgardner.net/uncategorized/flickr-manager-gets-photo-sets-in-150/feed/</wfw:commentRss>
		<slash:comments>106</slash:comments>
		</item>
		<item>
		<title>Flickr Manager gets a new Framework</title>
		<link>http://trentgardner.net/uncategorized/flickr-manager-gets-a-new-framework/</link>
		<comments>http://trentgardner.net/uncategorized/flickr-manager-gets-a-new-framework/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 00:40:00 +0000</pubDate>
		<dc:creator>Trent Gardner</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flickr-manager]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://tgardner.net/2008/02/08/flickr-manager-gets-a-new-framework/</guid>
		<description><![CDATA[So some of you may have noticed already that yesterday I released version 1.5.0a of my Flickr Manager plugin. The main point of this version update was because of all the development that&#8217;s been going on lately, the code has &#8230; <a href="http://trentgardner.net/uncategorized/flickr-manager-gets-a-new-framework/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So some of you may have noticed already that yesterday I released version 1.5.0a of my Flickr Manager plugin. The main point of this version update was because of all the development that&#8217;s been going on lately, the code has been getting rather thrown together and confusing, so I&#8217;ve restructured and rewritten most of the code to make it easier to understand and develop future releases. Because of such a major overhaul a few bugs may have slipped through so this is the reason for releasing it as an alpha. So please if you try the new release of the plugin and are experiencing problems let me know with as many details as possible. Otherwise if you&#8217;re not game enough to try out the new version please revert back to 1.4.5 (available <strong><a href="http://downloads.wordpress.org/plugin/wordpress-flickr-manager.1.4.5.zip" title="http://downloads.wordpress.org/plugin/wordpress-flickr-manager.1.4.5.zip">here</a></strong>).</p>
<p>I&#8217;ve also added a &#8220;Limit size of images in the browse window&#8221; option, which keeps all the images in the browse panel to maintain a constant size of either square or thumbnail depending on your preference to save loading times.</p>
<p align="center"><a class="downloadlink dlimg" href="http://trentgardner.net/download/wordpress-flickr-manager.zip" title="Version 2.0.4 downloaded 14493 times" ><img src="http://trentgardner.net/wp-content/plugins/download-monitor/img/download.gif" alt="Download WordPress Flickr Manager Version 2.0.4" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://trentgardner.net/uncategorized/flickr-manager-gets-a-new-framework/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>WFM 1.4.5 &#8211; Lightbox 2 Support</title>
		<link>http://trentgardner.net/uncategorized/wfm-145-lightbox-2-support/</link>
		<comments>http://trentgardner.net/uncategorized/wfm-145-lightbox-2-support/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 05:07:44 +0000</pubDate>
		<dc:creator>Trent Gardner</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flickr-manager]]></category>
		<category><![CDATA[lightbox]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://tgardner.net/2008/01/29/wfm-145-lightbox-2-support/</guid>
		<description><![CDATA[WordPress Flickr Manager&#8217;s latest release now supports Lightbox 2. I&#8217;ve also added new &#8220;Optional Settings&#8221; such as &#8220;Enable lightbox support by default&#8221; and &#8220;Default lightbox picture&#8221;, which lets you specify a default size of the image being displayed by Lightbox. &#8230; <a href="http://trentgardner.net/uncategorized/wfm-145-lightbox-2-support/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>WordPress Flickr Manager&#8217;s latest release now supports <a href="http://www.huddletogether.com/projects/lightbox2/" title="http://www.huddletogether.com/projects/lightbox2/">Lightbox 2</a>. I&#8217;ve also added new &#8220;Optional Settings&#8221; such as &#8220;Enable lightbox support by default&#8221; and &#8220;Default lightbox picture&#8221;, which lets you specify a default size of the image being displayed by Lightbox.</p>
<p align="center"><a href="http://www.flickr.com/photos/16965396@N06/2227845598/" title="Flickr Manager 1.4.5 - Browse Panel" rel="flickr-mgr"><img src="http://farm3.static.flickr.com/2104/2227845598_784d38c234_m.jpg" alt="Flickr Manager 1.4.5 - Browse Panel" class="flickr-medium" /></a></p>
<p align="left">The &#8216;Browse Photos&#8217; panel has had a bit of a face lift, it now allows for more solid control over inserted Lightbox elements such as specifying the Flickr image size to be displayed in Lightbox from picture to picture.</p>
<p align="left">If you&#8217;ve got a suggestion that you&#8217;d like to see in a future version of Flickr Manager, let me know.</p>
<p align="center"><a class="downloadlink dlimg" href="http://trentgardner.net/download/wordpress-flickr-manager.zip" title="Version 2.0.4 downloaded 14493 times" ><img src="http://trentgardner.net/wp-content/plugins/download-monitor/img/download.gif" alt="Download WordPress Flickr Manager Version 2.0.4" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://trentgardner.net/uncategorized/wfm-145-lightbox-2-support/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
	</channel>
</rss>

