<?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>SlyphBlog</title>
	<atom:link href="http://slyph.org/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://slyph.org/blog</link>
	<description></description>
	<pubDate>Fri, 25 Apr 2008 04:52:13 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Metin2 - Accept MP without sharing your password</title>
		<link>http://slyph.org/blog/2008/02/16/metin2-accept-mp-without-sharing-your-password/</link>
		<comments>http://slyph.org/blog/2008/02/16/metin2-accept-mp-without-sharing-your-password/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 21:23:48 +0000</pubDate>
		<dc:creator>Silverline</dc:creator>
		
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://slyph.org/blog/2008/02/16/metin2-accept-mp-without-sharing-your-password/</guid>
		<description><![CDATA[This is for the nerds who play m2 who read this of course =)
Currently, item mall items are un-tradeable, and the desirable ones are un-giftable.
This isn&#8217;t watertight, and you are still scammable to an extent with this, but your gear is safe. This method is ALOT safer than the current way people do it. Either [...]]]></description>
			<content:encoded><![CDATA[<p>This is for the nerds who play m2 who read this of course =)</p>
<p>Currently, item mall items are un-tradeable, and the desirable ones are un-giftable.</p>
<p>This isn&#8217;t watertight, and <span style="font-weight: bold">you are still scammable</span> to an extent with this, but your gear is safe. This method is ALOT safer than the current way people do it. Either pay somebody in game with gold or in real life, then they will log in to <strong>your</strong> account on the site and buy you the MP. OR, you pay them by some means and then actually hand them your items in game and they&#8217;ll use whatever item (enchant scroll, stonecraft book, blessing scroll and so on) on it.</p>
<p>BOTH methods put your items at risk. The first puts your entire account at risk, but gives you the most freedom, since you can spend the MP on anything. There is no way to gift an EXP ring, so you MUST take the first method for that. The second method is optional (all are possible via the first), but more safe in a way. You only risk losing the item you give them to use mall stuff on, and / or the gold or real money you paid them to do it. At least they don&#8217;t have your account info.</p>
<p>This method is almost a fusion of both. It is largely the same as the FIRST method, but it bypasses a key  (and very dangerous) step - them having to login to your account on the site.</p>
<p>This introduction is actually quite long, but the process is really quite simple. You need to not be totally braindead to do this, and it requires communication outside of the game. I recommend you use Firefox for this, and you will see why.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>1) Login to <span style="font-style: italic">your own</span> account on the metin2 site.</p>
<p><a title="01_login.PNG" href="http://slyph.org/blog/wp-content/uploads/2008/02/01_login.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2008/02/01_login.thumbnail.PNG" alt="01_login.PNG" /></a></p>
<p>2) Once you&#8217;re logged in, choose the &#8220;Buy Metin Points&#8221;  option in the menu.</p>
<p><img src="http://slyph.org/blog/wp-content/uploads/2008/02/ln_buy_ro.jpg" alt="ln_buy_ro.jpg" /></p>
<p>3) Choose PayPal from the list of choices.</p>
<p><a title="03_paypal.PNG" href="http://slyph.org/blog/wp-content/uploads/2008/02/03_paypal.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2008/02/03_paypal.thumbnail.PNG" alt="03_paypal.PNG" /></a></p>
<p>4) Select the paypal button. When I say select here, I mean as if you are selecting text. Don&#8217;t click it, just drag your mouse over it until you have it selected. in this example, we&#8217;re doing the 2,000 MP card. In the context menu, choose <span style="font-weight: bold">View Selection Source</span>.</p>
<p><a title="04_source.PNG" href="http://slyph.org/blog/wp-content/uploads/2008/02/04_source.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2008/02/04_source.thumbnail.PNG" alt="04_source.PNG" /></a></p>
<p>5) In the window that pops up, we have the source HTML for the button. This HTML when in use, shows the button, it takes you to paypal and also submits some info along the way. This info includes the user ID the points will go to, points amount, cost, currency and so forth. Copy this code (if you selected more, we only need the code starting at &#8220;&lt;form&#8221; and ending in &#8220;&lt;/form&gt;&#8221; and paste it into notepad. (Identifying info, like my UserID is greyed out)</p>
<p><a title="05_code.PNG" href="http://slyph.org/blog/wp-content/uploads/2008/02/05_code.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2008/02/05_code.thumbnail.PNG" alt="05_code.PNG" /></a></p>
<p>6) Save this as whatever name you&#8217;d like, but use the extension <span style="font-weight: bold">.html</span> =)</p>
<p><a title="6_save.PNG" href="http://slyph.org/blog/wp-content/uploads/2008/02/6_save.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2008/02/6_save.thumbnail.PNG" alt="6_save.PNG" /></a></p>
<p>7) You can either upload this somewhere where you have space, or send them this HTML file. They just need to open it in a browser. When they do and click the button, they&#8217;ll be taken to paypal, as if they&#8217;d logged into your account and clicked the buton on the site normally:</p>
<p><a title="8_pay.PNG" href="http://slyph.org/blog/wp-content/uploads/2008/02/8_pay.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2008/02/8_pay.thumbnail.PNG" alt="8_pay.PNG" /></a></p>
<p>All done! =)</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>As said, this is not ENTIRELY SAFE. Here is why:</p>
<p>- If they want to, the person buying the points for you can find out your User ID with this method if they view the source of the HTML page. This is still alot safer than giving them your user ID AND your password. They don&#8217;t need to login to your account if you do it this way. Your password on the other hand, NEVER needs to be revealed.</p>
<p>- As with all current methods to trade for item mall stuff, there is a possibility that the person will simply take your in-game gold (or whatever payment you gave them) and then run with it, without buying your MP. BE CAREFUL with who you deal with. The metin2 staff WILL NOT help you if you are scammed in this way.</p>
<p>- Either way, this method should entirely replace what people are currently doing: giving other players their actual password and having them login to their account on the site in order to buy them MP. It is NOT required for the other player to login to your account, as is shown / explained above.</p>
<p>- Keep in mind that if whoever buys you MP in this method turns out to be an asshole that does a chargeback or some other sneaky method of not REALLY paying, the shitstorm will likely find its way to you. The safest (and indeed most convenient by far) method is to simply buy the points yourself, guys! But if you&#8217;re here, I guess that one has already left your consideration <img src='http://slyph.org/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://slyph.org/blog/2008/02/16/metin2-accept-mp-without-sharing-your-password/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The best list of cool Firefox extensions ever.</title>
		<link>http://slyph.org/blog/2007/08/25/the-best-list-of-cool-firefox-extensions-ever/</link>
		<comments>http://slyph.org/blog/2007/08/25/the-best-list-of-cool-firefox-extensions-ever/#comments</comments>
		<pubDate>Sat, 25 Aug 2007 20:23:51 +0000</pubDate>
		<dc:creator>Silverline</dc:creator>
		
		<category><![CDATA[Misc]]></category>

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

		<guid isPermaLink="false">http://slyph.org/blog/2007/08/25/the-best-list-of-cool-firefox-extensions-ever/</guid>
		<description><![CDATA[I&#8217;ve been a firefox user for years now, switching upon the release of 1.0.1 back in early 2005, and have been happy since. Since that time, I&#8217;ve built up a steadily growing collection of extensions and tweaks, which has resulted in my modern 2.0.0.6 being pretty tricked out. You&#8217;d think it would slow it down [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been a firefox user for years now, switching upon the release of 1.0.1 back in early 2005, and have been happy since. Since that time, I&#8217;ve built up a steadily growing collection of extensions and tweaks, which has resulted in my modern 2.0.0.6 being pretty tricked out. You&#8217;d think it would slow it down - I would too, but it still starts / performs pretty much as fast as a default install. Props to Mozilla.</p>
<p>Anyway, without further adieu, the alpabetical list. For the sake of my dignity, I&#8217;m going to exclude some site-specific ones.</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/10" target="_blank">Adblock</a></p>
<p>Pretty much any heavy web user is likely tired of annoying advertisements, and I&#8217;m no exception. Adblock combined with the next extension takes care of pretty much every ad I am ever likely to see.</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/1136" target="_blank">Adblock Filterset.G updater</a></p>
<p>This little tool simply fetches frequent and thorough blacklists of ad sites and servers. It really is just a set-and-forget thing.</p>
<p><a href="http://roachfiend.com/archives/2005/02/07/bugmenot/" target="_blank">BugMeNot</a></p>
<p>Ever get annoyed by sites that want you to register to see their content or read more? The BugMeNot extension lets you bypass compulsory web registration via Firefox’s right-click context menu.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/bugmenot.png" title="bugmenot.png"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/bugmenot.thumbnail.png" alt="bugmenot.png" /></a><br />
It really is as simple as that. Though if it&#8217;s a more obscure site it might come up dry, for most there&#8217;ll be pre-existing info for you to use.</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/271" target="_blank">ColorZilla</a></p>
<p>Colorzilla does what I thought the name suggested when I first heard of it - It&#8217;s a great colour picking tool.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/colorzilla.png" title="colorzilla.png"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/colorzilla.png" alt="colorzilla.png" /></a></p>
<p>It&#8217;ll let you pick colours from anywhere in your Firefox window - even the window itself, such as the menu / address bar and so on. You can zoom the page, create, use and save palettes. It&#8217;s handy for somebody into web design such as me, and is a great step up from the old method of screenshotting a site, pasting it into an image editing app and then picking colours from there.</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/743" target="_blank">CustomizeGoogle</a></p>
<p>Does exactly what it says on the tin: thorough customisation of everything google related.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/customizegoogle.png" title="customizegoogle.png"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/customizegoogle.thumbnail.png" alt="customizegoogle.png" /></a></p>
<p>This handles pretty much everything you could think of when wanting to tweak google&#8217;s behaviour. It is essentially a customizable rounding up of the best google customization greasemonkey scripts with a handy frontend. Recommended.</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/201" target="_blank">DownThemAll!</a></p>
<p>Saving the task of using a bloated, spyware and unneccessarily standalone manager such as FlashGet, DownThemAll! runs right inside and integrates with Firefox.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/dta.png" title="dta.png"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/dta.thumbnail.png" alt="dta.png" /></a></p>
<p>All the expected features are there, resuming, acceleration, filtering by name or extension, link crawling and so on.</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/1269" target="_blank">Fasterfox</a></p>
<p>Fasterfox is <a href="http://en.wikipedia.org/wiki/Fasterfox#Forced_Prefetch_controversy" target="_blank">not without some controversy</a>, and I <a href="http://rmrk.net/robots.txt" target="_blank">block it myself</a>, though I keep it around, primarily for a small feature: the page load timer.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/fasterfox.png" title="fasterfox.png"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/fasterfox.thumbnail.png" alt="fasterfox.png" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/3780" target="_blank">FaviconizeTab</a></p>
<p>Just a neat little extension that lets you shrink a tab you&#8217;re not currently using to just its favicon. I use it when for example when I&#8217;m using a file upload service and want to keep the upload tab out of the way whilst browsing in others.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/faviconize.png" title="faviconize.png"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/faviconize.thumbnail.png" alt="faviconize.png" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/1951">Fission</a></p>
<p>Ever since installing <a href="http://www.apple.com/safari/">Safari for windows</a>, I thought having the loading bar be in the address bar was a great idea, so looked around for an extension for it. Sure enough, there was fission. Simple and much more practical.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/fission.png" title="fission.png"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/fission.thumbnail.png" alt="fission.png" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/433">Flashblock</a></p>
<p>Since adblock gets all of the ads, that isn&#8217;t the purpose flashblock serves for me. I prefer to browse without annoying autplaying youtube videos (I like to open a set of youtube videos and then watch them, I assume others browse this way, in which case the autoplaying would be annoying) and especially loud badly compressed autostarting emo music on myspace profiles.</p>
<p>Flash objects are replaced by a box the size of the object with a button. Clicking anywhere in this will enable the object and it&#8217;ll work like normal. Very handy.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/flashblock.png" title="flashblock.png"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/flashblock.thumbnail.png" alt="flashblock.png" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/748">Greasemonkey</a></p>
<p>Greasemonkey allows you to run specialized scripts on certain sites to customise the look or add or remove functionality or various other tweaks. These scripts are called user scripts, and there are literally <a href="http://userscripts.org/">thousands of greasemonkey scripts</a> available. Greasemonkey&#8217;s capabilities are pracitcally limitless</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/gm.png" title="gm.png"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/gm.thumbnail.png" alt="gm.png" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/139" target="_blank">ImageZoom</a></p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/imagezoom.PNG" title="imagezoom.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/imagezoom.thumbnail.PNG" alt="imagezoom.PNG" /></a></p>
<p>ImageZoom simply lets you resize images, either alone or as part of a web page. It&#8217;s handy when you sometimes might want a closer look at something. I sometimes find myself just playing around with it when I&#8217;m bored. It has advanced options, and I&#8217;ve configured mine so that all I need do is hold a click on an image and simpy scroll to resize.</p>
<p><a href="http://reg.imageshack.us/content.php?page=extension">Imageshack right-click</a></p>
<p>As a frequent imageshack user (my account is approaching 6,000 images in size as of this writing), this extension is wholly useful. Simply right click on any image anywhere and you can send it straight to imageshack. Great for avoiding hotlinking or simply saving an image for later.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/iright.PNG" title="iright.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/iright.thumbnail.PNG" alt="iright.PNG" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/4014" target="_blank">Locationbar2</a></p>
<p>Locationbar transforms your address bar into much more than just an indication of the URL. Each directory into a site becomes a clickable link, making it great for browsing around file folders or sites with a nice directory tree structure. It also lets you tweak appearance; I&#8217;ve got emphasis on the domain, as well as removing the protocol (http:// or https:// and so on, https:// is signified by a yellow address bar anyway).</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/locationbar.PNG" title="locationbar.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/locationbar.thumbnail.PNG" alt="locationbar.PNG" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/710" target="_blank">Menu Editor</a></p>
<p>By far one of the coolest extensions for customising Firefox&#8217;s appearance and functionality. After all, who actually uses the context menu options such as &#8220;Send Image&#8221;? I certainly don&#8217;t, and as such have removed it along with other clutter. Combined with the Tiny Menu extension shown later on, this lets me really compact down my Firefox window whilst still keeping optimal functionality.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/menu-editor.PNG" title="menu-editor.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/menu-editor.thumbnail.PNG" alt="menu-editor.PNG" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/2110" target="_blank">MinimizeToTray</a></p>
<p>Likely a matter of personal preference for people, but when I minimize my Firefox, I&#8217;d prefer it to really get out of my way, taskbar and all. This handy extension sends it to my notification area, requiring just a double click to bring it back.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/mtt.PNG" title="mtt.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/mtt.thumbnail.PNG" alt="mtt.PNG" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/4356" target="_blank">MozAmPeek Streamer</a></p>
<p>Occasionally I come across links to mp3 or ogg etc. files, and would rather not have to go through the trouble or wait of downloading them first to listen to them. Usually to avoid this, I would copy the file&#8217;s URL. open up Winamp, get the Open URL dialog, paste it in and go to stream it instead. Quite tedious, possibly moreso than simply downloading. This is where MozAmPeek streamer comes in. This handy extension adds an option to the download dialog when you&#8217;re downloading a configured extension to simply do it all for you. You can configure multiple file types and players.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/mozamp.PNG" title="mozamp.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/mozamp.thumbnail.PNG" alt="mozamp.PNG" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/722" target="_blank">NoScript</a></p>
<p>NoScript is pretty much a condom for firefox, blocking all potentially unsafe Javascript. It works on a pre-emptive basis, meaning that initially it&#8217;ll probably annoy you until you&#8217;ve gone through the task of whitelisting all of your visited sites, though once you&#8217;ve waded through that, protects against unknown attacks.</p>
<p>NoScript is a so-so for me, if I didn&#8217;t already have it and knew how it worked I probably wouldn&#8217;t re-install it, but I keep it handy. It does turn out useful when browsing zealous sites that try to block my right click menu or stop be copying their text.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/noscript.PNG" title="noscript.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/noscript.thumbnail.PNG" alt="noscript.PNG" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/4723" target="_blank">Save Complete</a></p>
<p>Anybody familiar with Firefox&#8217;s built in &#8220;Save Page As&#8230;&#8221; function is probably aware of how broken it is. This fetches everything required for the page, including all stylesheets and images set in those stylesheets.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/savecomplete.PNG" title="savecomplete.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/savecomplete.thumbnail.PNG" alt="savecomplete.PNG" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/1146" target="_blank">Screen grab!</a></p>
<p>Screengrab is a cool window snapshot tool. It&#8217;ll save a selection, visible portion, or the entire page as either a PNG or JPG image.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/screengrab.png" title="screengrab.png"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/screengrab.thumbnail.png" alt="screengrab.png" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/321" target="_blank">SearchStatus</a></p>
<p>Privacy Zealots will probably want to avoid this one, since it emulates Alexa&#8217;s toolbar reporting. I use it to display a handy pagerank meter in my status bar, along with quick tools to check a domain&#8217;s WHOIS, robots.txt, and other neat stuff. I disabled the compete rank as well as the Alexa rank, since Alexa is a <a href="http://slashdot.org/article.pl?sid=07/07/23/152243" target="_blank">flawed</a> <a href="http://slashdot.org/article.pl?sid=06/10/19/142215" target="_blank">system</a> anyway.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/ss.PNG" title="ss.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/ss.thumbnail.PNG" alt="ss.PNG" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/1122" target="_blank">Tab Mix Plus</a></p>
<p>If you&#8217;re like me and sometimes find yourself with as much as 50+ tabs open sometimes, Tab Mix Plus is a lifesaver. It allows a silly amount of customisation and precision along with features. I can drag tabs around, give or switch focus, pull one tab from one Firefox window and drop it into another, Auto-reload a particular group of tabs, close a selection, the list goes on.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/tmp.PNG" title="tmp.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/tmp.thumbnail.PNG" alt="tmp.PNG" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/4882" target="_blank">Tab Scope</a></p>
<p>Tab Scope provides a real-time and live preview of the contents of other tabs when they&#8217;re hovered over. You can even use the contents of the other tab without actually switching to it.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/tabscope.PNG" title="tabscope.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/tabscope.thumbnail.PNG" alt="tabscope.PNG" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/1455" target="_blank">Tiny Menu</a></p>
<p>Another tool in my quest to minimalize firefox, Tiny Menu lets me compact the normal row of menu options into a single button. I leave my Bookmarks entry out of it, since I use that frequently.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/tinymenu.PNG" title="tinymenu.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/tinymenu.thumbnail.PNG" alt="tinymenu.PNG" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/57" target="_blank">Titlebar Tweaks</a></p>
<p>Tidy up, remove, or just replace with something silly the titlebar text of your Firefox window.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/tb.PNG" title="tb.PNG"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/tb.thumbnail.PNG" alt="tb.PNG" /></a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/60" target="_blank">Web Developer</a></p>
<p>It&#8217;s hard to figure out where to start with this. This tool is simply a must-have for anyone into web design or HTML, CSS and the like. Useful for debugging or figuring out your own work, or for simply snooping on other sites&#8217; markup. I use its many features frequently when working on a design, and now couldn&#8217;t live without it.</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/1802" target="_blank">X-Ray</a></p>
<p>X-Ray adds a context menu option that lets you transform a page into a version with visible tags. See the screenshot for an idea of what I mean. It&#8217;s useful for a quick snoop at a page&#8217;s source without going through the trouble of opening it&#8217;s source code.</p>
<p><a href="http://slyph.org/blog/wp-content/uploads/2007/08/xray3.png" title="xray3.png"><img src="http://slyph.org/blog/wp-content/uploads/2007/08/xray3.thumbnail.png" alt="xray3.png" /></a></p>
<p>=====================================</p>
<p>And that&#8217;s it! My current extensions. Firefox is great - though with all these extensions and customisations, I simply love it.</p>
]]></content:encoded>
			<wfw:commentRss>http://slyph.org/blog/2007/08/25/the-best-list-of-cool-firefox-extensions-ever/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SMF - Show Ads to guests &#038; members, though let members hide them</title>
		<link>http://slyph.org/blog/2007/06/07/smf-show-ads-to-guests-members-though-let-members-hide-them/</link>
		<comments>http://slyph.org/blog/2007/06/07/smf-show-ads-to-guests-members-though-let-members-hide-them/#comments</comments>
		<pubDate>Thu, 07 Jun 2007 07:33:49 +0000</pubDate>
		<dc:creator>Silverline</dc:creator>
		
		<category><![CDATA[SMF]]></category>

		<guid isPermaLink="false">http://slyph.org/blog/2007/06/07/smf-show-ads-to-guests-members-though-let-members-hide-them/</guid>
		<description><![CDATA[This is a simple trick I run on RMRK to get some extra help with ad revenue. Showing ads to guests is great. It works better providing a small notice along with the ads informing the guests that they won't see them if they login / register also.
You could just stick with that, but a [...]]]></description>
			<content:encoded><![CDATA[<p>This is a simple trick I run on <a href="http://rmrk.net/" target="_blank">RMRK</a> to get some extra help with ad revenue. Showing ads to guests is great. It works better providing a small notice along with the ads informing the guests that they won't see them if they login / register also.</p>
<p>You could just stick with that, but a forum such as RMRK is browsed almost entirely by logged in people.</p>
<p>I personally have a dislike of ads (except when they're mine of course=p ), so I don't want to force them on the users. A great way to allow them to hide them is a simple cookie system.</p>
<p>Go to the theme you want to add the ads to's directory and download the template file that you want to show ads for. You can usually work these out by the names. Display.template.php is used only when displaying topics, Profile.template.php is used when vieing profiles and so on. I've added this to my <strong>Index.template.php</strong>. This is the main template for your forum, and adding stuff in here should make it constant across all pages of your forum.</p>
<p>Here is my code, in snippets:</p>
<blockquote><p>//Ads - New approach.</p>
<p>if(isset($_GET['hideads'])){</p>
<p>setcookie("no_ads", "useless_value", time()+172800);  /* expire in 2 days */</p>
<p>echo '&lt;!-- COOKIE SET --&gt;';}</p></blockquote>
<p>This is the first part, and what this code will do is actually set the cookie if a request to hide ads has been sent in the URL. We'll give this option to hide later on. The cookie has a value of "useless_value" since we don't actually need any value in the cookie, we're just going to check whether or not it exists later on. the time is in seconds, and 172800 is 2 days. Increase or decrease this depending on how often you want the cookie to expire and the member to start seeing ads again.</p>
<blockquote><p>      if ($context['user']['is_guest'])<br />
{<br />
echo '<br />
&lt;div align="center"&gt;<br />
&lt;table&gt;&lt;tr&gt;&lt;td class="titlebg2" width="100%" style="border-top: 0;"&gt;<br />
&lt;script type="text/javascript"&gt;&lt;!--<br />
google_ad_client = "pub-7302574677795924";<br />
google_alternate_color = "EEEEEE";<br />
google_ad_width = 728;<br />
google_ad_height = 90;<br />
google_ad_format = "728x90_as";<br />
google_ad_type = "text_image";<br />
//2006-12-12: RMRK<br />
google_ad_channel = "8337678587";<br />
google_color_border = "FFFFFF";<br />
google_color_bg = "FFFFFF";<br />
google_color_link = "7880A8";<br />
google_color_text = "000000";<br />
google_color_url = "7880A8";<br />
//--&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript"<br />
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;<br />
&lt;/script&gt;<br />
&lt;small&gt;Registered/Logged in users can hide advertisements and also have access to additional forums and features. Please Log in or consider &lt;a href="', $scripturl, '?action=register;" title="Register"&gt;registering&lt;/a&gt;.&lt;/b&gt;&lt;/small&gt;<br />
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</p>
<p>&lt;/div&gt;<br />
';</p>
<p>}</p></blockquote>
<p>Here I check if a user is a guest, and if they are, just show an ad along with a message letting them know they can hide them if logged in. I also try and reel them in by letting them know that they can't see a couple of special forums whilst not registered =p</p>
<blockquote><p> else {</p>
<p>if(isset($_COOKIE['no_ads'])){<br />
echo '&lt;!-- no ads --&gt;';}<br />
else{<br />
echo '<br />
&lt;div align="center"&gt;</p>
<p>&lt;table&gt;&lt;tr&gt;&lt;td class="titlebg2" width="100%" style="border-top: 0;"&gt;<br />
&lt;script type="text/javascript"&gt;&lt;!--<br />
google_ad_client = "pub-7302574677795924";<br />
google_alternate_color = "EEEEEE";<br />
google_ad_width = 728;<br />
google_ad_height = 90;<br />
google_ad_format = "728x90_as";<br />
google_ad_type = "text_image";<br />
//2006-12-12: RMRK<br />
google_ad_channel = "8337678587";<br />
google_color_border = "FFFFFF";<br />
google_color_bg = "FFFFFF";<br />
google_color_link = "7880A8";<br />
google_color_text = "000000";<br />
google_color_url = "7880A8";<br />
//--&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript"<br />
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;<br />
&lt;/script&gt;&lt;br&gt;&lt;a href="', $scripturl, '?hideads=blah;" title="Hide this ad?" onclick="return confirm(\'This will make these ads go away for a few days.\');"&gt;(Hide this?)&lt;/a&gt;<br />
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<br />
&lt;/div&gt;<br />
';</p>
<p>}</p>
<p>}</p></blockquote>
<p>Ths next part uses an <strong>else </strong>statement. Since they're not a guest, we know they're logged in. We first check for the presence of a "no ads please" cookie, and if there is one, we don't show any ads (instead I just inset a HTML comment saying so). If the cookie isn't there, we show an ad, like we did to guests, though we also give them the cookie setting link that the first part of this code uses to set the cookie. When they click the hide link we show a confirmation dialog box just to make sure they want to hide them. =p</p>
<p>And that's it! A guest cannot work around this, as the cookie's presence is only checked for once we've determined they they aren't a guest. You could easily adapt this so that, say, only people in a certain membergroup or post group could have the ability to hide them; it's just a case of altering the variables that are checked against.</p>
<p>This is very simple and of course not foolproof, and there will always be people who simply block all ads via extensions, but this works for the majority.</p>
]]></content:encoded>
			<wfw:commentRss>http://slyph.org/blog/2007/06/07/smf-show-ads-to-guests-members-though-let-members-hide-them/feed/</wfw:commentRss>
		</item>
		<item>
		<title>(Very) Simple SMF Level System</title>
		<link>http://slyph.org/blog/2007/06/07/very-simple-smf-level-system/</link>
		<comments>http://slyph.org/blog/2007/06/07/very-simple-smf-level-system/#comments</comments>
		<pubDate>Thu, 07 Jun 2007 07:05:59 +0000</pubDate>
		<dc:creator>Silverline</dc:creator>
		
		<category><![CDATA[SMF]]></category>

		<guid isPermaLink="false">http://slyph.org/blog/2007/06/07/very-simple-smf-level-system/</guid>
		<description><![CDATA[I can't stress the "simple" part enough for this one. This runs entirely on the template side. The level is calculated on the fly, and not stored in any variable or in the database where you can call it elsewhere. This is probably both an advantage and a disadvantage, depending on what you're planning to [...]]]></description>
			<content:encoded><![CDATA[<p>I can't stress the "simple" part enough for this one. This runs entirely on the template side. The level is calculated on the fly, and not stored in any variable or in the database where you can call it elsewhere. This is probably both an advantage and a disadvantage, depending on what you're planning to do with it.</p>
<p>I use this for <a href="http://rmrk.net/" target="_blank">RMRK</a>, an RPG Making forum.</p>
<p>It calculates a level based off the user's postcount and member ID (lower (i.e. an older member) being better).</p>
<p>To use this is very simple, open up your theme's <strong>Display.template.php</strong> and find the following:</p>
<blockquote><p>// Show how many posts they have made.</p></blockquote>
<p>Either remove or comment out the default, which will almost always be something just like this:</p>
<blockquote><p>echo '', $message['member']['posts'] ,' &lt;br /&gt;'</p></blockquote>
<p>and insert this instead:</p>
<blockquote><p>$number = explode('.',round(pow (log10 ($message['member']['real_posts'] + ($context['common_stats']['latest_member']['id'] - $message['member']['id'])), 3),2));</p>
<p>$string = $number[0]. (isset($number[1]) ? ' ('. $number[1] . (strlen($number[1]) &lt;2 ? '0' : '') .'%)' : '');</p>
<p>echo ' &lt;br /&gt;&lt;abbr title="Member ',$message['member']['id'],'  •  ',$message['member']['posts'],' Posts"&gt;Level  ', $string , '&lt;/abbr&gt;&lt;br /&gt;';</p></blockquote>
<p>Here's an explanation of what is going on here:</p>
<blockquote><p>$number = explode('.',round(pow (log10 ($message['member']['real_posts'] + ($context['common_stats']['latest_member']['id'] - $message['member']['id'])), 3),2));</p></blockquote>
<p>This works out as follows: It starts off with the member's postcount. From here, we add the latest member's ID (a way of basically saying how many registered users there are on your forum), and then subtract from this the member's user ID.</p>
<p>If two members have the same amount of posts, the one with the lower user ID will have a higher number at the outcome of this equasion, resulting in a higher level. After all, they've been there longer! Then we do some extra math to generate the actual level from this number. It's such that as a level increases, it becomes harder to attain the next one. Finally the result is prepared to be interpreted by the next line..</p>
<blockquote><p> $string = $number[0]. (isset($number[1]) ? ' ('. $number[1] . (strlen($number[1]) &lt;2 ? '0' : '') .'%)' : '');</p></blockquote>
<p>This takes the level number and formats it with a percentage on the end (if the level isn't an exact number). This gives a nice way of showing how far the member is towards the next level. Examples of how this would show:</p>
<p>Level 12</p>
<p>Level 5 (06%)</p>
<p>Level 40 (74%)</p>
<p>Now we have all this, let's display the member's level:</p>
<blockquote><p> echo ' &lt;br /&gt;&lt;abbr title="Member ',$message['member']['id'],'  •  ',$message['member']['posts'],' Posts"&gt;Level  ', $string , '&lt;/abbr&gt;&lt;br /&gt;';</p></blockquote>
<p>Since the level is generated from Postcount and User ID, I provide this information in a tooltip if a viewer hovers over the level. I also do this since on my own forum, user IDs and postcount aren't shown on the message display. You could do this differently for your own forum. I've only tested and used this whilst inside the display template, though it should also be usable on a member's profile</p>
]]></content:encoded>
			<wfw:commentRss>http://slyph.org/blog/2007/06/07/very-simple-smf-level-system/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Simple Integration of PJIRC with SMF</title>
		<link>http://slyph.org/blog/2007/06/06/simple-integration-of-pjirc-with-smf/</link>
		<comments>http://slyph.org/blog/2007/06/06/simple-integration-of-pjirc-with-smf/#comments</comments>
		<pubDate>Thu, 07 Jun 2007 02:20:17 +0000</pubDate>
		<dc:creator>Silverline</dc:creator>
		
		<category><![CDATA[SMF]]></category>

		<guid isPermaLink="false">http://slyph.org/blog/2007/06/06/simple-integration-of-pjirc-with-smf/</guid>
		<description><![CDATA[I wrote this simple integration just for my own forum, though after a few requests from some friends running their own SMF forums, I'm going to outline just how I did this.
The absolute first thing you need to do is to get and upload some Java files. These are PJIRC, a popular Java IRC Applet. [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote this simple integration just for <a href="http://rmrk.net/" target="_blank">my own</a> forum, though after a few requests from some friends running their own SMF forums, I'm going to outline just how I did this.</p>
<p>The absolute first thing you need to do is to get and upload some Java files. These are PJIRC, a popular Java IRC Applet. Get them here: <a href="http://slyph.org/blog/wp-content/uploads/2007/06/smf-irc.zip" title="SMF IRC Java Files">SMF IRC Java Files</a>. <strong>Upload these files to your forum's base directory.</strong></p>
<p>The chat feature is accesed through the forum, as in via <strong>yourforum/index.php?action=<em>chat.</em></strong> We're going to setup this custom "action" ourselves. Don't worry, this is very easy.</p>
<p>Navigate to your forum's base directory, and open up the <strong>index.php</strong> file. We need to add a new array for when "chat" is requested. Scroll down until you see the following snippet in the file:</p>
<blockquote><p>    // Here's the monstrous $_REQUEST['action'] array - $_REQUEST['action'] =&gt; array($file, $function).<br />
$actionArray = array(</p></blockquote>
<p>You'll see a long list of all the current valid requests. All we need to do here is add in a new line to handle a "chat" request, so add this:  <strong>'chat' =&gt; array('Chat.php', 'Chat'),</strong> .</p>
<p>Here's how mine looks after adding this:</p>
<blockquote><p>    // Here's the monstrous $_REQUEST['action'] array - $_REQUEST['action'] =&gt; array($file, $function).<br />
$actionArray = array(<br />
'activate' =&gt; array('Register.php', 'Activate'),<br />
'chat' =&gt; array('Chat.php', 'Chat'),</p></blockquote>
<p>As you can see, I've added "chat" after the activate one. That's all we need to do in index.php, so save this file and re-upload it to your forum's base directory. From here-on we'll be creating new files.</p>
<p>The first file we need to create will be called <strong>Chat.php</strong>. Note the capitalisation! In this file we only need a few lines. Add this to your file:</p>
<blockquote><p>&lt;?php<br />
if (!defined('SMF'))<br />
die('Hacking attempt...');</p>
<p>function chat() {<br />
global $context;<br />
$context['page_title'] = '#Crankeye @ irc.rmrk.net - RMRK\'s IRC Channel';<br />
loadTemplate('Chat');<br />
}<br />
?&gt;</p></blockquote>
<p>As you can see, there are some things you'll want to edit for your own SMF forum. Namely, the page title variable. Remember to escape single quotes if you use any, like I have.</p>
<p>Once you've saved this file, upload it into the <strong>/Sources</strong> directory of your SMF directory.</p>
<p>The final file we need to create is a <strong>Chat.template.php</strong> file. This is the main page that your users will see and it's where we embed the Java files.</p>
<blockquote><p>&lt;?php<br />
function template_main()<br />
{<br />
global $context, $settings, $options, $txt, $scripturl;</p>
<p>//Some stuff to fix up the username first!</p>
<p>$badchar = array(" ");<br />
$newchar = array("_");<br />
$chatusername = str_replace($badchar, $newchar, $context['user']['name']);</p>
<p>echo '<br />
&lt;style type="text/css"&gt;<br />
.chat_header<br />
{<br />
font-family: \'trebuchet ms\', sans-serif;<br />
font-size: 30px;<br />
font-weight: bold;<br />
letter-spacing: -2px;<br />
line-height: 1em;<br />
margin-bottom: 100px;<br />
margin-top: 10px;<br />
}<br />
&lt;/style&gt;</p>
<p>&lt;table width="100%" border="0" cellspacing="0" cellpadding="3" &gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;', theme_linktree(), '&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;</p>
<p>&lt;table width="100%" border="0" cellspacing="0" cellpadding="4" align="center" class="tborder"&gt;<br />
&lt;tr class="titlebg"&gt;<br />
&lt;td align="center" &gt;&lt;span class="chat_header"&gt;RMRK Chat - #Crankeye&lt;/span&gt;&lt;/td&gt;<br />
&lt;/tr&gt;&lt;tr&gt;<br />
&lt;td class="windowbg"&gt;</p>
<p>&lt;center&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="windowbg2"&gt;<br />
&lt;applet name="applet" code=IRCApplet.class archive="irc.jar,pixx.jar" width=640 height=400&gt;<br />
&lt;param name="CABINETS" value="irc.cab,securedirc.cab,pixx.cab"&gt;</p>
<p>&lt;param name="nick" value="',$chatusername,'"&gt;<br />
&lt;param name="alternatenick" value="Guest???"&gt;<br />
&lt;param name="name" value="Japplet"&gt;<br />
&lt;param name="host" value="irc.acidchat.net"&gt;<br />
&lt;param name="gui" value="pixx"&gt;<br />
&lt;param name="command1" value="/join #Crankeye"&gt;<br />
&lt;param name="quitmessage" value="Quit message!"&gt;<br />
&lt;param name="style:highlightlinks" value="true"&gt;</p>
<p>&lt;/applet&gt;</p>
<p>&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;</p>
<p>&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<br />
&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;<br />
';<br />
}</p>
<p>?&gt;</p></blockquote>
<p>Quite a mouthful! Skimming through the above you should notice various bits that are specific and should be changed. I'll take you on a tour:</p>
<blockquote><p> $badchar = array(" ");<br />
$newchar = array("_");<br />
$chatusername = str_replace($badchar, $newchar, $context['user']['name']);</p></blockquote>
<p>This is just a really quick basic username fixing snippet, and works on the assumption that the username of almost anybody on your forum is likely to be made up of letters, numbers and spaces. You can't have spaces in an IRC nick, so this will replace spaces with an underscore, which is fine. Without this, a member named <em>King Anesis</em> would enter chat as <em>King</em>, though with this, he would enter as <em>King_Anesis</em>.</p>
<p>Skip ahead until you come to:</p>
<blockquote><p>&lt;span class="chat_header"&gt;RMRK Chat - #Crankeye&lt;/span&gt;</p></blockquote>
<p>You'll of course want to change this to suit your own forum. This is the header that will appear for the page, before the applet. Remember that you are writing inside a PHP echo statement, so if you use a single quote (') anywhere in your text, you must escape it (\') instead.</p>
<p>The applet embedding code needs no editing. Since you uploaded the Java files to your forum's base directory, this page will find them and load them (along with the language files) fine.</p>
<p>Skip ahead some more and we come to the params:</p>
<blockquote><p>&lt;param name="nick" value="',$chatusername,'"&gt;<br />
&lt;param name="alternatenick" value="Guest???"&gt;<br />
&lt;param name="name" value="Japplet"&gt;<br />
&lt;param name="host" value="irc.acidchat.net"&gt;<br />
&lt;param name="gui" value="pixx"&gt;<br />
&lt;param name="command1" value="/join #Crankeye"&gt;<br />
&lt;param name="quitmessage" value="Quit message!"&gt;<br />
&lt;param name="style:highlightlinks" value="true"&gt;</p></blockquote>
<p>These should be obvious enough. The "alternatenick" value can have whatever you like in it, though it's a good idea to include at least 2 question marks in it. These question marks will be replaced by PJIRC with random numbers, ensuring that if there's a guest currently on, new guests will still be able to join. Change the "host" value to point to the IRC network that your own channel is on.</p>
<p>The "command1" value is a command that the client will automatically send upon connecting. Since you want the person to automatically be in your channel, we set this to "<strong>/join #yourchannel</strong>".</p>
<p>This is pretty much it! You can add whatever extra HTML underneath, around or above the applet if you wanted to.</p>
<p>One neat thing you can do is add buttons onto the chat page that will send data to the applet. Here's an example:</p>
<blockquote><p> &lt;FORM&gt;<br />
&lt;INPUT TYPE=BUTTON VALUE="Smile" onClick="document.applet.setFieldText(document.applet.getFieldText()+\'<strong>=)</strong>\');document.applet.requestSourceFocus()"&gt;<br />
&lt;INPUT TYPE=BUTTON VALUE="How awesome is RMRK?" onClick="document.applet.sendString(\'<strong>RMRK ROX</strong>\')"&gt;<br />
&lt;/FORM&gt;</p></blockquote>
<p>The first one simply puts text into the text field of the applet. The second one sends the text to the channel automatically, without the user having to send it.</p>
]]></content:encoded>
			<wfw:commentRss>http://slyph.org/blog/2007/06/06/simple-integration-of-pjirc-with-smf/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
