<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
	<title>Void Studios</title>
	
	<link>http://blog.gr80.net</link>
	<description>wandering php developer with some books about reality ..</description>
	<lastBuildDate>Fri, 21 Jan 2011 08:48:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/VoidStudios" /><feedburner:info uri="voidstudios" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>rm: argument list too long!</title>
		<link>http://feedproxy.google.com/~r/VoidStudios/~3/xV-RbIgDn8w/</link>
		<comments>http://blog.gr80.net/post/rm-argument-list-too-long/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 08:48:13 +0000</pubDate>
		<dc:creator>shadyvb</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[tips]]></category>
		<guid isPermaLink="false">http://blog.gr80.net/?p=171</guid>
		<description><![CDATA[This morning i found out my server is down because the space was exceeded.. so i went to clear up some cache/backup files to free up some space. At first, my tries to ssh the server failed, i guess the server was REALLY crowded that i didn&#8217;t hear my call, anyway, using the Plesk &#8216;Repair [...]]]></description>
			<content:encoded><![CDATA[<p>This morning i found out my server is down because the space was exceeded.. so i went to clear up some cache/backup files to free up some space.<br />
At first, my tries to ssh the server failed, i guess the server was REALLY crowded that i didn&#8217;t hear my call, anyway, using the Plesk &#8216;Repair mode&#8217; option, i successfully removed one large backup file, and restarted the server..</p>
<p>Anyway, what i&#8217;m writing about is that RM seem to have some limitation if you told it to remove a big list of files:<br />
I used:<br />
<code>rm *.cache</code><br />
and it gave the following message:<br />
<code>-bash: //bin/rm: Argument list too long</code></p>
<p>After stumbling alittle, i found this article :</p>
<p>http://www.moundalexis.com/archives/000035.php</p>
<p>and it solves that problem uses:<br />
<code>find . -name '*.cache' | xargs rm</code></p>
<p>hope this helps anybody stuck in my situation!</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/VoidStudios/~4/xV-RbIgDn8w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.gr80.net/post/rm-argument-list-too-long/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.gr80.net/post/rm-argument-list-too-long/</feedburner:origLink></item>
		<item>
		<title>Fix serialized array errors</title>
		<link>http://feedproxy.google.com/~r/VoidStudios/~3/iKYDAPO1MKs/</link>
		<comments>http://blog.gr80.net/post/fix-serialized-array-errors/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 13:52:57 +0000</pubDate>
		<dc:creator>shadyvb</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[cforms]]></category>
		<category><![CDATA[offset]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[unserialize]]></category>
		<guid isPermaLink="false">http://blog.gr80.net/?p=162</guid>
		<description><![CDATA[After spending 3 painful hours fixing options of cForms plugin for WP, after migration to live site, i&#8217;ve discovered this bit of code at php.net, which helped me fix the options array and get my forms back online. $serialized = preg_replace_callback( '!(?]]></description>
			<content:encoded><![CDATA[<p>After spending 3 painful hours fixing options of cForms plugin for WP, after migration to live site, i&#8217;ve discovered this bit of code at php.net, which helped me fix the options array and get my forms back online.</p>
<p><code><br />
$serialized = preg_replace_callback(<br />
    '!(?<=^|;)s:(\d+)(?=:"(.*?)";(?:}|a:|s:|b:|i:|o:|N;))!s',<br />
    create_function('$a', 'return "s:" . strlen($a[2]);'),<br />
    $serialized<br />
);<br />
</code></p>
<p>Note: You might wanna add slashes for single quotes, if your string have some.</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/VoidStudios/~4/iKYDAPO1MKs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.gr80.net/post/fix-serialized-array-errors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.gr80.net/post/fix-serialized-array-errors/</feedburner:origLink></item>
		<item>
		<title>Autostart VMWare Workstation machines automatically upon Windows restart v2 – UPDATED</title>
		<link>http://feedproxy.google.com/~r/VoidStudios/~3/PXIam9cIjV8/</link>
		<comments>http://blog.gr80.net/post/autostart-vmware-workstation-machines-automatically-upon-windows-restart-v2-updated/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 23:04:39 +0000</pubDate>
		<dc:creator>shadyvb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://blog.gr80.net/?p=141</guid>
		<description><![CDATA[Browsing the VMWare docs, I&#8217;ve been able to find a better way to start VMWare machine automatically via FireDaemon ( Check the first post ). The new and better way removes the nag screen of &#8220;Interactive Services message&#8221;, which is pretty anonying, at least to me. To use the new built-in command-line tool, change the [...]]]></description>
			<content:encoded><![CDATA[<p>Browsing the VMWare docs, I&#8217;ve been able to find a better way to start VMWare machine automatically via FireDaemon ( Check the <a href="http://blog.gr80.net/post/autostart-vmware-workstation-machines-automatically-upon-windows-restart/">first post</a> ).</p>
<p>The new and better way removes the nag screen of <strong>&#8220;Interactive Services message&#8221;</strong>, which is pretty anonying, at least to me.</p>
<p>To use the new built-in command-line tool, change the command lines in the <strong>Executable</strong> and <strong>Parameters</strong> fields as follows :</p>
<p><code><br />
Executable : C:\Program files\VMWare\VMWare Workstation\vmrun.exe<br />
Parameters : start "D:\path\to\virtual\machine\Ubuntu.vmx"<br />
</code></p>
<p>You can see that in the following screen :<br />
<center><img src="http://img64.imageshack.us/img64/8004/firedaemonvmwareupdated.png" alt="Autostart VMWare using Firedaemon, Updated" /></center></p>
<p>Note: Change <strong>Parameters</strong> field to put the correct path to your machine&#8217;s VMX file, and perhaps you would need to change the <strong>Executable</strong> fields as well if you&#8217;ve a custom path for your VMWare Workstation installation.</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/VoidStudios/~4/PXIam9cIjV8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.gr80.net/post/autostart-vmware-workstation-machines-automatically-upon-windows-restart-v2-updated/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.gr80.net/post/autostart-vmware-workstation-machines-automatically-upon-windows-restart-v2-updated/</feedburner:origLink></item>
		<item>
		<title>Javascript function to send Unicode characters in SMS messages</title>
		<link>http://feedproxy.google.com/~r/VoidStudios/~3/IHMlajHtcJY/</link>
		<comments>http://blog.gr80.net/post/javascript-function-to-send-unicode-characters-in-sms-messages/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 11:58:56 +0000</pubDate>
		<dc:creator>shadyvb</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[charcode]]></category>
		<category><![CDATA[clickatell]]></category>
		<category><![CDATA[conversion functions]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[message text]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[unicode]]></category>
		<guid isPermaLink="false">http://blog.gr80.net/?p=130</guid>
		<description><![CDATA[I&#8217;ve been searching &#8211; for a good amount of time &#8211; for a way to send unicode message using Clickatell API&#8217;s .. i didn&#8217;t find any solution, though i found a lot people searching just like me for the same solution. After a lot of searches, trails and testing .. I&#8217;ve found a solution posted [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been searching &#8211; for a good amount of time &#8211; for a way to send unicode message using Clickatell API&#8217;s .. i didn&#8217;t find any solution, though i found a lot people searching just like me for the same solution.</p>
<p>After a lot of searches, trails and testing .. I&#8217;ve found a solution posted by [ tried to find the source but couldn't remember ] that does some unicode conversion functions, from which i could find what i want.</p>
<p>I extracted the peace of code i needed, minified it, and here it is:</p>
<pre class="brush: js">
function d2h(a){return(a+0).toString(16).toUpperCase()}function str2cp(a){var c=0;var n=0;var d='';var e=false;for(var i=0;i0xFFFF){return false}if(c!=0){if(0xDC00&lt;=b&amp;&amp;b&lt;=0xDFFF){if(e){d+=' '}d+=d2h(0x10000+((c-0xD800)&lt;&lt;10)+(b-0xDC00));c=0;continue;e=true}else{return false}}if(0xD800&lt;=b&amp;&amp;b&lt;=0xDBFF){c=b}else{if(e){d+=''}cp=d2h(b);while(cp.length&lt;4){cp='0'+cp}d+=cp;e=true}}return d}
</pre>
<p>You can download the file here <a href="http://blog.gr80.net/files/unicode_cp.js">unicode_cp.js</a> [ Size : 430 Byte ]</p>
<p>Instructions :</p>
<p>1- Include the script into your page containing the form</p>
<pre class='brush: html'>
</pre>
<p>2- Create a textarea as the message text , it&#8217;s better that it doesn&#8217;t have a &#8216;name&#8217; attribute, so it won&#8217;t be submitted, it&#8217;s contents will be converted to code points and saved in a hidden input which will be actually submitted with the form.</p>
<pre class="brush: html">
<textarea id="txt"></textarea>
<input id="encoded" name="message" type="hidden" />
</pre>
<p>3- Hook the encoding function to keypress event of the textarea#txt</p>
<pre class="brush: js">
window.onload= function() {
txtBefore= document.getElementById("txt");
txtEncoded= document.getElementById("encoded");
txtBefore.onkeypress= function(e){
// Allow only backspace [ delete ] button when character count is over 70
if (this.value.length&gt;=70) {
if(e.charCode!=0){
return false;
}
}
};
txtBefore.onkeyup= function(e) {
txtEncoded.value= str2cp(txtBefore.value);
};
};
</pre>
<p>You can also create a checkbox to enable\disable conversion, in case the user wants to send the message in plain English, hence increasing the message limit, to do that add the following as the first line of onkeypress function :</p>
<pre class="brush: js">if(uni_check.checked) return false;</pre>
<p>and the following as the first line of onkeyup function :</p>
<pre class="brush: js">if(uni_check.checked) { txtEncoded.value = txtBefore.value; return; }</pre>
<p>you&#8217;d need to declare uni_check in your script like that :</p>
<pre class="brush: js"> uni_check = document.getElementById('uni_check'); </pre>
<p>And this way you can submit your forms easily, and send all the SMS you want without no hassle, and with front-end conversion.</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/VoidStudios/~4/IHMlajHtcJY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.gr80.net/post/javascript-function-to-send-unicode-characters-in-sms-messages/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.gr80.net/post/javascript-function-to-send-unicode-characters-in-sms-messages/</feedburner:origLink></item>
		<item>
		<title>dir2array : Read folder contents recursively in PHP</title>
		<link>http://feedproxy.google.com/~r/VoidStudios/~3/8xRgfsTd5ew/</link>
		<comments>http://blog.gr80.net/post/dir2array-read-folder-contents-recursively-in-php/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 22:45:27 +0000</pubDate>
		<dc:creator>shadyvb</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[folder contents]]></category>
		<category><![CDATA[folders]]></category>
		<category><![CDATA[multidimensional array]]></category>
		<category><![CDATA[opendir]]></category>
		<category><![CDATA[readdir]]></category>
		<guid isPermaLink="false">http://blog.gr80.net/?p=128</guid>
		<description><![CDATA[PHP Function to read folder contents recursively into a multidimensional array like a tree.]]></description>
			<content:encoded><![CDATA[<p>PHP Function to read folder contents recursively into a multidimensional array like a tree.</p>
<pre class="brush: php"><?php
/**
 * dir2array
 *
 * @param string $dir
 * @return array
 * @author Shady A.Sharaf, blog.gr80.net
 */
function dir2array($dir='')
{
	// Check if given a correct directory
	if(!$dir || !is_dir($dir)) return false;
	// Prepare the array which will hold all the files and folder
	$contents= array();
	// Open the folder for reading using opendir()
	$dh= opendir($dir);
	// Loop through folder contents ( files and folder )
	while ($file=readdir($dh)) {
		// Remove . and .. from results
		if( $file===false || $file=="." || $file==".." ) continue;
		// Check if this is a folder or file
		if( is_dir($dir."/".$file) ){
			// If folder , add to array folders, and run the function recursively on it
			$contents['fld'][]=$file;
			// Run the function on the folder, and store it in the last - just added - entry in folders list
			$contents['fld'][count($contents['fld'])-1]= dir2array("$dir/$file");
		}else{
			// Add file to the array
			$contents['fls'][]=$file;
		}
	}
	// Close the opendir() handle
	closedir($dh);
	// Return the array holding the files and folder
	return $contents;
}
// For demo pusposes, print_r() the array to check the results
print_r( dir2array(".") );
?></pre>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/VoidStudios/~4/8xRgfsTd5ew" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.gr80.net/post/dir2array-read-folder-contents-recursively-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.gr80.net/post/dir2array-read-folder-contents-recursively-in-php/</feedburner:origLink></item>
		<item>
		<title>How to have a FREE Dynamic DNS PRO Solution for your domain</title>
		<link>http://feedproxy.google.com/~r/VoidStudios/~3/97XizlPwgw0/</link>
		<comments>http://blog.gr80.net/post/how-to-have-a-free-dynamic-dns-pro-solution-for-your-domain/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 22:24:14 +0000</pubDate>
		<dc:creator>shadyvb</dc:creator>
				<category><![CDATA[Servers]]></category>
		<category><![CDATA[ddns]]></category>
		<category><![CDATA[directupdate]]></category>
		<category><![CDATA[domain control panel]]></category>
		<category><![CDATA[dynamic dns service]]></category>
		<category><![CDATA[dynamic ip]]></category>
		<category><![CDATA[dyndns]]></category>
		<category><![CDATA[free dynamic dns service]]></category>
		<category><![CDATA[home server]]></category>
		<category><![CDATA[host services]]></category>
		<category><![CDATA[subdomain]]></category>
		<guid isPermaLink="false">http://blog.gr80.net/?p=97</guid>
		<description><![CDATA[I&#8217;ve always longed to have a subdomain like myhomeserver.gr80.net to point at my home server ( obviously! ) .. but there is always fees for such services, like No-IP and DynDNS Pro .. I figured out an easy way to have your own sub domain, pointing at your home server ( assuming you have a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always longed to have a subdomain like myhomeserver.gr80.net to point at my home server ( obviously! ) .. but there is always fees for such services, like No-IP and DynDNS Pro ..</p>
<p>I figured out an easy way to have your own sub domain, pointing at your home server ( assuming you have a dynamic IP connection, or you wouldn&#8217;t need this tutorial ) ..</p>
<p>Requirements :</p>
<p>1- Free DynDNS Account<br />
2- Domain Name, ( Domain Control Panel must allow you to create sub domains as CNAME entries, which is available on <a href="http://www.netfirms.com">NetFirms</a> )</p>
<p>Steps:</p>
<p>A) Configure your dummy free sub domain:</p>
<p>1- Create a Free account on DynDNS.org<br />
2- After logging in, Choose &#8220;Add Host Services&#8221; , Add your desired sub domain ( which doesn&#8217;t really matter, it&#8217;ll be overridden eventually ) , activate the sub domain ..</p>
<p>Follow the screenshots here :<br />
<a class="cboxelement" rel="dyndns" href="http://img694.imageshack.us/img694/1899/85977976.png" title="How to have a FREE Dynamic DNS PRO Solution for your domain"><img src="/files/help.png" alt="View Screenshot" /></a><a class="cboxelement" rel="dyndns" href="http://img263.imageshack.us/img263/2986/73308305.png" title="How to have a FREE Dynamic DNS PRO Solution for your domain"><img src="/files/help.png" alt="View Screenshot" /></a><a class="cboxelement" rel="dyndns" href="http://img694.imageshack.us/img694/3345/48203493.png" title="How to have a FREE Dynamic DNS PRO Solution for your domain"><img src="/files/help.png" alt="View Screenshot" /></a><a class="cboxelement" rel="dyndns" href="http://img687.imageshack.us/img687/865/61595445.png" title="How to have a FREE Dynamic DNS PRO Solution for your domain"><img src="/files/help.png" alt="View Screenshot" /></a><a class="cboxelement" rel="dyndns" href="http://img26.imageshack.us/img26/3600/21145256.png" title="How to have a FREE Dynamic DNS PRO Solution for your domain"><img src="/files/help.png" alt="View Screenshot" /></a></p>
<p>B) Configure your Domain on Netfirms ( or whatever your registrar is )</p>
<p>1- After Logging to your panel, Choose &#8220;Add&#8221;<br />
2- Add the desired sub domain ex: myhomeserver.mydomain.com<br />
3- Choose CNAME type, and add your DynDNS Free sub domain .</p>
<p>Follow the screenshots here :<br />
<a class="cboxelement" rel="dyndns" href="http://img25.imageshack.us/img25/1356/77351781.png" title="How to have a FREE Dynamic DNS PRO Solution for your domain"><img src="/files/help.png" alt="View Screenshot" /></a><a class="cboxelement" rel="dyndns" href="http://img262.imageshack.us/img262/9210/72375301.png" title="How to have a FREE Dynamic DNS PRO Solution for your domain"><img src="/files/help.png" alt="View Screenshot" /></a></p>
<p>C) Configure your router \ software to use the created DynDNS</p>
<p>1- You can find a tab in your router setup called ( Dynamic DNS \  DDNS \ DynDNS ) .. where you should enter your account credentials on DynDNS.org ( the account you just created ).<br />
Or if you do not have a DDNS-enabled router, you can always go with software like <a href="http://www.directupdate.net/">DirectUpdate</a> , it&#8217;s the best one i&#8217;ve tried, always fulfilling my needs..</p>
<p>Voila! you now have a fully working FREE Dynamic DNS service on your own domain! Enjoy!</p>
<p><!--<br />
a.cboxelement{<br />
float:left;<br />
margin-left:10px;<br />
}<br />
--><br />
<script type="text/javascript">// <![CDATA[
jQuery(function(){
jQuery(".cboxelement").colorbox();
});
// ]]&gt;</script></p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/VoidStudios/~4/97XizlPwgw0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.gr80.net/post/how-to-have-a-free-dynamic-dns-pro-solution-for-your-domain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.gr80.net/post/how-to-have-a-free-dynamic-dns-pro-solution-for-your-domain/</feedburner:origLink></item>
		<item>
		<title>Rapidshare Link Checker API – Easy PHP Code to Check RapidShare Files</title>
		<link>http://feedproxy.google.com/~r/VoidStudios/~3/1bGdyR64T-U/</link>
		<comments>http://blog.gr80.net/post/rapidshare-link-checker/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 21:48:57 +0000</pubDate>
		<dc:creator>shadyvb</dc:creator>
				<category><![CDATA[Web Scapping and API]]></category>
		<category><![CDATA[api calls]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[link checker]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[php code]]></category>
		<category><![CDATA[rapidshare files]]></category>
		<category><![CDATA[server api]]></category>
		<guid isPermaLink="false">http://blog.gr80.net/?p=94</guid>
		<description><![CDATA[PHP Code to check for alive links on RapidShare]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been around searching for a good tool to check share-sites files if they&#8217;re still alive or dead..</p>
<p>During my check, I&#8217;ve stumbled upon RS&#8217;s own link checker at <a rel='nofollow noindex' href='http://rapidshare.com/checkfiles.html'>http://rapidshare.com/checkfiles.html</a> .. found that they&#8217;re using a simple API provided from RS ..</p>
<p>I&#8217;ve used their API before for uploading stuff from my linux machine, the whole API provided by RS was a tiny Perl script used to upload files and keep the logs saved.. it just did the job then..</p>
<p>But now, they&#8217;ve expanded their API to good extents .. Now you can do a lot of things using simple API calls to their website.</p>
<p>Anyway, back to my main target, which is a link checker for Rapidshare files..</p>
<p>I&#8217;ve created this small function to help me check files the easy way, for i&#8217;ll be integrating it in WordPress at a friends website soon ..</p>
<p>Here you are the function :</p>
<pre class="brush: php">
function rs_check($url){
	if (!$url) return false;
	$files_pattern= '/\/files\/([^\/]*)\//';
	$filename_pattern= '/\/files\/.*\/(.*)/';
	preg_match($files_pattern, $url, $matches_id);
	preg_match($filename_pattern, $url, $matches_name);
	$res= file_get_contents("http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=checkfiles_v1&#038;files={$matches_id[1]}&#038;filenames={$matches_name[1]}");
	list($fId,$fName,$fSize,$fServerId,$fStatus,$fShortHost,$fmd5) =explode(',',$res);
	return ($fStatus==1 || $fStatus==2);
}
</pre>
<p>and you can simply call the function using the following example :</p>
<pre class="brush: php">
if(rs_check($url)){
 echo 'This is a valid working link!';
}else{
 echo 'This is not a valid link anymore!';
}
</pre>
<p>I&#8217;ll be enhancing this with a Javascript JSON Server API .. but i guess I&#8217;ll enjoy my vacation first! <img src='http://blog.gr80.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>You can preview my link checker from this demo <a rel='nowfollow' href='http://blog.gr80.net/demo/rs_checker_demo.php' title='Rapidshare Link Checker'>Rapidshare Link Checker Demo</a>, and the file is available for download and including from here <a href='http://blog.gr80.net/demo/rs_checker.phps' title='Rapidshare Link Checker API'>Rapidshare Link Checker API</a> .</p>
<p>Does anyone know about APIs of similar websites that can be used the same way ?</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/VoidStudios/~4/1bGdyR64T-U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.gr80.net/post/rapidshare-link-checker/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://blog.gr80.net/post/rapidshare-link-checker/</feedburner:origLink></item>
		<item>
		<title>Autostart VMWare Workstation machines automatically upon Windows restart</title>
		<link>http://feedproxy.google.com/~r/VoidStudios/~3/IPJLVwETQaw/</link>
		<comments>http://blog.gr80.net/post/autostart-vmware-workstation-machines-automatically-upon-windows-restart/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 00:57:18 +0000</pubDate>
		<dc:creator>shadyvb</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[application as a service]]></category>
		<category><![CDATA[autostart]]></category>
		<category><![CDATA[autostart vmware]]></category>
		<category><![CDATA[bios setting]]></category>
		<category><![CDATA[electricity blackouts]]></category>
		<category><![CDATA[firedaemon]]></category>
		<category><![CDATA[intranet applications]]></category>
		<category><![CDATA[server application]]></category>
		<category><![CDATA[vmx]]></category>
		<category><![CDATA[windows application]]></category>
		<category><![CDATA[workstation machines]]></category>
		<guid isPermaLink="false">http://blog.gr80.net/?p=91</guid>
		<description><![CDATA[Sewing a lot of intranet applications at the NGO, i found it a must to work around electricity blackouts .. and there is a plenty down there .. So, i managed to get the server starting-up when electricity is back .. using a BIOS setting that lies there in almost all the modern Motherboards nowadays.. [...]]]></description>
			<content:encoded><![CDATA[<p>Sewing a lot of intranet applications at the <a href="http://www.ayb-sd.org" rel="nofollow">NGO</a>, i found it a must to work around electricity blackouts .. and there is a plenty down there ..</p>
<p>So, i managed to get the server starting-up when electricity is back .. using a BIOS setting that lies there in almost all the modern Motherboards nowadays..</p>
<p>But came to the bigger problem, running the machine on windows start ..</p>
<p>This could be easy if you&#8217;re the only user of your machine, with no password, having the automatic log-on in effect .. but if you are on a server where you have to enter a password to log-on , this would be kinda clingy ..</p>
<p>Googling alittle, i found a utility which can be used to run windows application as services , and set to start on windows boot rather user log-on .. It&#8217;s called <a href="http://www.firedaemon.com" rel="nofollow">FireDaemon</a> [ Download it <a href="http://www.firedaemon.com/downloads/FireDaemon-Pro-1_9.msi" rel="nofollow">HERE</a>, or <a href="http://www.google.com/webhp?#hl=en&#038;q=firedaemon" rel="nofollow">Google it</a> ] ..</p>
<p>I started installing Firedaemon .. opened the GUI afterwords, it looks like this :<br />
<a href="http://www.flickr.com/photos/36492770@N07/3894235847/" title="FireDaemon GUI"><img src="http://farm3.static.flickr.com/2588/3894235847_bb1e296d99_o.jpg" width="640" height="480" alt="1" /></a></p>
<p>Then i began creating a new service, specifying VMWare main executable ( vmware.exe ) as the server application, and ( -x &#8220;Drive:\Path\to\VM\machine.vmx&#8221; ) as the parameter, as you can see in the picture :<br />
<a href="http://www.flickr.com/photos/36492770@N07/3894235655/" title="Adding new service via FireDaemon"><img src="http://farm4.static.flickr.com/3457/3894235655_c793c38246_o.jpg" width="525" height="496" alt="3" /></a></p>
<p>Voila! Close FireDaemon, and restart your computer to make sure everything is OK.</p>
<p><strong>UPDATE</strong> on 18/02/2010 : Use the internal built-in tool vmrun.exe to achieve better results, and to remove the nagging screen of <strong>Interactive Services message</strong>. Check out the <a href="http://blog.gr80.net/post/autostart-vmware-workstation-machines-automatically-upon-windows-restart-v2-updated/">updated post</a>.</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/VoidStudios/~4/IPJLVwETQaw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.gr80.net/post/autostart-vmware-workstation-machines-automatically-upon-windows-restart/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://blog.gr80.net/post/autostart-vmware-workstation-machines-automatically-upon-windows-restart/</feedburner:origLink></item>
		<item>
		<title>Center Elements Vertically and Horizontally using Javascript</title>
		<link>http://feedproxy.google.com/~r/VoidStudios/~3/_9O_aJmB1-A/</link>
		<comments>http://blog.gr80.net/post/center-elements-vertically-and-horizontally-using-javascript/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 23:29:09 +0000</pubDate>
		<dc:creator>shadyvb</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[center]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[horizontal]]></category>
		<category><![CDATA[html markup]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[vertical]]></category>
		<guid isPermaLink="false">http://blog.gr80.net/?p=84</guid>
		<description><![CDATA[Long I&#8217;ve searched for a method to center elements vertically using CSS or even deprecated HTML codes.. but never found a proper way to do it .. Now i figured an incredibly easy way to do it using Javascript, with my beloved jQuery.. You only have to assign one CSS value to the box you [...]]]></description>
			<content:encoded><![CDATA[<p>Long I&#8217;ve searched for a method to center elements vertically using CSS or even deprecated HTML codes.. but never found a proper way to do it ..</p>
<p>Now i figured an incredibly easy way to do it using Javascript, with my beloved jQuery..</p>
<p>You only have to assign one CSS value to the box you want to center:</p>
<pre class="brush: css">.centeredBox{ position: absolute }</pre>
<p>After including jQuery from Google Code ( or from your own local folder if you like ) :</p>
<pre class="brush: html"><script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script></pre>
<p>Use the following function to center the elements:</p>
<pre class="brush: js">
function setPosition(){
	var tasks=$('#tasks');
	var h=$(document).height(), th= tasks.height();
	tasks.css("top", (h-th>0?((h/2)-(th/2))+'px':0) );
	var w=$(document).width(), tw= tasks.width();
	tasks.css("left", (w-tw>0?((w/2)-(tw/2))+'px':0) );
};
</pre>
<p>As a final step, you would need to add the following lines in your js file , so it applies the center hack each time you resize your window :</p>
<pre class="brush: js">
window.onload=function(){setPosition()};
window.onresize=function(){setPosition()};
</pre>
<p>And you&#8217;re now set to enjoy the final.</p>
<p>Final HTML markup:</p>
<pre class="brush: html">
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type='text/javascript' src='http://blog.gr80.net/wp-content/plugins/wp-minify/min/?f=unicode_cp.js&amp;m=0'></script>
<style type="text/css">
	html, body{ height:100%; width:100%; margin:0; padding:0; } /* Simple hack, not required */
	.centeredBox{ position:absolute; }
</style>
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function setPosition(){
	var centeredBox=$('.centeredBox');
	var h=$(document).height(), th= centeredBox.height();
	centeredBox.css("top", (h-th>0?((h/2)-(th/2))+'px':0) );
	var w=$(document).width(), tw= centeredBox.width();
	centeredBox.css("left", (w-tw>0?((w/2)-(tw/2))+'px':0) );
	// if(wh<ch){$(body).css("height",ch+'px')}
};
window.onload=function(){setPosition()};
window.onresize=function(){setPosition()};
</script>
</head>
<body>
<div class="centeredBox">
		Here I am - this is me
		There's no where else on earth I'd rather be
		Here I am - it's just me and you
		And tonight we make our dreams come true
	</div>
</body>
</html>
</pre>
<p>See the demo here : <a href="http://blog.gr80.net/demo/centeredBox.html" rel="nofollow"><strong>Centered Box</strong></a></p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/VoidStudios/~4/_9O_aJmB1-A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.gr80.net/post/center-elements-vertically-and-horizontally-using-javascript/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://blog.gr80.net/post/center-elements-vertically-and-horizontally-using-javascript/</feedburner:origLink></item>
		<item>
		<title>Create a Fading-Sliding Menu effect using jQuery</title>
		<link>http://feedproxy.google.com/~r/VoidStudios/~3/bMRDP5uXMNU/</link>
		<comments>http://blog.gr80.net/post/create-a-fading-sliding-menu-effect-using-jquery/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 20:43:40 +0000</pubDate>
		<dc:creator>shadyvb</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[effect]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash menu]]></category>
		<category><![CDATA[flashy]]></category>
		<category><![CDATA[horizontal menu]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[opacity]]></category>
		<guid isPermaLink="false">http://blog.gr80.net/?p=63</guid>
		<description><![CDATA[Inspired by the Flash Menu at <a title="ADATA Memory Manufactorer" href="http://oc.adata.com.tw/productsinfo.asp" target="_blank" nofollow>ADATA</a>'s website ( Memory manufacturing firm ) , i tried to simulate the effect using <a title="jQuery JS Library" href="http://jquery.com" target="_blank" nofollow>jQuery</a>.]]></description>
			<content:encoded><![CDATA[<p>Inspired by the Flash Menu at <a title="ADATA Memory Manufactorer" rel="nofollow" href="http://oc.adata.com.tw/productsinfo.asp" target="_blank">ADATA</a>&#8216;s website ( Memory manufacturing firm ) , i tried to simulate the effect using <a title="jQuery JS Library" rel="nofollow" href="http://jquery.com" target="_blank">jQuery</a>.</p>
<p>First i had a menu in HTML :</p>
<pre class="brush: html">
<ul id="menu">
<li> <a>Pop it</a>
<div>Click1 | Click 2</div>
</li>
<li> <a>Pop it</a>
<div>Hello2</div>
</li>
<li> <a>Pop it</a>
<div>Hello3</div>
</li>
<li> <a>Pop it</a>
<div>Hello4</div>
</li>
</ul>
</pre>
<p>then applying some styling to make it a horizontal menu that go at the top of the page :</p>
<pre class="brush: css">
<!--
#menu li{
display:inline;
}
#menu li div{
position:absolute;
display:none;
}
-->
</pre>
<p>after integrating latest version of jQuery hosted at Google Code using the following code :</p>
<pre class="brush: html"><script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" type="text/javascript"></script></pre>
<p>i added the following markup to create the targeted effect:<br />
<strong>UPDATE:</strong> Now using stop() to prevent repetitive animation, Thanks Allan for your notice.</p>
<pre class="brush: html">
<script type="text/javascript">
$(document).ready(function(){
	$("#menu li a").each(function(){
		$(this).next("div").css({left: $(this).offset().left -20});
	});
	$("#menu li a").hover(function() {
		l=$(this).offset().left;
		m=$(this).next("div");
		m.animate({opacity:"show",left: l }, "slow","",m.stop().css("opacity",1));
	}, function() {
		l=$(this).offset().left;
		m=$(this).next("div");
		m.animate({opacity:"hide",left: l-20}, "fast","",m.stop().css("opacity",0));
	});
});
</script>
</pre>
<p>first line is to make sure child div&#8217;s are positioned just under their main link , then second line makes the hover effect by invoking the animate function to control both opacity and left property of the child div.</p>
<p>You can check the example here: <a title="Fading Sliding Menu by shadyvb" href="/demo/fadingslidingmenu.html" target="_blank"><strong>Fading Sliding Menu</strong></a>.</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/VoidStudios/~4/bMRDP5uXMNU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.gr80.net/post/create-a-fading-sliding-menu-effect-using-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.gr80.net/post/create-a-fading-sliding-menu-effect-using-jquery/</feedburner:origLink></item>
	</channel>
</rss><!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->

