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

<channel>
	<title>Ladysign Dev Blog &#187; browsers</title>
	<atom:link href="http://www.ladysign-apps.com/blog/category/code/browsers/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ladysign-apps.com/blog</link>
	<description>Girls can code.</description>
	<lastBuildDate>Mon, 12 Dec 2011 16:58:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Create a Firefox Extension</title>
		<link>http://www.ladysign-apps.com/blog/code/browsers/create-a-ff-extension/</link>
		<comments>http://www.ladysign-apps.com/blog/code/browsers/create-a-ff-extension/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 12:33:21 +0000</pubDate>
		<dc:creator>Lee</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[browser plugin]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[ff]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://www.ladysign-apps.com/blog/?p=1023</guid>
		<description><![CDATA[<p><strong>Difficulty:</strong> 2 out of 5 stars</p>
<p>Create the startup files and folders via:<br />
<a href="https://addons.mozilla.org/en-US/developers/tools/builder/9b0cddaa3fc073e50a0e7e284ef64438">https://addons.mozilla.org/en-US/developers/tools/builder/9b0cddaa3fc073e50a0e7[......]</a></p><p class='read-more'><a href='http://www.ladysign-apps.com/blog/code/browsers/create-a-ff-extension/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><strong>Difficulty:</strong> 2 out of 5 stars</p>
<p>Create the startup files and folders via:<br />
<a href="https://addons.mozilla.org/en-US/developers/tools/builder/9b0cddaa3fc073e50a0e7e284ef64438">https://addons.mozilla.org/en-US/developers/tools/builder/9b0cddaa3fc073e50a0e7e284ef64438</a></p>
<p>Prefill all the fields, and build the zip file.<br />
Unpack this zip file, and open:<br />
/chrome/content/overlay.js</p>
<p>You can edit this file.<br />
In chrome/skin/ are the files for editing the styles and logo.</p>
<p>After changing the files. Zip it in and rename the zip file to the xpi extension.<br />
Drag the xpi file in your FF browser.. And your own plugin is installed.</p>
<p>More info:<br />
<a href="https://addons.mozilla.org/en-US/developers/docs/getting-started">https://addons.mozilla.org/en-US/developers/docs/getting-started</a><br />
<a href="https://developer.mozilla.org/en/Code_snippets/Tabbed_browser">https://developer.mozilla.org/en/Code_snippets/Tabbed_browser</a><br />
<a href="https://developer.mozilla.org/en/XUL/tabbrowser#m-loadURI">https://developer.mozilla.org/en/XUL/tabbrowser#m-loadURI</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ladysign-apps.com/blog/code/browsers/create-a-ff-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create Chome Extension</title>
		<link>http://www.ladysign-apps.com/blog/code/browsers/create-chome-extension/</link>
		<comments>http://www.ladysign-apps.com/blog/code/browsers/create-chome-extension/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 14:41:54 +0000</pubDate>
		<dc:creator>Lee</dc:creator>
				<category><![CDATA[api]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[chrome]]></category>

		<guid isPermaLink="false">http://www.ladysign-apps.com/blog/?p=1019</guid>
		<description><![CDATA[<p><strong>Difficulty:</strong> 1 out of 5 stars</p>
<p>It&#8217;s really easy to create your own Chrome Extension.<br />
This simple extension just opens your personal website in a n[......]</p><p class='read-more'><a href='http://www.ladysign-apps.com/blog/code/browsers/create-chome-extension/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><strong>Difficulty:</strong> 1 out of 5 stars</p>
<p>It&#8217;s really easy to create your own Chrome Extension.<br />
This simple extension just opens your personal website in a new tab.</p>
<p>1. Create a folder<br />
2. Create the following files:<br />
* manifest.json<br />
* background.html<br />
* icon.png<br />
3. Edit the manifest file:</p>
<pre class="brush: plain; title: ;">
{
  &quot;name&quot;: &quot;My website&quot;,
  &quot;version&quot;: &quot;1.0&quot;,
  &quot;description&quot;: &quot;Just browse to my website...&quot;,
  &quot;background_page&quot;: &quot;background.html&quot;,
  &quot;browser_action&quot;: {
    &quot;default_icon&quot;: &quot;icon.png&quot;,
    &quot;default_title&quot;: &quot;My website&quot;
  },
  &quot;permissions&quot;: [&quot;tabs&quot;]
}
</pre>
<p>4. Now edit the background.html file:</p>
<pre class="brush: plain; title: ;">
&lt; html&gt;
&lt; head&gt;
	&lt; script&gt;
	chrome.browserAction.onClicked.addListener(function(tab) {
		var createData = {
			url: &quot;http://www.ladysign-apps.com&quot;
		}
		//you can also specify a callback after page load...
		chrome.tabs.create(createData);
                //or to load a new window:
		//chrome.windows.create(createData);
	});
&lt; /script&gt;
&lt; /head&gt;
&lt; body&gt;
&lt; /body&gt;
&lt; /html&gt;
</pre>
<p>From the background.html you can include any other file you want to include in this package.</p>
<p>5. Now open Chrome.<br />
6. Open de extension tab: (Chrome Dev icon) > Extra / Tools > Extensions<br />
7. Click the load button, and point to your folder, to test extension.<br />
You will see the extension is added next to your addressbar.</p>
<p>Works?<br />
8. Now pack it: &#8211; Press the pack button; and point to your folder again.<br />
Chrome will now create a plugin of it; with an *.crx in the filename.<br />
It will also create *.pem key file, so it identifies your plugin for further updates&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ladysign-apps.com/blog/code/browsers/create-chome-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create subdomain in .htaccess file</title>
		<link>http://www.ladysign-apps.com/blog/code/browsers/create-subdomain-in-htaccess-file/</link>
		<comments>http://www.ladysign-apps.com/blog/code/browsers/create-subdomain-in-htaccess-file/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 19:13:46 +0000</pubDate>
		<dc:creator>Lee</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[generators]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[rewritecond]]></category>
		<category><![CDATA[rewriteegine]]></category>
		<category><![CDATA[subdomain]]></category>

		<guid isPermaLink="false">http://ladysign-apps.com/blog/?p=855</guid>
		<description><![CDATA[<p><strong>Difficulty:</strong> 1 out of 5 stars<br />
Let&#8217;s say you have a website with a forum. For example:<br />
<strong>http://www.mydomain.com/forum/?option=com_kunena&#038;Itemi[......]</strong></p><p class='read-more'><a href='http://www.ladysign-apps.com/blog/code/browsers/create-subdomain-in-htaccess-file/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><strong>Difficulty:</strong> 1 out of 5 stars<br />
Let&#8217;s say you have a website with a forum. For example:<br />
<strong>http://www.mydomain.com/forum/?option=com_kunena&#038;Itemid=0</strong><br />
you want to bind it to the following subdomain:<br />
<strong>http://forum.mydomain.com</strong></p>
<p>Then this is your .htaccess file content. (Do not forget the [R=301,L] or it won&#8217;t work)</p>
<pre class="brush: jscript; title: ;">RewriteEngine On
# first make sure my www is not touched
RewriteCond %{HTTP_HOST} !^www.mydomain.com
# the subdomain you want to create
RewriteCond %{HTTP_HOST} ^forum.mydomain.com
# the place to redirect to
RewriteRule (.*) http://www.mydomain.com/forum/?option=com_kunena&amp;Itemid=0 [R=301,L]</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ladysign-apps.com/blog/code/browsers/create-subdomain-in-htaccess-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protect from deeplinking</title>
		<link>http://www.ladysign-apps.com/blog/code/regex/protect-from-deeplinking/</link>
		<comments>http://www.ladysign-apps.com/blog/code/regex/protect-from-deeplinking/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 12:42:30 +0000</pubDate>
		<dc:creator>Lee</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[geeky]]></category>
		<category><![CDATA[regex]]></category>

		<guid isPermaLink="false">http://ladysign-apps.com/blog/?p=827</guid>
		<description><![CDATA[<p><strong>Difficulty:</strong> 1 out of 5 stars<br />
A good example of deeplinking is that an other website is embedding your content (for example images or video&#8217;s) in[......]</p><p class='read-more'><a href='http://www.ladysign-apps.com/blog/code/regex/protect-from-deeplinking/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><strong>Difficulty:</strong> 1 out of 5 stars<br />
A good example of deeplinking is that an other website is embedding your content (for example images or video&#8217;s) into his/her website.<br />
Therefore this website does not need share own content. &#8211; The nasty thing is; that this will cost you bandwidth.<br />
It loads content from your website, but without a site visit. Especially when full video&#8217;s are loaded, you don&#8217;t want this.</p>
<p>You can protect yourself from deeplinking.<br />
In your <strong>.htaccess file</strong> add the following lines (notice the file extensions and your own domain):</p>
<pre class="brush: jscript; title: ;">Options +SymLinksIfOwnerMatch
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(.*\.)?mydomain.com(/)?.*$ [NC]
RewriteRule .*\.(wmv|asx|jpg|gif|jpeg)$ http://localhost/ [R,NC] </pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ladysign-apps.com/blog/code/regex/protect-from-deeplinking/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Get rid of many page requests; use CSS sprites</title>
		<link>http://www.ladysign-apps.com/blog/code/css/get-rid-of-many-page-requests-use-css-sprites/</link>
		<comments>http://www.ladysign-apps.com/blog/code/css/get-rid-of-many-page-requests-use-css-sprites/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 14:07:19 +0000</pubDate>
		<dc:creator>Lee</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[generators]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[css sprites]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[website performance]]></category>

		<guid isPermaLink="false">http://ladysign-apps.com/blog/?p=818</guid>
		<description><![CDATA[<p><strong>Difficulty:</strong> 1 out of 5 stars<br />
This trick is so easy but unfortunately not much used on the web.<br />
There are 2 pro-reason, why you should start using spri[......]</p><p class='read-more'><a href='http://www.ladysign-apps.com/blog/code/css/get-rid-of-many-page-requests-use-css-sprites/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><strong>Difficulty:</strong> 1 out of 5 stars<br />
This trick is so easy but unfortunately not much used on the web.<br />
There are 2 pro-reason, why you should start using sprites (a technique which is used a lot for 2D game-developing / making one big image file, containing all the site images) in CSS.</p>
<ol>
<li>Get rid of the image flickering. This is what happens when using roll-overs for multiple images, both images will be requested from the server. Although the time is pretty fast, you&#8217;ll will see the image flickering</li>
<li>Reduce page requests &#8211; One big image might be heavier to download, nowadays it will be faster and directly loaded in your page then requesting multiple images</li>
</ol>
<p>There are some handy Firefox tools, which you can use for website performance optimization:<br />
<a href="https://addons.mozilla.org/en-US/firefox/addon/3829">Live HTTP Headers</a> and <a href="http://getfirebug.com/net.html">Firebug</a>.<br />
Within Firebug, you can select the NET tab. From here you can see all the requests to images.</p>
<p>See the sprites which are used for <a href="http://g-ecx.images-amazon.com/images/G/01/gno/images/orangeBlue/navPackedSprites_v10._V224330185_.png">Amazon</a>, <a href="http://s.ytimg.com/yt/img/master-vfl102488.png">YouTube </a>or even for <a href="http://www.google.nl/images/nav_logo6.png">Google</a>.</p>
<p>There are even <a href="http://spritegen.website-performance.org">online tools</a> for generating these sprites, so you don&#8217;t need Photoshop for calculating.</p>
<p>How to implement it? &#8211; Just by smart using the background property.<br />
For example:</p>
<pre class="brush: css; title: ;">#navigation {
 width: 500px;
 height: 20px;
 overflow: hidden; //no image outside the defined clipping area is visible
}

#navigation a {
 display: block;
 width: 100px;
 height: 20px;
 text-indent: -10000px; //for removing the link text off the screen
 background-image: url(sprite.png) //link to your sprite image;
}

#nav-home a { background-position: 0 0; //position of sprite x y }
#nav-home a:hover { background-position: 0 100px; //note the changed y-position }
#nav-about a { background-position: 20px 0; }
#nav-about a:hover { background-position: 20px 100px;}</pre>
<p>You can put everything in your sprite, think about icons, backgrounds, borders and corners.<br />
It&#8217;s even possible to combine it with background repeating.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ladysign-apps.com/blog/code/css/get-rid-of-many-page-requests-use-css-sprites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

