<?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"
	>

<channel>
	<title>Code.TechInterviews.com</title>
	<atom:link href="http://code.techinterviews.com/feed" rel="self" type="application/rss+xml" />
	<link>http://code.techinterviews.com</link>
	<description>ready-to-eat, hot-off-the-presses source code for your visual and intellectual pleasure</description>
	<pubDate>Mon, 25 Aug 2008 12:24:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Using the clipboard in WSH</title>
		<link>http://code.techinterviews.com/using-the-clipboard-in-wsh/122</link>
		<comments>http://code.techinterviews.com/using-the-clipboard-in-wsh/122#comments</comments>
		<pubDate>Fri, 25 Jul 2008 13:22:57 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Windows scripts]]></category>

		<category><![CDATA[clipboard]]></category>

		<category><![CDATA[copy]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/using-the-clipboard-in-wsh/122</guid>
		<description><![CDATA[How to get the text from the clipboard

set objIE = CreateObject&#40;"InternetExplorer.Application"&#41;
objIE.Navigate&#40;"about:blank"&#41;
textFromClipboard = objIE.document.parentwindow.clipboardData.GetData&#40;"text"&#41;
objIE.Quit
WScript.Echo textFromClipboard

How to put the text into clipboard

textIntoClipboard = "Some text" &#38; VbCrLf &#38; "Some more text"
&#160;
Set objIE = WScript.CreateObject&#40;"InternetExplorer.Application"&#41;
objIE.Navigate "about:blank"
Do Until objIE.ReadyState = 4
&#160; &#160; &#160; &#160; WScript.Sleep 100
Loop
&#160;
objIE.document.ParentWindow.ClipboardData.SetData "text", textIntoClipboard
objIE.Quit

The detailed explanation could be found here.
]]></description>
			<content:encoded><![CDATA[<p><strong>How to get the text from the clipboard</strong></p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw1">set</span> objIE = <span class="kw1">CreateObject</span><span class="br0">&#40;</span><span class="st0">"InternetExplorer.Application"</span><span class="br0">&#41;</span><br />
objIE.<span class="me1">Navigate</span><span class="br0">&#40;</span><span class="st0">"about:blank"</span><span class="br0">&#41;</span><br />
textFromClipboard = objIE.<span class="me1">document</span>.<span class="me1">parentwindow</span>.<span class="me1">clipboardData</span>.<span class="me1">GetData</span><span class="br0">&#40;</span><span class="st0">"text"</span><span class="br0">&#41;</span><br />
objIE.<span class="me1">Quit</span><br />
WScript.<span class="me1">Echo</span> textFromClipboard</div>
</div>
<p><strong>How to put the text into clipboard</strong></p>
<div class="codesnip-container" >
<div class="codesnip">textIntoClipboard = <span class="st0">"Some text"</span> &amp; <span class="kw1">VbCrLf</span> &amp; <span class="st0">"Some more text"</span><br />
&nbsp;<br />
<span class="kw1">Set</span> objIE = WScript.<span class="kw1">CreateObject</span><span class="br0">&#40;</span><span class="st0">"InternetExplorer.Application"</span><span class="br0">&#41;</span><br />
objIE.<span class="me1">Navigate</span> <span class="st0">"about:blank"</span><br />
<span class="kw1">Do</span> Until objIE.<span class="me1">ReadyState</span> = <span class="nu0">4</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; WScript.<span class="me1">Sleep</span> <span class="nu0">100</span><br />
<span class="kw1">Loop</span><br />
&nbsp;<br />
objIE.<span class="me1">document</span>.<span class="me1">ParentWindow</span>.<span class="me1">ClipboardData</span>.<span class="me1">SetData</span> <span class="st0">"text"</span>, textIntoClipboard<br />
objIE.<span class="me1">Quit</span></div>
</div>
<p>The detailed explanation could be <a href="http://www.nilpo.com/2007/08/windows-xp/scripting-the-clipboard-contents-in-wsh/">found here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/using-the-clipboard-in-wsh/122/feed</wfw:commentRss>
		</item>
		<item>
		<title>Oracle: check the existance of logon/logoff triggers</title>
		<link>http://code.techinterviews.com/oracle-check-the-existance-of-logonlogoff-triggers/121</link>
		<comments>http://code.techinterviews.com/oracle-check-the-existance-of-logonlogoff-triggers/121#comments</comments>
		<pubDate>Fri, 25 Jul 2008 13:15:47 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[login]]></category>

		<category><![CDATA[trigger]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/oracle-check-the-existance-of-logonlogoff-triggers/121</guid>
		<description><![CDATA[
SELECT DECODE&#40;&#40;COUNT&#40;trigger_name&#41;&#41;,0,'LOGON trigger missing', 'Number of logon triggers: ' &#124;&#124; COUNT&#40;trigger_name&#41; &#41; "INFO"
FROM sys.dba_triggers
WHERE TRIGGERING_EVENT LIKE 'LOGON%' AND status='ENABLED' AND owner='SYS'
UNION
SELECT DECODE&#40;&#40;COUNT&#40;trigger_name&#41;&#41;,0,'LOGOFF trigger missing','', 'Number of logoff triggers:' &#124;&#124; COUNT&#40;trigger_name&#41;&#41; "INFO"
FROM sys.dba_triggers
WHERE TRIGGERING_EVENT LIKE 'LOGOFF%' AND status='ENABLED' AND owner='SYS'

The field TRIGGERING_EVENT could have the spaces at the end! Very clever...
]]></description>
			<content:encoded><![CDATA[<div class="codesnip-container" >
<div class="codesnip"><span class="kw1">SELECT</span> <span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="kw1">COUNT</span><span class="br0">&#40;</span>trigger_name<span class="br0">&#41;</span><span class="br0">&#41;</span>,<span class="nu0">0</span>,<span class="st0">'LOGON trigger missing'</span>, <span class="st0">'Number of logon triggers: '</span> || <span class="kw1">COUNT</span><span class="br0">&#40;</span>trigger_name<span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="st0">"INFO"</span><br />
<span class="kw1">FROM</span> sys.dba_triggers<br />
<span class="kw1">WHERE</span> TRIGGERING_EVENT <span class="kw1">LIKE</span> <span class="st0">'LOGON%'</span> <span class="kw1">AND</span> status=<span class="st0">'ENABLED'</span> <span class="kw1">AND</span> owner=<span class="st0">'SYS'</span><br />
<span class="kw1">UNION</span><br />
<span class="kw1">SELECT</span> <span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="kw1">COUNT</span><span class="br0">&#40;</span>trigger_name<span class="br0">&#41;</span><span class="br0">&#41;</span>,<span class="nu0">0</span>,<span class="st0">'LOGOFF trigger missing'</span>,<span class="st0">''</span>, <span class="st0">'Number of logoff triggers:'</span> || <span class="kw1">COUNT</span><span class="br0">&#40;</span>trigger_name<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="st0">"INFO"</span><br />
<span class="kw1">FROM</span> sys.dba_triggers<br />
<span class="kw1">WHERE</span> TRIGGERING_EVENT <span class="kw1">LIKE</span> <span class="st0">'LOGOFF%'</span> <span class="kw1">AND</span> status=<span class="st0">'ENABLED'</span> <span class="kw1">AND</span> owner=<span class="st0">'SYS'</span></div>
</div>
<p>The field TRIGGERING_EVENT could have the spaces at the end! Very clever...</p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/oracle-check-the-existance-of-logonlogoff-triggers/121/feed</wfw:commentRss>
		</item>
		<item>
		<title>Unix shell: workaround for loop problem</title>
		<link>http://code.techinterviews.com/shell-workaround-for-loop-problem/120</link>
		<comments>http://code.techinterviews.com/shell-workaround-for-loop-problem/120#comments</comments>
		<pubDate>Fri, 11 Jul 2008 13:08:52 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Unix Shell]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/bash-workaround-for-loop-problem/120</guid>
		<description><![CDATA[It's not possible to get the value of the loop variables in some versions of ksh.
Example:

#!/bin/ksh
num=0
cat $0 &#124; while read line ; do
&#160;let num=num+1
done
echo "Number=$num"

This script will return "Number=0" as the result.
Here is the workaround for the problem: You should change the redirection method for the input file.

#!/bin/ksh
l=0
while read line ; do
&#160;let l=l+1
done &#60; $0
echo [...]]]></description>
			<content:encoded><![CDATA[<p>It's not possible to get the value of the loop variables in some versions of ksh.</p>
<p>Example:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">#!/bin/ksh</span></p>
<p><span class="re2">num=</span><span class="nu0">0</span><br />
cat $<span class="nu0">0</span> | <span class="kw1">while</span> <span class="kw3">read</span> line ; <span class="kw1">do</span><br />
&nbsp;<span class="kw3">let</span> <span class="re2">num=</span>num+<span class="nu0">1</span><br />
<span class="kw1">done</span></p>
<p><span class="kw3">echo</span> <span class="st0">"Number=$num"</span></div>
</div>
<p>This script will return "Number=0" as the result.</p>
<p>Here is the workaround for the problem: You should change the redirection method for the input file.</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">#!/bin/ksh</span></p>
<p><span class="re2">l=</span><span class="nu0">0</span><br />
<span class="kw1">while</span> <span class="kw3">read</span> line ; <span class="kw1">do</span><br />
&nbsp;<span class="kw3">let</span> <span class="re2">l=</span>l+<span class="nu0">1</span><br />
<span class="kw1">done</span> &lt; $<span class="nu0">0</span></p>
<p><span class="kw3">echo</span> <span class="st0">"Number=$l"</span></div>
</div>
<p>The last script will return the correct result: "Number=9"</p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/shell-workaround-for-loop-problem/120/feed</wfw:commentRss>
		</item>
		<item>
		<title>JavaScript: edit web page in browser</title>
		<link>http://code.techinterviews.com/javascript-edit-web-page-in-browser/119</link>
		<comments>http://code.techinterviews.com/javascript-edit-web-page-in-browser/119#comments</comments>
		<pubDate>Fri, 11 Jul 2008 13:00:43 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[browser]]></category>

		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/javascript-edit-web-page-in-browser/119</guid>
		<description><![CDATA[Here is small bookmarklet, which allows to edit the web page for any site (ok, You could save the results on Your local machine only).

javascript:document.body.contentEditable='true'; document.designMode='on'; void 0

]]></description>
			<content:encoded><![CDATA[<p>Here is small bookmarklet, which allows to <strong>edit</strong> the web page for <strong>any</strong> site (ok, You could save the results on Your local machine only).</p>
<div class="codesnip-container" >
<div class="codesnip">javascript:document.<span class="me1">body</span>.<span class="me1">contentEditable</span>=<span class="st0">'true'</span>; document.<span class="me1">designMode</span>=<span class="st0">'on'</span>; <span class="kw1">void</span> <span class="nu0">0</span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/javascript-edit-web-page-in-browser/119/feed</wfw:commentRss>
		</item>
		<item>
		<title>Oracle: redo log switches by date</title>
		<link>http://code.techinterviews.com/oracle-redo-log-switches-by-date/117</link>
		<comments>http://code.techinterviews.com/oracle-redo-log-switches-by-date/117#comments</comments>
		<pubDate>Thu, 08 May 2008 08:51:27 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/oracle-redo-log-switches-by-date/117</guid>
		<description><![CDATA[The following script help to find, how often the redo logs were switched.
It calculates the number by date and by hour.


SET LINESIZE 150
COLUMN DAY FORMAT A3
COLUMN Total FORMAT 99G990
COLUMN h00 FORMAT 999
COLUMN h01 FORMAT 999
COLUMN h02 FORMAT 999
COLUMN h03 FORMAT 999
COLUMN h04 FORMAT 999
COLUMN h05 FORMAT 999
COLUMN h06 FORMAT 999
COLUMN h07 FORMAT 999
COLUMN h08 FORMAT [...]]]></description>
			<content:encoded><![CDATA[<p>The following script help to find, how often the redo logs were switched.<br />
It calculates the number by date and by hour.</p>
<p><span id="more-117"></span></p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw1">SET</span> LINESIZE <span class="nu0">150</span><br />
<span class="kw1">COLUMN</span> <span class="kw1">DAY</span> FORMAT A3<br />
<span class="kw1">COLUMN</span> Total FORMAT 99G990<br />
<span class="kw1">COLUMN</span> h00 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h01 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h02 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h03 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h04 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h05 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h06 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h07 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h08 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h09 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h10 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h11 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h12 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h13 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h14 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h15 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h16 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h17 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h18 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h19 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h20 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h21 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h22 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h23 FORMAT <span class="nu0">999</span><br />
<span class="kw1">COLUMN</span> h24 FORMAT <span class="nu0">999</span><br />
BREAK <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"Total"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h00"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h01"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h02"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h03"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h04"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h05"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h06"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h07"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h08"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h09"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h10"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h11"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h12"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h13"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h14"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h15"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h16"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h17"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h18"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h19"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h20"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h21"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h22"</span> <span class="kw1">ON</span> REPORT<br />
COMPUTE <span class="kw1">MAX</span> <span class="kw1">OF</span> <span class="st0">"h23"</span> <span class="kw1">ON</span> REPORT</p>
<p><span class="kw1">SELECT</span>&nbsp; <span class="kw1">TRUNC</span><span class="br0">&#40;</span>first_time<span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"Date"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'Dy'</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"Day"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">COUNT</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"Total"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'00'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h00"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'01'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h01"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'02'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h02"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'03'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h03"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'04'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h04"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'05'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h05"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'06'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h06"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'07'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h07"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'08'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h08"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'09'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h09"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'10'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h10"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'11'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h11"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'12'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h12"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'13'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h13"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'14'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h14"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'15'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h15"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'16'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h16"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'17'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h17"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'18'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h18"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'19'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h19"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'20'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h20"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'21'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h21"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'22'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h22"</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span><span class="kw1">DECODE</span><span class="br0">&#40;</span><span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'HH24'</span><span class="br0">&#41;</span>,<span class="st0">'23'</span>,<span class="nu0">1</span>,<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">AS</span> <span class="st0">"h23"</span><br />
<span class="kw1">FROM</span>&nbsp; &nbsp; V$log_history<br />
<span class="kw1">GROUP</span> <span class="kw1">BY</span> <span class="kw1">TRUNC</span><span class="br0">&#40;</span>first_time<span class="br0">&#41;</span>, <span class="kw1">TO_CHAR</span><span class="br0">&#40;</span>first_time, <span class="st0">'Dy'</span><span class="br0">&#41;</span><br />
<span class="kw1">ORDER</span> <span class="kw1">BY</span> <span class="nu0">1</span>;<br />
CLEAR BREAKS</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/oracle-redo-log-switches-by-date/117/feed</wfw:commentRss>
		</item>
		<item>
		<title>JavaScript: Soundex implementation</title>
		<link>http://code.techinterviews.com/javascript-soundex-implementation/116</link>
		<comments>http://code.techinterviews.com/javascript-soundex-implementation/116#comments</comments>
		<pubDate>Thu, 10 Apr 2008 15:00:24 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/javascript-soundex-implementation/116</guid>
		<description><![CDATA[There is a special algorithm for comparision strings, which sound similar (Soundex).
Here is JavaScript Soundex implementation:

function soundex &#40; s_src &#41;
&#123;&#160; &#160; 
&#160;var s_rez = "0000" ;
&#160;var new_code, prev, idx
&#160;
&#160;a_codes = &#123; "bfpv": 1, "cgjkqsxz":2, "dt": 3, "l": 4, "mn": 5, "r": 6 &#125;;
&#160;
&#160;s_src = s_src.toLowerCase&#40;&#41;.replace&#40;/ /g,""&#41;
&#160;
&#160;if &#40; s_src.length &#60; 1&#41; &#123;
&#160; &#160;return&#40;s_rez&#41;;
&#160;&#125;
&#160;
&#160;s_rez = s_src.substr&#40;0,1&#41;;
&#160;prev = [...]]]></description>
			<content:encoded><![CDATA[<p>There is a special algorithm for comparision strings, which sound similar (<a href="http://en.wikipedia.org/wiki/Soundex">Soundex</a>).</p>
<p>Here is JavaScript Soundex implementation:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw2">function</span> soundex <span class="br0">&#40;</span> s_src <span class="br0">&#41;</span><br />
<span class="br0">&#123;</span>&nbsp; &nbsp; <br />
&nbsp;<span class="kw2">var</span> s_rez = <span class="st0">"0000"</span> ;<br />
&nbsp;<span class="kw2">var</span> new_code, prev, idx<br />
&nbsp;<br />
&nbsp;a_codes = <span class="br0">&#123;</span> <span class="st0">"bfpv"</span>: <span class="nu0">1</span>, <span class="st0">"cgjkqsxz"</span>:<span class="nu0">2</span>, <span class="st0">"dt"</span>: <span class="nu0">3</span>, <span class="st0">"l"</span>: <span class="nu0">4</span>, <span class="st0">"mn"</span>: <span class="nu0">5</span>, <span class="st0">"r"</span>: <span class="nu0">6</span> <span class="br0">&#125;</span>;<br />
&nbsp;<br />
&nbsp;s_src = s_src.<span class="me1">toLowerCase</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">replace</span><span class="br0">&#40;</span><span class="re0">/ /g</span>,<span class="st0">""</span><span class="br0">&#41;</span><br />
&nbsp;<br />
&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span> s_src.<span class="me1">length</span> &lt; <span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp;<span class="kw1">return</span><span class="br0">&#40;</span>s_rez<span class="br0">&#41;</span>;<br />
&nbsp;<span class="br0">&#125;</span><br />
&nbsp;<br />
&nbsp;s_rez = s_src.<span class="me1">substr</span><span class="br0">&#40;</span><span class="nu0">0</span>,<span class="nu0">1</span><span class="br0">&#41;</span>;<br />
&nbsp;prev = <span class="st0">"0"</span>;<br />
&nbsp;<br />
&nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span> idx = <span class="nu0">1</span> ; idx &lt; s_src.<span class="me1">length</span> ; idx++<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp;new_code = <span class="st0">"0"</span>;<br />
&nbsp; &nbsp;cur_char = s_src.<span class="me1">substr</span><span class="br0">&#40;</span>idx,<span class="nu0">1</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp;<span class="kw1">for</span> <span class="br0">&#40;</span>s_code <span class="kw1">in</span> a_codes<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>s_code.<span class="me1">indexOf</span><span class="br0">&#40;</span>cur_char<span class="br0">&#41;</span> &gt;= <span class="nu0">0</span><span class="br0">&#41;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> new_code = a_codes<span class="br0">&#91;</span> s_code <span class="br0">&#93;</span> ; <span class="kw1">break</span> ; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>new_code != prev &amp;&amp; new_code != <span class="st0">"0"</span> <span class="br0">&#41;</span>&nbsp; <span class="br0">&#123;</span>&nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp;s_rez += new_code;<br />
&nbsp; &nbsp;<span class="br0">&#125;</span><br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp;prev = new_code;<br />
&nbsp; <span class="br0">&#125;</span> <br />
&nbsp; <br />
&nbsp;s_rez = s_rez + <span class="st0">"0000"</span><br />
&nbsp;<br />
&nbsp;<span class="kw1">return</span> s_rez.<span class="me1">substr</span><span class="br0">&#40;</span><span class="nu0">0</span>,<span class="nu0">4</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/javascript-soundex-implementation/116/feed</wfw:commentRss>
		</item>
		<item>
		<title>Dynamic image resizing in PHP</title>
		<link>http://code.techinterviews.com/dynamic-image-resizing-in-php/115</link>
		<comments>http://code.techinterviews.com/dynamic-image-resizing-in-php/115#comments</comments>
		<pubDate>Sat, 05 Apr 2008 04:52:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/dynamic-image-resizing-in-php/115</guid>
		<description><![CDATA[Via Darren Hoyt we found a reference to TimThumb, a quick and fast PHP script for on-the-fly image resizing. Once the script is on the server, and named timthumb.php, you can use the following reference to launch it:
&#60;img src="/scripts/timthumb.php?src=/images/whatever.jpg&#038;h=150&#038;w=150&#038;zc=1" alt="" /&#62;
Here's the source code for timthumb.php:

// TimThumb script created by Tim McDaniels and Darren Hoyt [...]]]></description>
			<content:encoded><![CDATA[<p>Via <a href="http://www.darrenhoyt.com/2008/04/02/timthumb-php-script-released/">Darren Hoyt</a> we found a reference to <a href="http://code.google.com/p/timthumb/">TimThumb</a>, a quick and fast PHP script for on-the-fly image resizing. Once the script is on the server, and named timthumb.php, you can use the following reference to launch it:<br />
&lt;img src="/scripts/timthumb.php?src=/images/whatever.jpg&#038;h=150&#038;w=150&#038;zc=1" alt="" /&gt;<br />
Here's the source code for timthumb.php:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">// TimThumb script created by Tim McDaniels and Darren Hoyt with tweaks by Ben Gillbanks</span><br />
<span class="co1">// http://code.google.com/p/timthumb/</span></p>
<p><span class="co1">// MIT License: http://www.opensource.org/licenses/mit-license.php</span></p>
<p><span class="coMULTI">/* Parameters allowed: */</span></p>
<p><span class="co1">// w: width</span><br />
<span class="co1">// h: height</span><br />
<span class="co1">// zc: zoom crop (0 or 1)</span><br />
<span class="co1">// q: quality (default is 75 and max is 100)</span></p>
<p><span class="co1">// HTML example: &lt;img src=&quot;/scripts/timthumb.php?src=/images/whatever.jpg&amp;w=150&amp;h=200&amp;zc=1&quot; alt=&quot;&quot; /&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="kw1">if</span><span class="br0">&#40;</span> !<a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span> <span class="re0">$_REQUEST</span><span class="br0">&#91;</span> <span class="st0">"src"</span> <span class="br0">&#93;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span> <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span> <span class="st0">"no image specified"</span> <span class="br0">&#41;</span>; <span class="br0">&#125;</span></p>
<p><span class="co1">// clean params before use</span><br />
<span class="re0">$src</span> = <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span> <span class="st0">"/^(<span class="es0">\.</span>+(<span class="es0">\/</span>|))+/"</span>, <span class="st0">""</span>, <span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st0">'src'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span>;<br />
<span class="re0">$src</span> = <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span> <span class="st0">'/^(s?f|ht)tps?:<span class="es0">\/</span><span class="es0">\/</span>[^<span class="es0">\/</span>]+/i'</span>, <span class="st0">''</span>, <span class="re0">$src</span> <span class="br0">&#41;</span>;<br />
<span class="re0">$new_width</span> = <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span> <span class="st0">"/[^0-9]/"</span>, <span class="st0">""</span>, <span class="re0">$_REQUEST</span><span class="br0">&#91;</span> <span class="st0">'w'</span> <span class="br0">&#93;</span> <span class="br0">&#41;</span>;<br />
<span class="re0">$new_height</span> = <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span> <span class="st0">"/[^0-9]/"</span>, <span class="st0">""</span>, <span class="re0">$_REQUEST</span><span class="br0">&#91;</span> <span class="st0">'h'</span> <span class="br0">&#93;</span> <span class="br0">&#41;</span>;<br />
<span class="re0">$zoom_crop</span> = <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span> <span class="st0">"/[^0-9]/"</span>, <span class="st0">""</span>, <span class="re0">$_REQUEST</span><span class="br0">&#91;</span> <span class="st0">'zc'</span> <span class="br0">&#93;</span> <span class="br0">&#41;</span>;</p>
<p><span class="kw1">if</span><span class="br0">&#40;</span> !<a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span> <span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st0">'q'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$quality</span> = <span class="nu0">80</span>; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> <span class="re0">$quality</span> = <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span><span class="st0">"/[^0-9]/"</span>, <span class="st0">""</span>, <span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st0">'q'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span>; <span class="br0">&#125;</span></p>
<p><span class="co1">// set path to cache directory (default is ./cache)</span><br />
<span class="co1">// this can be changed to a different location</span><br />
<span class="re0">$cache_dir</span> = <span class="st0">'./cache'</span>;</p>
<p><span class="co1">// get mime type of src</span><br />
<span class="re0">$mime_type</span> = mime_type<span class="br0">&#40;</span> <span class="re0">$src</span> <span class="br0">&#41;</span>;</p>
<p><span class="co1">// check to see if this image is in the cache already</span><br />
check_cache<span class="br0">&#40;</span> <span class="re0">$cache_dir</span>, <span class="re0">$mime_type</span> <span class="br0">&#41;</span>;</p>
<p><span class="co1">// make sure that the src is gif/jpg/png</span><br />
<span class="kw1">if</span><span class="br0">&#40;</span> !valid_src_mime_type<span class="br0">&#40;</span> <span class="re0">$mime_type</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$error</span> = <span class="st0">"Invalid src mime type: $mime_type"</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span> <span class="re0">$error</span> <span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="co1">// check to see if GD function exist</span><br />
<span class="kw1">if</span><span class="br0">&#40;</span>!<a href="http://www.php.net/function_exists"><span class="kw3">function_exists</span></a><span class="br0">&#40;</span><span class="st0">'imagecreatetruecolor'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$error</span> = <span class="st0">"GD Library Error: imagecreatetruecolor does not exist"</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span> <span class="re0">$error</span> <span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="co1">// set document root</span><br />
<span class="re0">$doc_root</span> = <span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st0">'DOCUMENT_ROOT'</span><span class="br0">&#93;</span>;</p>
<p><span class="co1">// get path to image on file system </span><br />
<span class="re0">$src</span> = <span class="re0">$doc_root</span> . <span class="st0">'/'</span> . <span class="re0">$src</span>;</p>
<p><span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$src</span><span class="br0">&#41;</span> &amp;&amp; <a href="http://www.php.net/file_exists"><span class="kw3">file_exists</span></a><span class="br0">&#40;</span> <span class="re0">$src</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// open the existing image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$image</span> = open_image<span class="br0">&#40;</span><span class="re0">$mime_type</span>, <span class="re0">$src</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$image</span> === <span class="kw2">false</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <a href="http://www.php.net/die"><span class="kw3">die</span></a> <span class="br0">&#40;</span><span class="st0">'Unable to open image : '</span> . <span class="re0">$src</span> <span class="br0">&#41;</span>; <span class="br0">&#125;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Get original width and height</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$width</span> = imagesx<span class="br0">&#40;</span><span class="re0">$image</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$height</span> = imagesy<span class="br0">&#40;</span><span class="re0">$image</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// generate new w/h if not provided</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$new_width</span> &amp;&amp; !<span class="re0">$new_height</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$new_height</span> = <span class="re0">$height</span> * <span class="br0">&#40;</span><span class="re0">$new_width</span>/<span class="re0">$width</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">elseif</span><span class="br0">&#40;</span><span class="re0">$new_height</span> &amp;&amp; !<span class="re0">$new_width</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$new_width</span> = <span class="re0">$width</span> * <span class="br0">&#40;</span><span class="re0">$new_height</span>/<span class="re0">$height</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">elseif</span><span class="br0">&#40;</span>!<span class="re0">$new_width</span> &amp;&amp; !<span class="re0">$new_height</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$new_width</span> = <span class="re0">$width</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$new_height</span> = <span class="re0">$height</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// create a new true color image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$canvas</span> = imagecreatetruecolor<span class="br0">&#40;</span><span class="re0">$new_width</span>, <span class="re0">$new_height</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> <span class="re0">$zoom_crop</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$src_x</span> = <span class="re0">$src_y</span> = <span class="nu0">0</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$src_w</span> = <span class="re0">$width</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$src_h</span> = <span class="re0">$height</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$cmp_x</span> = <span class="re0">$width</span>&nbsp; / <span class="re0">$new_width</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$cmp_y</span> = <span class="re0">$height</span> / <span class="re0">$new_height</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// calculate x or y coordinate and width or height of source</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="re0">$cmp_x</span> &gt; <span class="re0">$cmp_y</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$src_w</span> = <a href="http://www.php.net/round"><span class="kw3">round</span></a><span class="br0">&#40;</span> <span class="br0">&#40;</span> <span class="re0">$width</span> / <span class="re0">$cmp_x</span> * <span class="re0">$cmp_y</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$src_x</span> = <a href="http://www.php.net/round"><span class="kw3">round</span></a><span class="br0">&#40;</span> <span class="br0">&#40;</span> <span class="re0">$width</span> - <span class="br0">&#40;</span> <span class="re0">$width</span> / <span class="re0">$cmp_x</span> * <span class="re0">$cmp_y</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> / <span class="nu0">2</span> <span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">elseif</span> <span class="br0">&#40;</span> <span class="re0">$cmp_y</span> &gt; <span class="re0">$cmp_x</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$src_h</span> = <a href="http://www.php.net/round"><span class="kw3">round</span></a><span class="br0">&#40;</span> <span class="br0">&#40;</span> <span class="re0">$height</span> / <span class="re0">$cmp_y</span> * <span class="re0">$cmp_x</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$src_y</span> = <a href="http://www.php.net/round"><span class="kw3">round</span></a><span class="br0">&#40;</span> <span class="br0">&#40;</span> <span class="re0">$height</span> - <span class="br0">&#40;</span> <span class="re0">$height</span> / <span class="re0">$cmp_y</span> * <span class="re0">$cmp_x</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> / <span class="nu0">2</span> <span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; imagecopyresampled<span class="br0">&#40;</span> <span class="re0">$canvas</span>, <span class="re0">$image</span>, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="re0">$src_x</span>, <span class="re0">$src_y</span>, <span class="re0">$new_width</span>, <span class="re0">$new_height</span>, <span class="re0">$src_w</span>, <span class="re0">$src_h</span> <span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// copy and resize part of an image with resampling</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; imagecopyresampled<span class="br0">&#40;</span> <span class="re0">$canvas</span>, <span class="re0">$image</span>, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="re0">$new_width</span>, <span class="re0">$new_height</span>, <span class="re0">$width</span>, <span class="re0">$height</span> <span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// output image to browser based on mime type</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; show_image<span class="br0">&#40;</span> <span class="re0">$mime_type</span>, <span class="re0">$canvas</span>, <span class="re0">$quality</span>, <span class="re0">$cache_dir</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// remove image from memory</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ImageDestroy<span class="br0">&#40;</span> <span class="re0">$canvas</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> <a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span> <span class="re0">$src</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="re0">$src</span> . <span class="st0">' not found.'</span>; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'no source specified.'</span>; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> show_image <span class="br0">&#40;</span><span class="re0">$mime_type</span>, <span class="re0">$image_resized</span>, <span class="re0">$quality</span>, <span class="re0">$cache_dir</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// check to see if we can write to the cache directory</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$is_writable</span> = <span class="nu0">0</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$cache_file_name</span> = <span class="re0">$cache_dir</span> . <span class="st0">'/'</span> . get_cache_file<span class="br0">&#40;</span><span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> <a href="http://www.php.net/touch"><span class="kw3">touch</span></a><span class="br0">&#40;</span> <span class="re0">$cache_file_name</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// give 666 permissions so that the developer </span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// can overwrite web server user</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/chmod"><span class="kw3">chmod</span></a><span class="br0">&#40;</span> <span class="re0">$cache_file_name</span>, <span class="nu0">0666</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$is_writable</span> = <span class="nu0">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$cache_file_name</span> = <span class="kw2">NULL</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">'Content-type: '</span> . <span class="re0">$mime_type</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/stristr"><span class="kw3">stristr</span></a><span class="br0">&#40;</span> <span class="re0">$mime_type</span>, <span class="st0">'gif'</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; imagegif<span class="br0">&#40;</span> <span class="re0">$image_resized</span>, <span class="re0">$cache_file_name</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">elseif</span><span class="br0">&#40;</span> <a href="http://www.php.net/stristr"><span class="kw3">stristr</span></a><span class="br0">&#40;</span> <span class="re0">$mime_type</span>, <span class="st0">'jpeg'</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; imagejpeg<span class="br0">&#40;</span> <span class="re0">$image_resized</span>, <span class="re0">$cache_file_name</span>, <span class="re0">$quality</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">elseif</span><span class="br0">&#40;</span> <a href="http://www.php.net/stristr"><span class="kw3">stristr</span></a><span class="br0">&#40;</span> <span class="re0">$mime_type</span>, <span class="st0">'png'</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; imagepng<span class="br0">&#40;</span> <span class="re0">$image_resized</span>, <span class="re0">$cache_file_name</span>, <a href="http://www.php.net/ceil"><span class="kw3">ceil</span></a><span class="br0">&#40;</span> <span class="re0">$quality</span> / <span class="nu0">10</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> <span class="re0">$is_writable</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span> show_cache_file<span class="br0">&#40;</span> <span class="re0">$cache_dir</span>, <span class="re0">$mime_type</span> <span class="br0">&#41;</span>; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a>;</p>
<p><span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> open_image <span class="br0">&#40;</span><span class="re0">$mime_type</span>, <span class="re0">$src</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/stristr"><span class="kw3">stristr</span></a><span class="br0">&#40;</span><span class="re0">$mime_type</span>, <span class="st0">'gif'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$image</span> = imagecreatefromgif<span class="br0">&#40;</span><span class="re0">$src</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">elseif</span><span class="br0">&#40;</span><a href="http://www.php.net/stristr"><span class="kw3">stristr</span></a><span class="br0">&#40;</span><span class="re0">$mime_type</span>, <span class="st0">'jpeg'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$image</span> = imagecreatefromjpeg<span class="br0">&#40;</span><span class="re0">$src</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">elseif</span><span class="br0">&#40;</span><a href="http://www.php.net/stristr"><span class="kw3">stristr</span></a><span class="br0">&#40;</span><span class="re0">$mime_type</span>, <span class="st0">'png'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$image</span> = imagecreatefrompng<span class="br0">&#40;</span><span class="re0">$src</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$image</span>;</p>
<p><span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> mime_type <span class="br0">&#40;</span><span class="re0">$file</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$frags</span> = <a href="http://www.php.net/split"><span class="kw3">split</span></a><span class="br0">&#40;</span><span class="st0">"<span class="es0">\.</span>"</span>, <span class="re0">$file</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$ext</span> = <a href="http://www.php.net/strtolower"><span class="kw3">strtolower</span></a><span class="br0">&#40;</span> <span class="re0">$frags</span><span class="br0">&#91;</span> <a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#40;</span> <span class="re0">$frags</span> <span class="br0">&#41;</span> - <span class="nu0">1</span> <span class="br0">&#93;</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$types</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><br />
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">'jpg'</span>&nbsp; =&gt; <span class="st0">'image/jpeg'</span>,<br />
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">'jpeg'</span> =&gt; <span class="st0">'image/jpeg'</span>,<br />
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">'png'</span>&nbsp; =&gt; <span class="st0">'image/png'</span>,<br />
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">'gif'</span>&nbsp; =&gt; <span class="st0">'image/gif'</span>,<br />
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">'bmp'</span>&nbsp; =&gt; <span class="st0">'image/bmp'</span>, <br />
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">'doc'</span>&nbsp; =&gt; <span class="st0">'application/msword'</span>,<br />
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">'xls'</span>&nbsp; =&gt; <span class="st0">'application/msword'</span>,<br />
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">'xml'</span>&nbsp; =&gt; <span class="st0">'text/xml'</span>,<br />
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">'html'</span> =&gt; <span class="st0">'text/html'</span><br />
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$mime_type</span> = <span class="re0">$types</span><span class="br0">&#91;</span><span class="re0">$ext</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>!<a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$mime_type</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$mime_type</span> = <span class="st0">'unknown'</span>; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span><span class="br0">&#40;</span><span class="re0">$mime_type</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> valid_src_mime_type <span class="br0">&#40;</span> <span class="re0">$mime_type</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> <a href="http://www.php.net/preg_match"><span class="kw3">preg_match</span></a><span class="br0">&#40;</span> <span class="st0">"/jpg|jpeg|gif|png/i"</span>, <span class="re0">$mime_type</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="nu0">1</span>; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="nu0">0</span>;</p>
<p><span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> check_cache <span class="br0">&#40;</span> <span class="re0">$cache_dir</span>, <span class="re0">$mime_type</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// make sure cache dir exists</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>!<a href="http://www.php.net/file_exists"><span class="kw3">file_exists</span></a><span class="br0">&#40;</span><span class="re0">$cache_dir</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// give 777 permissions so that developer can overwrite</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// files created by web server user</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/mkdir"><span class="kw3">mkdir</span></a><span class="br0">&#40;</span> <span class="re0">$cache_dir</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/chmod"><span class="kw3">chmod</span></a><span class="br0">&#40;</span> <span class="re0">$cache_dir</span>, <span class="nu0">0777</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; show_cache_file<span class="br0">&#40;</span> <span class="re0">$cache_dir</span>, <span class="re0">$mime_type</span> <span class="br0">&#41;</span>;</p>
<p><span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> show_cache_file <span class="br0">&#40;</span> <span class="re0">$cache_dir</span>, <span class="re0">$mime_type</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; <span class="re0">$cache_file</span> = get_cache_file<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> <a href="http://www.php.net/file_exists"><span class="kw3">file_exists</span></a><span class="br0">&#40;</span> <span class="re0">$cache_dir</span> . <span class="st0">'/'</span> . <span class="re0">$cache_file</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// check for updates</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$if_modified_since</span> = <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span><span class="st0">'/;.*$/'</span>, <span class="st0">''</span>, <span class="re0">$_SERVER</span><span class="br0">&#91;</span> <span class="st0">"HTTP_IF_MODIFIED_SINCE"</span> <span class="br0">&#93;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$gmdate_mod</span> = <a href="http://www.php.net/gmdate"><span class="kw3">gmdate</span></a><span class="br0">&#40;</span><span class="st0">'D, d M Y H:i:s'</span>, <a href="http://www.php.net/filemtime"><span class="kw3">filemtime</span></a><span class="br0">&#40;</span> <span class="re0">$cache_dir</span> . <span class="st0">'/'</span> . <span class="re0">$cache_file</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/strstr"><span class="kw3">strstr</span></a><span class="br0">&#40;</span><span class="re0">$gmdate_mod</span>, <span class="st0">'GMT'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$gmdate_mod</span> .= <span class="st0">" GMT"</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//error_log(&quot;TimThumb: $gmdate_mod == $if_modified_since&quot;);</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="re0">$if_modified_since</span> == <span class="re0">$gmdate_mod</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span> <span class="st0">"HTTP/1.1 304 Not Modified"</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// send headers then display image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span> <span class="st0">"Content-Type: "</span> . <span class="re0">$mime_type</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span> <span class="st0">"Last-Modified: "</span> . <a href="http://www.php.net/gmdate"><span class="kw3">gmdate</span></a><span class="br0">&#40;</span><span class="st0">'D, d M Y H:i:s'</span>, <a href="http://www.php.net/filemtime"><span class="kw3">filemtime</span></a><span class="br0">&#40;</span> <span class="re0">$cache_dir</span> . <span class="st0">'/'</span> . <span class="re0">$cache_file</span> <span class="br0">&#41;</span> . <span class="st0">" GMT"</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span> <span class="st0">"Content-Length: "</span> . <a href="http://www.php.net/filesize"><span class="kw3">filesize</span></a><span class="br0">&#40;</span> <span class="re0">$cache_dir</span> . <span class="st0">'/'</span> . <span class="re0">$cache_file</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span> <span class="st0">"Cache-Control: max-age=9999, must-revalidate"</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span> <span class="st0">"Expires: "</span> . <a href="http://www.php.net/gmdate"><span class="kw3">gmdate</span></a><span class="br0">&#40;</span> <span class="st0">"D, d M Y H:i:s"</span>, <a href="http://www.php.net/time"><span class="kw3">time</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span> + <span class="nu0">9999</span> <span class="br0">&#41;</span> . <span class="st0">"GMT"</span> <span class="br0">&#41;</span>; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/readfile"><span class="kw3">readfile</span></a><span class="br0">&#40;</span> <span class="re0">$cache_dir</span> . <span class="st0">'/'</span> . <span class="re0">$cache_file</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a>;</p>
<p>&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> get_cache_file <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$request_params</span> = <span class="re0">$_REQUEST</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$cachename</span> = <span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st0">'src'</span><span class="br0">&#93;</span> . <span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st0">'w'</span><span class="br0">&#93;</span> . <span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st0">'h'</span><span class="br0">&#93;</span> . <span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st0">'zc'</span><span class="br0">&#93;</span> . <span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st0">'q'</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$cache_file</span> = <a href="http://www.php.net/md5"><span class="kw3">md5</span></a><span class="br0">&#40;</span> <span class="re0">$cachename</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$cache_file</span>;</p>
<p><span class="br0">&#125;</span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/dynamic-image-resizing-in-php/115/feed</wfw:commentRss>
		</item>
		<item>
		<title>Oracle: usage of the tablespaces (permanent and temporary)</title>
		<link>http://code.techinterviews.com/oracle-usage-of-the-tablespaces-permanent-and-temporary/114</link>
		<comments>http://code.techinterviews.com/oracle-usage-of-the-tablespaces-permanent-and-temporary/114#comments</comments>
		<pubDate>Fri, 28 Mar 2008 17:01:44 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[space]]></category>

		<category><![CDATA[tablespace]]></category>

		<category><![CDATA[temp]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/oracle-usage-of-the-tablespaces-permanent-and-temporary/114</guid>
		<description><![CDATA[
SET pagesize 10000
SET COLSEP '&#124;'
SET VERIFY off
SET serveroutput ON SIZE 1000000
BREAK ON report
COLUMN tablespace_name format a30 heading 'TABLESPACE'
COLUMN sizegb&#160; &#160;format 9999999999D9 heading 'SIZE-Gb'
COLUMN usedproc format 999D99 heading 'USED-%'
COLUMN status format a10 heading 'STATUS'
COMPUTE SUM LABEL 'Total size:' OF sizegb ON report
SELECT b.tablespace_name ,
&#160; &#160; &#160; &#160;b.bytes/1024/1024/1024 AS sizegb ,
&#160; &#160; &#160; &#160;NVL&#40;100-&#40;&#40;a.bytes/b.bytes&#41;*100&#41;, 100&#41; usedproc,
&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<div class="codesnip-container" >
<div class="codesnip"><span class="kw1">SET</span> pagesize <span class="nu0">10000</span></p>
<p><span class="kw1">SET</span> COLSEP <span class="st0">'|'</span><br />
<span class="kw1">SET</span> VERIFY off<br />
<span class="kw1">SET</span> serveroutput <span class="kw1">ON</span> <span class="kw1">SIZE</span> <span class="nu0">1000000</span><br />
BREAK <span class="kw1">ON</span> report</p>
<p><span class="kw1">COLUMN</span> tablespace_name format a30 heading <span class="st0">'TABLESPACE'</span><br />
<span class="kw1">COLUMN</span> sizegb&nbsp; &nbsp;format 9999999999D9 heading <span class="st0">'SIZE-Gb'</span><br />
<span class="kw1">COLUMN</span> usedproc format 999D99 heading <span class="st0">'USED-%'</span><br />
<span class="kw1">COLUMN</span> status format a10 heading <span class="st0">'STATUS'</span><br />
COMPUTE <span class="kw1">SUM</span> LABEL <span class="st0">'Total size:'</span> <span class="kw1">OF</span> sizegb <span class="kw1">ON</span> report</p>
<p><span class="kw1">SELECT</span> b.tablespace_name ,<br />
&nbsp; &nbsp; &nbsp; &nbsp;b.bytes/<span class="nu0">1024</span>/<span class="nu0">1024</span>/<span class="nu0">1024</span> <span class="kw1">AS</span> sizegb ,<br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">NVL</span><span class="br0">&#40;</span><span class="nu0">100</span>-<span class="br0">&#40;</span><span class="br0">&#40;</span>a.bytes/b.bytes<span class="br0">&#41;</span>*<span class="nu0">100</span><span class="br0">&#41;</span>, <span class="nu0">100</span><span class="br0">&#41;</span> usedproc,<br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">REPLACE</span><span class="br0">&#40;</span>c.status,<span class="st0">' '</span>,<span class="st0">'_'</span><span class="br0">&#41;</span> status<br />
<span class="kw1">FROM</span><br />
&nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span> <span class="kw1">SELECT</span> tablespace_name,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span>bytes<span class="br0">&#41;</span> bytes<br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">FROM</span> dba_free_space<br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">GROUP</span> <span class="kw1">BY</span> tablespace_name<br />
&nbsp; &nbsp; &nbsp;<span class="br0">&#41;</span> a ,<br />
&nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span> <span class="kw1">SELECT</span> tablespace_name,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SUM</span><span class="br0">&#40;</span>bytes<span class="br0">&#41;</span> bytes<br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">FROM</span> dba_data_files<br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">GROUP</span> <span class="kw1">BY</span> tablespace_name<br />
&nbsp; &nbsp; &nbsp;<span class="br0">&#41;</span> b ,<br />
&nbsp; &nbsp; &nbsp; &nbsp;dba_tablespaces c<br />
<span class="kw1">WHERE</span> b.tablespace_name = a.tablespace_name <span class="br0">&#40;</span>+<span class="br0">&#41;</span><br />
<span class="kw1">AND</span>&nbsp; &nbsp;b.tablespace_name = c.tablespace_name<br />
<span class="kw1">UNION</span><br />
<span class="kw1">SELECT</span>&nbsp; f.TABLESPACE_NAME,<br />
&nbsp; &nbsp; &nbsp; &nbsp; f.TOTAL_MB/<span class="nu0">1024</span> sizegb,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">NVL</span><span class="br0">&#40;</span> <span class="br0">&#40;</span>u.USED_MB/f.TOTAL_MB<span class="br0">&#41;</span>*<span class="nu0">100</span>, <span class="nu0">0</span> <span class="br0">&#41;</span> usedproc,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">'TEMPORARY'</span> status<br />
<span class="kw1">FROM</span><br />
<span class="br0">&#40;</span><br />
&nbsp;<span class="kw1">SELECT</span> f1.TABLESPACE_NAME,<span class="kw1">SUM</span><span class="br0">&#40;</span> f1.BYTES/<span class="nu0">1024</span>/<span class="nu0">1024</span> <span class="br0">&#41;</span> TOTAL_MB<br />
&nbsp;<span class="kw1">FROM</span> <span class="br0">&#40;</span><br />
&nbsp; <span class="kw1">SELECT</span>&nbsp; TABLESPACE_NAME,BYTES<br />
&nbsp; <span class="kw1">FROM</span> dba_temp_files<br />
&nbsp; <span class="kw1">UNION</span> <span class="kw1">ALL</span><br />
&nbsp; <span class="kw1">SELECT</span>&nbsp; TABLESPACE_NAME,BYTES<br />
&nbsp; <span class="kw1">FROM</span> dba_data_files<br />
&nbsp; <span class="kw1">WHERE</span> TABLESPACE_NAME <span class="kw1">IN</span> <span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">SELECT</span> TABLESPACE_NAME<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">FROM</span> dba_tablespaces<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">WHERE</span> CONTENTS=<span class="st0">'TEMPORARY'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span><br />
&nbsp;<span class="br0">&#41;</span> f1<br />
&nbsp;<span class="kw1">GROUP</span> <span class="kw1">BY</span> f1.TABLESPACE_NAME<br />
<span class="br0">&#41;</span> f,<br />
<span class="br0">&#40;</span><br />
&nbsp;<span class="kw1">SELECT</span> u1.<span class="kw1">TABLESPACE</span>,<br />
&nbsp;<span class="kw1">SUM</span><span class="br0">&#40;</span>u1.blocks<span class="br0">&#41;</span> * <span class="kw1">MAX</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="kw1">SELECT</span> <span class="kw1">VALUE</span> <span class="kw1">FROM</span> v$parameter <span class="kw1">WHERE</span> name=<span class="st0">'db_block_size'</span><span class="br0">&#41;</span>/<span class="nu0">1024</span>/<span class="nu0">1024</span><span class="br0">&#41;</span>&nbsp; USED_MB<br />
&nbsp;<span class="kw1">FROM</span> v$sort_usage u1<br />
&nbsp;<span class="kw1">GROUP</span> <span class="kw1">BY</span> u1.<span class="kw1">TABLESPACE</span><br />
<span class="br0">&#41;</span> u<br />
<span class="kw1">WHERE</span> f.TABLESPACE_NAME = u.<span class="kw1">TABLESPACE</span> <span class="br0">&#40;</span>+<span class="br0">&#41;</span><br />
<span class="kw1">ORDER</span> <span class="kw1">BY</span> <span class="nu0">1</span>;</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/oracle-usage-of-the-tablespaces-permanent-and-temporary/114/feed</wfw:commentRss>
		</item>
		<item>
		<title>AppleScript: rotate mov file in QuickTime Pro</title>
		<link>http://code.techinterviews.com/applescript-rotate-mov-file-in-quicktime-pro/113</link>
		<comments>http://code.techinterviews.com/applescript-rotate-mov-file-in-quicktime-pro/113#comments</comments>
		<pubDate>Fri, 28 Mar 2008 11:07:09 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[AppleScript]]></category>

		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/applescript-rotate-mov-file-in-quicktime-pro/113</guid>
		<description><![CDATA[Some kind of life hack: it's very easy to make mov file with digital camera, rotating it 90 degrees. However, it's not so easy to convert the result file to the 'visible' form.
QuickTime Pro could do this, and I found the AppleScript script, which could make it even more easy.

tell application "QuickTime Player"
&#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Some kind of <a href="http://lifehacker.com/">life hack</a>: it's very easy to make mov file with digital camera, rotating it 90 degrees. However, it's not so easy to convert the result file to the 'visible' form.</p>
<p><a href="http://www.apple.com/quicktime/">QuickTime Pro</a> could do this, and I found the AppleScript script, which could make it even more easy.</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw1">tell</span> application <span class="st0">"QuickTime Player"</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">set</span> m <span class="kw1">to</span> <span class="br0">&#40;</span><span class="kw1">get</span> movie <span class="nu0">1</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; rotate m by -<span class="nu0">90</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">save</span> self contained m <span class="kw1">in</span> <span class="br0">&#40;</span>choose file name <span class="kw1">with</span> prompt <span class="st0">"save self contained movie"</span><span class="br0">&#41;</span><br />
<span class="kw1">end</span> <span class="kw1">tell</span></div>
</div>
<p>The script is mentioned <a href="http://www.macosxhints.com/article.php?story=20070122085020753">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/applescript-rotate-mov-file-in-quicktime-pro/113/feed</wfw:commentRss>
		</item>
		<item>
		<title>Oracle: plan of the running query</title>
		<link>http://code.techinterviews.com/oracle-plan-of-the-running-query/112</link>
		<comments>http://code.techinterviews.com/oracle-plan-of-the-running-query/112#comments</comments>
		<pubDate>Fri, 28 Mar 2008 09:37:56 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/oracle-plan-of-the-running-query/112</guid>
		<description><![CDATA[
col object_name FOR a40 
SELECT operation,&#160; &#160; &#160; 
&#160;options,&#160; &#160; &#160; 
&#160;object_name,&#160; 
&#160;partition_id
FROM&#160; &#160;v$sql_plan
WHERE address IN 
&#160;&#40; SELECT sql_address FROM v$session WHERE sid = &#38;sid.&#41;
ORDER BY id;

]]></description>
			<content:encoded><![CDATA[<div class="codesnip-container" >
<div class="codesnip">col object_name <span class="kw1">FOR</span> a40 </p>
<p><span class="kw1">SELECT</span> operation,&nbsp; &nbsp; &nbsp; <br />
&nbsp;options,&nbsp; &nbsp; &nbsp; <br />
&nbsp;object_name,&nbsp; <br />
&nbsp;partition_id<br />
<span class="kw1">FROM</span>&nbsp; &nbsp;v$sql_plan<br />
<span class="kw1">WHERE</span> address <span class="kw1">IN</span> <br />
&nbsp;<span class="br0">&#40;</span> <span class="kw1">SELECT</span> sql_address <span class="kw1">FROM</span> v$session <span class="kw1">WHERE</span> sid = &amp;sid.<span class="br0">&#41;</span><br />
<span class="kw1">ORDER</span> <span class="kw1">BY</span> id;</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/oracle-plan-of-the-running-query/112/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
