<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://ydal.de/wp-atom.php">
	<title type="text">ydal</title>
	<subtitle type="text">Miscellaneous nerdy tidbits of one Tobias 'towo' Wolter.</subtitle>

	<updated>2010-07-27T17:22:09Z</updated>

	<link rel="alternate" type="text/html" href="http://ydal.de" />
	<id>http://ydal.de/feed/atom/</id>
	

	<generator uri="http://wordpress.org/" version="3.0">WordPress</generator>
		<feedburner:info uri="ydal" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://ydal.de/feed/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://ydal.de/feed/" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Fydal.de%2Ffeed%2F" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><feedburner:browserFriendly>The feed of the personal homepage of Tobias ‘towo’ Wolter, which suffers from the usual neglect of people too busy with other things to actually care about their homepage.</feedburner:browserFriendly><entry>
		<author>
			<name>towo</name>
						<uri>https://www.google.com/accounts/o8/id?id=AItOawlrXDqSX6HEWX5nQmwiifumnr8u0O5qfaw</uri>
					</author>
		<title type="html"><![CDATA[Value of two-factor authentication in MMOs]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ydal/~3/eGxcSnwkni0/" />
		<id>http://ydal.de/?p=469</id>
		<updated>2010-07-27T17:22:09Z</updated>
		<published>2010-07-27T17:22:09Z</published>
		<category scheme="http://ydal.de" term="Articles" />		<summary type="html"><![CDATA[A short explanation of two-factor authentication used i [...]]]></summary>
		<content type="html" xml:base="http://ydal.de/value-of-two-factor-authentication-in-mmos/">&lt;p&gt;Cypherpunks everywhere know that using two-factor authentication, when done right, is inherently more secure.&lt;/p&gt;
&lt;p&gt;Nothing can be said against the security of wisely-used one-factor authentication, but care must be taken to ensure the ongoing security of that factor. If you use a password, you need to choose a secure one — and if you don’t change it regularly, it logically gets weaker, too.&lt;/p&gt;
&lt;p&gt;I know of at least one WoW player who is positively paranoid about exposing their passwords to someone, even though they don’t exhibit that behaviour elsewhere.&lt;/p&gt;
&lt;p&gt;And then, of course, there’s the people who complain about having their accounts hacked, even though they used a secure password like their birthday. Or abcde.&lt;/p&gt;
&lt;p&gt;A mitigating factor against people being too stupid to use passwords securely, then, is needed. And that’s where two-factor authentication comes along.&lt;/p&gt;
&lt;p&gt;Two-factor authentication, in essence, means that there you need to prove your own identity by two different means. This isn’t like using two different passwords. The common examples for factors include “things the user knows” — like a password, PIN, etc, “things the user has”, like some form of physical security token, and “things the user is”, i.e. biometric verification methods.&lt;/p&gt;
&lt;p&gt;Biometric verification is more “comfortable” to use, but does have two major drawbacks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;it requires specialized equipment (in most cases)&lt;/li&gt;
&lt;li&gt;it is vulnerable to &lt;a href="http://en.wikipedia.org/wiki/Replay_attack"&gt;replay attacks&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So, mainly for reasons of practicality, owning an authentication token is the best method of getting a second factor into the mix.&lt;/p&gt;
&lt;p&gt;But why would a company like Blizzard, for example, cough up the effort to actually enable something like authenticators — not only via device, but by mobile phone, too — and then go ahead and reward players (in the form of an in-game pet, but nevertheless) for using an authenticator — merely to save people from their own stupidity?&lt;/p&gt;
&lt;p&gt;Simple enough: to help battle against “economic” abuse, and to help protect their own interests by having to deal with less “hacked account” cases.&lt;/p&gt;
&lt;p&gt;Even though the latter reason might just be enough to implement it, the former is actually the most important one. &lt;a href="http://en.wikipedia.org/wiki/Gold_farming"&gt;Gold farming&lt;/a&gt; is a serious problem for online gaming companies, and even underdeveloped economies like that of WoW can suffer greatly from such manipulation.&lt;/p&gt;
&lt;p&gt;If you want to read a fictional example of a near-future vision on the importance and concepts of gold farming, you should read up on &lt;a href="http://craphound.com/ftw/"&gt;Cory Doctorow’s “For The Win”&lt;/a&gt;. Even though it’s a bit over the top compared to the current state of the game, it might very well be similar in the years to come.&lt;/p&gt;
&lt;p&gt;Of course, the battle.net authentication token Blizzard distributes &lt;a href="http://www.wowwiki.com/Blizzard_Authenticator#Technical_Issues"&gt;does seem to have reliability problems&lt;/a&gt;, the mobile authenticator — a Java application — seems to work fairly well, and, compared to the DIGIPASS Go 6 authenticators used by Blizzard, actually has &lt;a href="http://bnetauth.freeportal.us/specification.html"&gt;a reverse-engineered spec available&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Even though the DIGIPASS algorithm was, to the author’s knowledge, not broken so far, the fact that the developing company does not disclose the DIGIPASS source code to non-customers, along &lt;a href="http://archive.cert.uni-stuttgart.de/bugtraq/2006/11/msg00488.html"&gt;with a rather cheeky attitude&lt;/a&gt;, should serve as sufficient indicators to avoid their products.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/ydal/~4/eGxcSnwkni0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ydal.de/value-of-two-factor-authentication-in-mmos/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ydal.de/value-of-two-factor-authentication-in-mmos/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://ydal.de/value-of-two-factor-authentication-in-mmos/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>towo</name>
						<uri>https://www.google.com/accounts/o8/id?id=AItOawlrXDqSX6HEWX5nQmwiifumnr8u0O5qfaw</uri>
					</author>
		<title type="html"><![CDATA[Using grub2 to recover your system]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ydal/~3/GQswhE1rGN0/" />
		<id>http://ydal.de/?p=456</id>
		<updated>2010-06-17T14:54:10Z</updated>
		<published>2010-06-17T14:51:41Z</published>
		<category scheme="http://ydal.de" term="FAQs" /><category scheme="http://ydal.de" term="Publications" /><category scheme="http://ydal.de" term="boot" /><category scheme="http://ydal.de" term="grub" /><category scheme="http://ydal.de" term="HOWTO" />		<summary type="html"><![CDATA[How to use grub2 to boot operating systems. [...]]]></summary>
		<content type="html" xml:base="http://ydal.de/using-grub2-to-recover-your-system/">&lt;p&gt;grub2 is hailed as the all new, super modular cure-all remedy for all booting problem you’ve had, have and will have. At least that’s the way the developers and some enthusiasts see it, whereas most blokes who’ve actually had to use it with more than arrow keys and enter will paint a slightly different picture.&lt;/p&gt;
&lt;p&gt;The thing with grub2 is that even though in theory it sounds like the end of all things booting, it’s about as well-documented as the question for life, the universe, and everything.&lt;/p&gt;
&lt;p&gt;And as I today had to try to fight my way through googling for necessary information again, I’d thought I’d create a quick step-by-step reference with all the most interesting bits you’ll ever need already there.&lt;/p&gt;
&lt;p&gt;Thusly, the ingredients needed to resurrect your computer with grub2. The gist is that you have the goal of booting one specific operating system on your computer, from wherein which you’ll use whatever methods you deem necessary to update your grub in the “right way” — usually a downgrade to an older version and waiting for the dust to blow over.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A booting grub2. If your grub2 already fails to boot because of some random error, you need to get a grub in smelling distance of your BIOS. One of the most proven methods is to
&lt;ol&gt;
&lt;li&gt;Download a USB rescue image like &lt;a href="http://grml.org/"&gt;grml&lt;/a&gt; (usually from Your Other Computer or that of somebody else)&lt;/li&gt;
&lt;li&gt;Put it on an USB stick (&lt;kbd&gt;dd if=grml-&lt;var&gt;variant&lt;/var&gt;_&lt;var&gt;version&lt;/var&gt;.iso of=/dev/sd&lt;var&gt;x&lt;/var&gt;&lt;/kbd&gt; in most cases, with appropriately chosen variables)&lt;/li&gt;
&lt;li&gt;(Re)boot, eventually adjusting the priority for your USB HDD/USB key&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And that’s it, you’re in a grub. Also note that it’s recommendable to have an USB stick with a rescue image lying around for the times when you can’t just easily download it.&lt;/li&gt;
&lt;li&gt;Enter the command line/shell mode by pressing ‘&lt;kbd&gt;c&lt;/kbd&gt;’.&lt;/li&gt;
&lt;li&gt;Do an ‘&lt;kbd&gt;ls&lt;/kbd&gt;’, which will give you a listing of recognized devices. Doing an ‘&lt;kbd&gt;ls &lt;var&gt;device&lt;/var&gt;&lt;/kbd&gt;’, e.g. &lt;kbd&gt;ls (hd0,1)&lt;/kbd&gt; will give you more information about that device.&lt;/li&gt;
&lt;li&gt;If the information by your ls isn’t complete, you will have to load some modules (by using &lt;kbd&gt;insmod &lt;var&gt;modulename&lt;/var&gt;&lt;/kbd&gt;). Here’s a checklist:
&lt;ol&gt;
&lt;li&gt;If you do not see any other devices which look like your hard drive(s), e.g. you only have an (hd0) device from your USB medium, then load a &lt;strong&gt;device&lt;/strong&gt; driver. They will allow you to find the actual devices. Examples include:
&lt;ul&gt;
&lt;li&gt;biosdisk&lt;/li&gt;
&lt;li&gt;scsi&lt;/li&gt;
&lt;li&gt;fs_uuid&lt;/li&gt;
&lt;li&gt;pci&lt;/li&gt;
&lt;li&gt;raid&lt;/li&gt;
&lt;li&gt;mdraid&lt;/li&gt;
&lt;li&gt;dm_nv&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If you have devices, but no partitions, you’ll need a &lt;strong&gt;partition&lt;/strong&gt; driver. It seems the default grub config does not load any partition driver, and debugging this is just a bit annoying. But there’s two easy choices for most people:
&lt;ul&gt;
&lt;li&gt;Load the module “&lt;samp&gt;part_msdos&lt;/samp&gt;”.&lt;/li&gt;
&lt;li&gt;If this doesn’t help, try “&lt;samp&gt;part_gpt&lt;/samp&gt;”.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are the two most common partition tables (at least for next to everyone reading this guide in need) and should help your grub find its partitions again.&lt;/li&gt;
&lt;li&gt;Eventually, you will also have to load your &lt;strong&gt;filesystem&lt;/strong&gt; drivers. I presume you already know which those are, but for the sake of completion:
&lt;ul&gt;
&lt;li&gt;Almost all Linux use &lt;samp&gt;ext2&lt;/samp&lt;/li&gt;
&lt;li&gt;Most current Windows will use &lt;samp&gt;ntfs&lt;/samp&gt;, but &lt;samp&gt;fat&lt;/samp&gt; is also an option.&lt;/li&gt;
&lt;li&gt;Mac users will use &lt;samp&gt;hfsplus&lt;/samp&gt; for newer systems, &lt;samp&gt;hfs&lt;/samp&gt; for older ones.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;p&gt;The next step depends on exactly what you want to do. There’s a fork in the road — if you just want to load your previously unbootable grub, you will try to load its configuration file, else you’ll try to boot your operating system kernel.&lt;/li&gt;
&lt;li&gt;To &lt;strong&gt;search for a file&lt;/strong&gt;, you use the &lt;kbd&gt;search -f &lt;var&gt;filename&lt;/var&gt;&lt;/kbd&gt; command, which will give you results on where files of that name are stored. Use &lt;kbd&gt;root &lt;var&gt;device&lt;/var&gt;&lt;/kbd&gt; to set the resultant device as the root device for your further operations. If you only want to load your old grub config, type in &lt;kbd&gt;configfile &lt;var&gt;filename&lt;/var&gt;&lt;/kbd&gt;, whereas &lt;var&gt;filename&lt;/var&gt; will usually be something like &lt;samp&gt;/grub/grub.cfg&lt;/samp&gt; or &lt;samp&gt;/boot/grub/grub.cfg&lt;/samp&gt;.&lt;/li&gt;
&lt;li&gt;Should this fail to resolve your problem, or not be what you’re aiming for, you’ll need to &lt;strong&gt;find the operating system&lt;/strong&gt;. For most Linuxens, you’ll probably have a file called &lt;samp&gt;/vmlinuz&lt;/samp&gt; or &lt;samp&gt;/boot/vmlinuz&lt;/samp&gt; to search for. For Windows operating systems, look for &lt;samp&gt;/Windows/win.ini&lt;/samp&gt;. For Mac: no clue. When found, set your root device (with &lt;kbd&gt;root &lt;var&gt;device&lt;/var&gt;&lt;/kbd&gt;).&lt;/li&gt;
&lt;li&gt;Now methods will become divergent, as operating systems differ in the way of &lt;strong&gt;booting them&lt;/strong&gt;.
&lt;dl&gt;
&lt;dt style="font-weight: bold"&gt;Linux&lt;/dt&gt;
&lt;dd&gt;
&lt;ol&gt;
&lt;li&gt;&lt;kbd&gt;kernel &lt;var&gt;kernel_filename&lt;/var&gt;&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;initrd &lt;var&gt;initrd_filename&lt;/var&gt;&lt;/kbd&gt; [most current kernels come with an “initial ramdisk” holding modules etc.]&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;boot&lt;/kbd&gt; — if all goes well, you’re set.&lt;/li&gt;
&lt;/ol&gt;
&lt;/dd&gt;
&lt;dt style="font-weight: bold"&gt;Windows&lt;/dt&gt;
&lt;dd&gt;
&lt;ol&gt;
&lt;li&gt;&lt;kbd&gt;chainloader +1&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;boot&lt;/kbd&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/dd&gt;
&lt;dt style="font-weight: bold"&gt;MacOS&lt;/dt&gt;
&lt;dd&gt;Probably the same as Windows, using the chainloader.&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And that’s it. It should cover most cases you’d need to restore your capability of booting your operating system. You’ll probably want to fix/install your bootloader after this, though.&lt;/p&gt;
&lt;p&gt;A helpful tool for debugging your current grub state is &lt;kbd&gt;probe&lt;/kbd&gt;, which will allow you to check what drivers are assigned to devices.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/ydal/~4/GQswhE1rGN0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ydal.de/using-grub2-to-recover-your-system/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ydal.de/using-grub2-to-recover-your-system/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://ydal.de/using-grub2-to-recover-your-system/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>towo</name>
						<uri>https://www.google.com/accounts/o8/id?id=AItOawlrXDqSX6HEWX5nQmwiifumnr8u0O5qfaw</uri>
					</author>
		<title type="html"><![CDATA[vimium mapping for Dvorak layouts]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ydal/~3/7ZL3j2EqKR8/" />
		<id>http://ydal.de/?p=444</id>
		<updated>2010-06-15T14:14:12Z</updated>
		<published>2010-04-21T10:47:57Z</published>
		<category scheme="http://ydal.de" term="Code" /><category scheme="http://ydal.de" term="Chrome" /><category scheme="http://ydal.de" term="Chromium" /><category scheme="http://ydal.de" term="dvorak" /><category scheme="http://ydal.de" term="keyboard" /><category scheme="http://ydal.de" term="usability" /><category scheme="http://ydal.de" term="vim" /><category scheme="http://ydal.de" term="vimium" />		<summary type="html"><![CDATA[Dvorak keyboard mappings for the vimium extension. [...]]]></summary>
		<content type="html" xml:base="http://ydal.de/vimium-mapping-for-dvorak-layouts/">&lt;p&gt;I recently stumbled upon the rather neat &lt;a href="https://chrome.google.com/extensions/detail/dbepggeogbaibhgnhhndojpepiihcmeb?hl=en"&gt;vimium&lt;/a&gt; extension for Chrom(e|ium), which does much the same as the &lt;a href="http://vimperator.org/vimperator"&gt;vimperator&lt;/a&gt; extension for Firefox. The problem, though, as with vimperator and vim itself, is that the default keyboard mappings are a bit of a pain in the arse for Dvorak users, as hjkl isn’t on the home row anymore, much less next to each other.&lt;/p&gt;
&lt;p&gt;Therefore, it needs some remapping to get in a halfway familiar and Dvorak-compatible layout, which would look like this:&lt;/p&gt;
&lt;pre&gt;
unmapAll

map r reload
map e removeTab
map u restoreTab
map h scrollDown
map t scrollUp
map d scrollLeft
map n scrollRight
map &amp;lt;c-h&amp;gt; scrollPageDown
map &amp;lt;c-t&amp;gt; scrollPageUp
map &amp;lt;c-u&amp;gt; scrollFullPageDown
map D goBack
map N goForward
map T nextTab
map H previousTab
map &amp;lt;c-y&amp;gt; createTab
map gg scrollToTop
map G scrollToBottom
map gf toggleViewSource
map zi zoomIn
map zo zoomOut
map yy copyCurrentUrl
map i enterInsertMode
map f activateLinkHintsMode
map F activateLinkHintsModeToOpenInNewTab
map / enterFindMode
map . performFind
map , performBackwardsFind
&lt;/pre&gt;
&lt;p&gt;Just paste it in the remap field of the extension’s “advanced options” menu.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/ydal/~4/7ZL3j2EqKR8" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ydal.de/vimium-mapping-for-dvorak-layouts/#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://ydal.de/vimium-mapping-for-dvorak-layouts/feed/atom/" thr:count="3" />
		<thr:total>3</thr:total>
	<feedburner:origLink>http://ydal.de/vimium-mapping-for-dvorak-layouts/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>towo</name>
						<uri>https://www.google.com/accounts/o8/id?id=AItOawlrXDqSX6HEWX5nQmwiifumnr8u0O5qfaw</uri>
					</author>
		<title type="html"><![CDATA[D&amp;D rules lawyering: cover and stealth]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ydal/~3/E4kKxXS2OAk/" />
		<id>http://ydal.de/?p=424</id>
		<updated>2010-04-15T20:50:20Z</updated>
		<published>2010-03-19T21:24:00Z</published>
		<category scheme="http://ydal.de" term="Articles" /><category scheme="http://ydal.de" term="D&amp;D" /><category scheme="http://ydal.de" term="Dungeons and Dragons" /><category scheme="http://ydal.de" term="munchkin" /><category scheme="http://ydal.de" term="rules" /><category scheme="http://ydal.de" term="rules lawyer" />		<summary type="html"><![CDATA[On why rogues can't really hide behind other players. [...]]]></summary>
		<content type="html" xml:base="http://ydal.de/dndrules-cover-and-stealth/">&lt;p&gt;I was recently reading up on the stealth and cover mechanics, and even though I was fairly certain about what is and what is not possible, I found out that one edge case isn’t particularly well-documented.&lt;/p&gt;
&lt;p&gt;The rules, to be exact the Stealth rules correction from &lt;cite&gt;Player’s Handbook 2&lt;/cite&gt;, state:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
&lt;strong&gt;Becoming Hidden&lt;/strong&gt;: You can make a Stealth check against an enemy only if you have superior cover or total concealment against the enemy or if you’re outside the enemy’s line of sight. Outside combat, the DM can allow you to make a Stealth check against a distracted enemy, even if you don’t have superior cover or total concealment and aren’t outside the enemy’s line of sight. The distracted enemy might be focused on something in a different direction, allowing you to sneak up.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;So, what it especially says is that “superior cover” works as a basis to get hidden behind. According to the &lt;cite&gt;Dungeon Master’s Guide&lt;/cite&gt; on determining cover for ranged attacks:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
&lt;strong&gt;Choose a Corner&lt;/strong&gt;: The attacker chooses one corner of a square he occupies, and draws imaginary lines from that corner to every corner of any one square the defender occupies. If none of those lines are blocked by a solid object or an enemy creature, the attacker has a clear shot. The defender doesn’t have cover. (A line that runs parallel right along a wall isn’t blocked.)&lt;br /&gt;
&lt;strong&gt;Superior Cover&lt;/strong&gt;: The defender has superior cover if no matter which corner in your space you choose and no matter which square of the target’s space you choose, three or four lines are blocked. If four lines are blocked from every corner, you can’t target the defender.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;So, in theory, if you’d have a situation where you’d have superior cover from an enemy, e.g.&lt;br /&gt;
&lt;img src="/files/cover.png" alt="Illustration with a player behind two allies, and lines of sight to an enemy." /&gt;&lt;br /&gt;
you’d be able to stealth yourself and gain combat advantage.&lt;/p&gt;
&lt;p&gt;The only thing that really denies this possibility are, again, the Stealth updates from &lt;cite&gt;Player’s Handbook 2&lt;/cite&gt;, this time the “Remaining Hidden” section [emphasis mine]:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
Keep Out of Sight: If you no longer have any cover or concealment against an enemy, you don’t remain hidden from that enemy. You don’t need superior cover, total concealment, or to stay outside line of sight, but you do need some degree of cover or concealment to remain hidden. &lt;em&gt;You can’t use another creature as cover to remain hidden&lt;/em&gt;.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Many thanks to &lt;a href="http://twitter.com/Milambus"&gt;@Milambus&lt;/a&gt; for looking up that passage. [And making me feel stupid for not having found it myself, by the way.]&lt;/p&gt;
&lt;p&gt;And that’s the only problem. So, you could gain stealth moving behind enemies, but immediately lose stealth status again by being only behind a creature.&lt;/p&gt;
&lt;p&gt;In a sense, this is balanced, since your rogue strikers could then just continue to camp behind your own fighters and shoot sneak attacks at enemies from just behind their buddies (since they don’t block for the player), which would make combat encounters quick enough, but also a bit boring.&lt;/p&gt;
&lt;p&gt;Then again, as my player rogue pointed out, when there’s two huge dragonborn warriors pounding away at an enemy, how are they not supposed to be able to hide behind them? They aren’t 5′ wide, surely, but certainly bigger than a half-elf in every other dimension.&lt;/p&gt;
&lt;p&gt;I just think that with a further update (yuck), we might be able to get a bit of clarification on the fact how allies grant cover, but &lt;em&gt;cannot&lt;/em&gt; grant superior cover.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/ydal/~4/E4kKxXS2OAk" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ydal.de/dndrules-cover-and-stealth/#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://ydal.de/dndrules-cover-and-stealth/feed/atom/" thr:count="3" />
		<thr:total>3</thr:total>
	<feedburner:origLink>http://ydal.de/dndrules-cover-and-stealth/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>towo</name>
						<uri>https://www.google.com/accounts/o8/id?id=AItOawlrXDqSX6HEWX5nQmwiifumnr8u0O5qfaw</uri>
					</author>
		<title type="html"><![CDATA[D&amp;D Characters: Shamorn Fallenheart, Tiefling Bard]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ydal/~3/nbmxrOLJkWc/" />
		<id>http://ydal.de/?p=408</id>
		<updated>2010-04-15T20:50:56Z</updated>
		<published>2010-03-18T13:27:07Z</published>
		<category scheme="http://ydal.de" term="Publications" /><category scheme="http://ydal.de" term="character" /><category scheme="http://ydal.de" term="D&amp;D" /><category scheme="http://ydal.de" term="DND" /><category scheme="http://ydal.de" term="Dungeons and Dragons" />		<summary type="html"><![CDATA[D&#038;D4e character description Shamorn Fallenheart, tiefli [...]]]></summary>
		<content type="html" xml:base="http://ydal.de/dnd-char-shamornfallenheart/">&lt;p&gt;As a bit of a side occupation, I like to engage in some character design for role-playing games, as it just comes as a natural extension of being a hobby-ish writer person.&lt;/p&gt;
&lt;p&gt;Thus, I present: Shamorn Fallenheart, a tiefling bard from High Imaskar.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Birth — and over misgivings&lt;/h2&gt;
&lt;p&gt;Shamorn was born in Gheldaneth, the fading Mulanian metropolis of High Imaskar, and his parents believed in the prophecies stating Shamorn to bring forth better times for the tiefling folk of the Gheldaneth slums. Being raised in a community of hired hands to accompany adventurers on dangerous treasure hunts through the depths of the sunken city, hopes were laid on him, and him alone, to liberate them from this life of unofficial slavery.&lt;/p&gt;
&lt;h2&gt;Early life&lt;/h2&gt;
&lt;p&gt;Our young tiefling was always a bit pampered. The male role models of the community were often too busy getting killed on a foolish quest, as was Shamorn’s own father — shortly before his fourth birthday. As it were, there was none of the usual goading and testing a tiefling endures as part of growing up. The consequences of this, as well as the pampering he received by his mother and other “faithfuls”, would be dire indeed.&lt;/p&gt;
&lt;p&gt;Thus Shamorn grew to be a young adult, helping out everywhere in the community, without ever taking up a real job. He had many on and off teachers, versing him in skills as @skills and the heritage of the tiefling race, training him in the use of weapons and telling stories of heroic deeds throughout time.&lt;/p&gt;
&lt;p&gt;Constantly surrounded by an appreciation for life, for heroism, the history and culture of his people and a will to bring good to them, it came as a great surprise to many that Shamorn Fallenheart, Prophesied Saviour of the Gheldaneth Tieflings, came to start training to be…&lt;/p&gt;
&lt;p&gt;… &lt;em&gt;a bard&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;There was a wandering Elven Bard in Gheldaneth at the time, and Shamorn choose to apprentice himself to him, believing that becoming a bard, a herald of their people, would be worth much more than simply slaughtering any would-be oppressors or being a leader to guide the people to their Promised Land.&lt;/p&gt;
&lt;p&gt;As was to be expected, his decision did not sit well with some, if not most, of his elders. His mother came just short of disinheriting him, and he was forever branded as a wimp by most others. Still, there were some people who still believed in him, and he managed to stay in the community, even though everyone tried to forget about any kind of prophesy laid upon him.&lt;/p&gt;
&lt;h2&gt;The turning point&lt;/h2&gt;
&lt;p&gt;His apprenticeship was going well, all things considered. But his teacher, unbeknowest to him, was a bit of a braggart and ignorant, that is to say: not a very good bard. Still, Shamorn managed to master his natural graps of the Arcane under his tutorship, even though the social values might have been slightly distorted.&lt;/p&gt;
&lt;p&gt;Sadly, this distortion and the infusion of heroic tales led to an unfortunate incident. A rough band of treasure hunters, with a fierce reputation for their harsh effectiveness and rumours of a brutal and unrelenting manner towards opposition, sought out their enclave to hire some of their men for help. So, after a few minutes of shouting, waving of weapons and dragging people out of their hovels, Shamorn thought it was time to act.&lt;/p&gt;
&lt;p&gt;Bravely stepping forward, he confronted the leader of the scavengers, demanding of him to cease these despicable acts and appealing to his good sense, as a man, to respect his people’s wishes.&lt;/p&gt;
&lt;p&gt;The screams as the leader’s minions started slaughtering the women and children are still stuck in Shamorn’s head. He still only has vague memories of that moment, but there is one thing he is quite confident of:&lt;/p&gt;
&lt;p&gt;As his mother’s lifeless body was thrown in front of him, crumpled up in a heap, he snapped. Shamorn went into a rage, slamming into the minions and fighting them fiercely. It seemed the demon in him had taken control, for he was full of laughter at the slaughter he was causing, taunting his enemies as he smashed their faces in with his $weapon or embedded his daggers into their hearts, even just ripping into them with his claws and biting as he went along.&lt;/p&gt;
&lt;p&gt;It did not take long for him to cut through the minions, emerging bathed in blood, eldritch powers abound and flames crackling around his body. His Elven master bard was astonished at the display, and recognized the potential of a warlock in him should he have even been trained thusly. As it was, the teacher preferred to cower in fear and observe what happened next.&lt;/p&gt;
&lt;p&gt;Shamorn confronted the leader of the scavengers who was just standing there, shocked to his core.&lt;/p&gt;
&lt;p&gt;“This is what happens when you try to compel my folk, human!” the bard stated in an almost neutral voice, only a hint of a burning darkfire noticable in the voice. And with that, he slew the leader of the group that brought death to his kin.&lt;/p&gt;
&lt;p&gt;And as if by miracle, Shamorn immediately calmed down to his usual, naive self. The only hint at his monstrosity was the fact that he surveyed the slaughter he had caused without fear, shame or disgust. Looking around him, he found few people left alive. Some were cowering inside their hovels, either hiding their faces or staring out at him with fear. Others seem to have run a way, and it was eerily silent.&lt;/p&gt;
&lt;p&gt;Shamorn cleared his throat. “My master, I will be leaving now. Do you wish to accompany me?”&lt;/p&gt;
&lt;p&gt;His master, still shaking slightly, replied “No, my apprentice. I do not think that you need me any further. Consider your training complete.”&lt;/p&gt;
&lt;p&gt;And with these short words, the recently orphaned Shamorn Fallenheart set out into the Realms, venturing forth to herald his people — and to leave this blighted home which has been cursed by his deeds.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;The character statistics will follow as soon as I have access to the relevant documents again. I might also write a short story or two detailing the background or later adventures.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/ydal/~4/nbmxrOLJkWc" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ydal.de/dnd-char-shamornfallenheart/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ydal.de/dnd-char-shamornfallenheart/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://ydal.de/dnd-char-shamornfallenheart/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>towo</name>
						<uri>https://www.google.com/accounts/o8/id?id=AItOawlrXDqSX6HEWX5nQmwiifumnr8u0O5qfaw</uri>
					</author>
		<title type="html"><![CDATA[pisg: patch to irssi parser for euIRC ‘admin’ user mode]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ydal/~3/rSK0JNo9amA/" />
		<id>http://ydal.de/?p=410</id>
		<updated>2010-04-20T10:16:30Z</updated>
		<published>2010-03-16T01:41:33Z</published>
		<category scheme="http://ydal.de" term="Code" /><category scheme="http://ydal.de" term="irc" /><category scheme="http://ydal.de" term="log" /><category scheme="http://ydal.de" term="parser" /><category scheme="http://ydal.de" term="Perl" /><category scheme="http://ydal.de" term="pisg" />		<summary type="html"><![CDATA[Instructions on patching support for the euIRC "!" user [...]]]></summary>
		<content type="html" xml:base="http://ydal.de/pisg-irssi-euirc-admin-usermode/">&lt;p&gt;As pisg is ill-equipped to handle support for ‘admin’ users in the standard configuration, I went on a quick code hunt to find the bit of code responsible for stripping nick modes from a log line. A bit counter-intuitively, this function is called &lt;code&gt;normalline&lt;/code&gt;, and not something like &lt;code&gt;normalize&lt;/code&gt; or &lt;code&gt;strip_mode&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Anyhow, here’s a small patch to fix the problem for the Irssi parser module:&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="diff" style="font-family:monospace;"&gt;--- modules/Pisg/Parser/Format/irssi.pm.old	&lt;span style=""&gt;2008&lt;/span&gt;-02-&lt;span style=""&gt;13&lt;/span&gt; &lt;span style=""&gt;21&lt;/span&gt;:&lt;span style=""&gt;40&lt;/span&gt;:&lt;span style=""&gt;25.000000000&lt;/span&gt; +0100
&lt;span style="color: #888822;"&gt;+++ modules/Pisg/Parser/Format/irssi.pm	&lt;span style=""&gt;2010&lt;/span&gt;-03-&lt;span style=""&gt;16&lt;/span&gt; 02:&lt;span style=""&gt;29&lt;/span&gt;:&lt;span style=""&gt;42.000000000&lt;/span&gt; +0100&lt;/span&gt;
&lt;span style="color: #440088;"&gt;@@ -&lt;span style=""&gt;10&lt;/span&gt;,&lt;span style=""&gt;7&lt;/span&gt; +&lt;span style=""&gt;10&lt;/span&gt;,&lt;span style=""&gt;7&lt;/span&gt; @@&lt;/span&gt;
     my &lt;span style=""&gt;&amp;#40;&lt;/span&gt;$type, %args&lt;span style=""&gt;&amp;#41;&lt;/span&gt; = @_;
     my $self = &lt;span style=""&gt;&amp;#123;&lt;/span&gt;
         cfg =&amp;gt; $args&lt;span style=""&gt;&amp;#123;&lt;/span&gt;cfg&lt;span style=""&gt;&amp;#125;&lt;/span&gt;,
&lt;span style="color: #991111;"&gt;-        normalline =&amp;gt; '^&lt;span style=""&gt;&amp;#40;&lt;/span&gt;\d+&lt;span style=""&gt;&amp;#41;&lt;/span&gt;:\d+&lt;span style=""&gt;&amp;#91;&lt;/span&gt;^&amp;lt;*^!&lt;span style=""&gt;&amp;#93;&lt;/span&gt;+&amp;lt;&lt;span style=""&gt;&amp;#91;&lt;/span&gt;@%+~&amp;amp; &lt;span style=""&gt;&amp;#93;&lt;/span&gt;?&lt;span style=""&gt;&amp;#40;&lt;/span&gt;&lt;span style=""&gt;&amp;#91;&lt;/span&gt;^&amp;gt;&lt;span style=""&gt;&amp;#93;&lt;/span&gt;+&lt;span style=""&gt;&amp;#41;&lt;/span&gt;&amp;gt; &lt;span style=""&gt;&amp;#40;&lt;/span&gt;.*&lt;span style=""&gt;&amp;#41;&lt;/span&gt;',&lt;/span&gt;
&lt;span style="color: #00b000;"&gt;+        normalline =&amp;gt; '^&lt;span style=""&gt;&amp;#40;&lt;/span&gt;\d+&lt;span style=""&gt;&amp;#41;&lt;/span&gt;:\d+&lt;span style=""&gt;&amp;#91;&lt;/span&gt;^&amp;lt;*^!&lt;span style=""&gt;&amp;#93;&lt;/span&gt;+&amp;lt;&lt;span style=""&gt;&amp;#91;&lt;/span&gt;@%+~&amp;amp;! &lt;span style=""&gt;&amp;#93;&lt;/span&gt;?&lt;span style=""&gt;&amp;#40;&lt;/span&gt;&lt;span style=""&gt;&amp;#91;&lt;/span&gt;^&amp;gt;&lt;span style=""&gt;&amp;#93;&lt;/span&gt;+&lt;span style=""&gt;&amp;#41;&lt;/span&gt;&amp;gt; &lt;span style=""&gt;&amp;#40;&lt;/span&gt;.*&lt;span style=""&gt;&amp;#41;&lt;/span&gt;',&lt;/span&gt;
         actionline =&amp;gt; '^&lt;span style=""&gt;&amp;#40;&lt;/span&gt;\d+&lt;span style=""&gt;&amp;#41;&lt;/span&gt;:\d+&lt;span style=""&gt;&amp;#91;&lt;/span&gt;^ &lt;span style=""&gt;&amp;#93;&lt;/span&gt;+ +\* &lt;span style=""&gt;&amp;#40;&lt;/span&gt;\S+&lt;span style=""&gt;&amp;#41;&lt;/span&gt; &lt;span style=""&gt;&amp;#40;&lt;/span&gt;.*&lt;span style=""&gt;&amp;#41;&lt;/span&gt;',
         thirdline  =&amp;gt; '^&lt;span style=""&gt;&amp;#40;&lt;/span&gt;\d+&lt;span style=""&gt;&amp;#41;&lt;/span&gt;:&lt;span style=""&gt;&amp;#40;&lt;/span&gt;\d+&lt;span style=""&gt;&amp;#41;&lt;/span&gt;&lt;span style=""&gt;&amp;#91;&lt;/span&gt;^-&lt;span style=""&gt;&amp;#93;&lt;/span&gt;+-\!- &lt;span style=""&gt;&amp;#40;&lt;/span&gt;\S+&lt;span style=""&gt;&amp;#41;&lt;/span&gt; &lt;span style=""&gt;&amp;#40;&lt;/span&gt;\S+&lt;span style=""&gt;&amp;#41;&lt;/span&gt; &lt;span style=""&gt;&amp;#40;&lt;/span&gt;\S+&lt;span style=""&gt;&amp;#41;&lt;/span&gt; &lt;span style=""&gt;&amp;#40;&lt;/span&gt;\S+&lt;span style=""&gt;&amp;#41;&lt;/span&gt; &lt;span style=""&gt;&amp;#40;&lt;/span&gt;\S+&lt;span style=""&gt;&amp;#41;&lt;/span&gt;&lt;span style=""&gt;&amp;#40;&lt;/span&gt;.*&lt;span style=""&gt;&amp;#41;&lt;/span&gt;',
     &lt;span style=""&gt;&amp;#125;&lt;/span&gt;;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Or you could just &lt;a href="http://ydal.de/files/irssi-euirc-mode-patch.diff"&gt;download the diff&lt;/a&gt; directly.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/ydal/~4/rSK0JNo9amA" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ydal.de/pisg-irssi-euirc-admin-usermode/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ydal.de/pisg-irssi-euirc-admin-usermode/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://ydal.de/pisg-irssi-euirc-admin-usermode/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>towo</name>
						<uri>https://www.google.com/accounts/o8/id?id=AItOawlrXDqSX6HEWX5nQmwiifumnr8u0O5qfaw</uri>
					</author>
		<title type="html"><![CDATA[A new reason for leaving Ubuntu]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ydal/~3/tefgjVOMyG8/" />
		<id>http://ydal.de/?p=404</id>
		<updated>2010-02-26T02:23:45Z</updated>
		<published>2010-02-26T02:23:45Z</published>
		<category scheme="http://ydal.de" term="Articles" /><category scheme="http://ydal.de" term="Ubuntu" />		<summary type="html"><![CDATA[Why you should stop using Ubuntu. [...]]]></summary>
		<content type="html" xml:base="http://ydal.de/a-new-reason-for-leaving-ubuntu/">&lt;p&gt;So, if you’re wondering yourself: “Why, Ubuntu is in the process of making everything quite a bit more annoying and fucking things up”, yet still think “that might just be misjudged opinion”, then fret no more. There’s an easy way to now know that Canonical has officially gone bonkers.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://wiki.ubuntu.com/Specs/LucidUbuntuOneMusicStore"&gt;The Ubuntu One Music Store&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After installing an annoying App Market-like “Software center” by default, switching users over to a IM client that’s only remotely usable, trying to sell you a cloud-based storage solution and switching to &lt;em&gt;&lt;strong&gt;Yahoo&lt;/strong&gt;&lt;/em&gt; as the default search engine, you really have to wonder what the guys responsible are up to.&lt;/p&gt;
&lt;p&gt;So.&lt;/p&gt;
&lt;p&gt;In short, Canonical is on the verge of going Apple. Just bail boat while you still can.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/ydal/~4/tefgjVOMyG8" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ydal.de/a-new-reason-for-leaving-ubuntu/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://ydal.de/a-new-reason-for-leaving-ubuntu/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://ydal.de/a-new-reason-for-leaving-ubuntu/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>towo</name>
						<uri>https://www.google.com/accounts/o8/id?id=AItOawlrXDqSX6HEWX5nQmwiifumnr8u0O5qfaw</uri>
					</author>
		<title type="html"><![CDATA[D&amp;D item: Martyr’s Collar]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ydal/~3/aLNIzyEwlXs/" />
		<id>http://ydal.de/?p=313</id>
		<updated>2010-04-15T20:51:36Z</updated>
		<published>2010-02-01T21:27:21Z</published>
		<category scheme="http://ydal.de" term="Articles" /><category scheme="http://ydal.de" term="D&amp;D" /><category scheme="http://ydal.de" term="Dungeons and Dragons" /><category scheme="http://ydal.de" term="item" /><category scheme="http://ydal.de" term="magic item" />		<summary type="html"><![CDATA[A new magic item for D&#038;D, allowing a character to heroi [...]]]></summary>
		<content type="html" xml:base="http://ydal.de/dnd-item-martyrs-collar/">&lt;p&gt;Seeing how everyone else is currently creating interesting items, I thought that I should throw one of my ideas into the mix. And after a bit of tinkering with how it should work, I present:&lt;/p&gt;
&lt;div class="dnd-magic-item" style="width: 30em; background-color: #F0F0F0; color: black; margin: 1em; font-family: Helvetica"&gt;
&lt;h1 style="font-size: 1.2em; padding: 0 .25em; margin: 0; background-color: #d9a00c; color: white "&gt;Martyr’s Collar &lt;span class="item-level" style="float: right"&gt;Level 5&lt;/span&gt;&lt;/h1&gt;
&lt;div class="flavour" style="font-style: italic !important; margin: 0; padding: 0;"&gt;
&lt;p style="padding: 0 .6em; margin: 0"&gt;Resting tight against the throat, the wearer is always reminded of the price of sacrifice.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="statistics" style="margin: -1 em 0 0 0; padding: 0 .25em;"&gt;
&lt;p class="single-price" style="float: right; margin: 0; padding 0 .25em"&gt;Lv 5   1.000 gp&lt;/p&gt;
&lt;dl style="clear: both; padding: 0 .25em"&gt;
&lt;dt style="font-weight: bold; float: left; padding-right: .5em"&gt;Item slot:&lt;/dt&gt;
&lt;dd style="margin: 0;"&gt;Neck&lt;/dd&gt;
&lt;dt style="font-weight: bold; float: left; padding-right: .5em"&gt;Property:&lt;/dt&gt;
&lt;dd style="margin: 0;"&gt;This item can mean instant death for the character. To wield it, the character must succeed at a hard willpower check. After three failures, the character needs to take an extended rest before trying again.&lt;/dd&gt;
&lt;/dl&gt;
&lt;/div&gt;
&lt;div class="powers"&gt;
&lt;dl&gt;
&lt;dt style="font-weight: bold; float: left; padding: 0 .5em 0 .5em; background-color: #deddc7;"&gt;Power (At-Will ♦ Necrotic):&lt;/dt&gt;
&lt;dd style="margin: -1em 0 0 0; background-color: #deddc7; padding: 0 .5em;"&gt;Standard action. A conscious and willing character may activate the collar while it is around their throat. The collar magically constricts, severing the user’s head from their body. The user’s life energy serves as a power source for the collar and sends every attuned ally in range (burst 10) to the point defined by the attuning process. &lt;br /&gt; Being able to survive the decapitation does not save the user, as all of their life energy is used up to power the collar’s magic. &lt;br /&gt;The allies do not need to be willing, conscious, or even alive. If, for whatever reason, the destination is not reachable, the collar will not activate. After the teleportation, the collar expands to its normal proportions and loses any attunement.&lt;/dd&gt;
&lt;dt style="font-weight: bold; float: left; padding: 0 .5em 0 .5em; background-color: #F0F0F0;"&gt;Power (Daily):&lt;/dt&gt;
&lt;dd style="margin: 0; background-color: #F0F0F0; padding: 0 .5em;"&gt;Standard action. Every willing ally in a burst 5 are attuned to the collar, and the item itself is attuned to the location. When the at-will power is used, all allies attuned and in range are transported back to the current location. The collar does not need to be worn to be attuned; any character touching the item can initiate the process. When passing between owners, the item does not lose connection to any attuned user or the attuned location.&lt;/dd&gt;
&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Nobody really knows how these devices ever came to be, but they seem to have been used by devout and loyal warriors throughout time to save comrades from certain death by using their own life to shield them. The ultimate heroic sacrifice, most souls sacrificing their bodies this way ascend to the Astral Sea.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/ydal/~4/aLNIzyEwlXs" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ydal.de/dnd-item-martyrs-collar/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://ydal.de/dnd-item-martyrs-collar/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://ydal.de/dnd-item-martyrs-collar/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>towo</name>
						<uri>https://www.google.com/accounts/o8/id?id=AItOawlrXDqSX6HEWX5nQmwiifumnr8u0O5qfaw</uri>
					</author>
		<title type="html"><![CDATA[Trusting self-signed certificates with Google Chrome on Linux]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ydal/~3/JS3-oanvVFY/" />
		<id>http://ydal.de/?p=301</id>
		<updated>2010-04-18T21:43:54Z</updated>
		<published>2010-01-25T19:09:54Z</published>
		<category scheme="http://ydal.de" term="Articles" /><category scheme="http://ydal.de" term="certificates" /><category scheme="http://ydal.de" term="Google Chrome" /><category scheme="http://ydal.de" term="security" /><category scheme="http://ydal.de" term="self-signed certificate" /><category scheme="http://ydal.de" term="SSL" />		<summary type="html"><![CDATA[How to trust a self-signed certificate in Google Chrome [...]]]></summary>
		<content type="html" xml:base="http://ydal.de/trusting-self-signed-certificates-with-google-chrome-on-linux/">&lt;p&gt;&lt;em&gt;Update: added the “C” flag to SSL attributes which I accidentally forgot to include.&lt;br /&gt;Also changed $HOST to $host, as $HOST is the shell parameter for the current hostname…&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If you’re not really sure about how you can stop Chrome from permanently reminding you that the server you’re connecting to is a bad boy (read: using a self-signed certificate), you’ll probably end up looking at &lt;a href="http://wiki.cacert.org/BrowserClients"&gt;CACert’s Browser Client page&lt;/a&gt; by way of Google. With a bit of reading documentation, you can probably find out how to import a self-signed certificate and mark it as trusted, but since you’re probably lazy, you’d rather just copy and paste a few instructions.&lt;/p&gt;
&lt;p&gt;First, I have to stress is that blindly trusting a certificate you download off the internet is a &lt;strong&gt;&lt;em&gt;Bad Idea&lt;/em&gt;&lt;/strong&gt;. But expressing a certain laissez-faire attitude: if you’re stupid enough to copy and paste blindly, you deserve it.&lt;/p&gt;
&lt;p&gt;Second, simple copy and paste instructions:&lt;/p&gt;
&lt;pre&gt;
openssl s_client -connect $host:443 -showcerts &gt; temporary_file
certutil -d sql:$HOME/.pki/nssdb -A -t CP,,C -n "$host" -i temporary_file
&lt;/pre&gt;
&lt;p&gt;Third, explanations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;s_client&lt;/strong&gt; just connects to the given hostname, 443 being, as you should know, the (default) HTTP SSL port.&lt;/li&gt;
&lt;li&gt;–showcerts shows all kinds of information about the certificate, including the certificate itself. You will probably have to hit ^C/^D to stop s_client.&lt;/li&gt;
&lt;li&gt;If you get multiple (and different) certificates, first one will be the server certificate, and second one the CA certificate.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;certutil&lt;/strong&gt; (package hint: &lt;em&gt;libnss3-tools&lt;/em&gt; can be used to manage your local «Network Security Services» SQLite database.&lt;/li&gt;
&lt;li&gt;The specified argument for certutil are:
&lt;ol&gt;
&lt;li&gt;The database to use (in this case, the user-specific NSS database).&lt;/li&gt;
&lt;li&gt;The flag to add something to the database (-A).&lt;/li&gt;
&lt;li&gt;The “trust types” for the certificate, in “SSL, S/MIME, CA” notification: “P” for a trusted peer, and “C” for a certificate authority that may issue server certificates.&lt;/li&gt;
&lt;li&gt;A shortname to identify the certificate in the database. The hostname works well and is fairly obvious.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://feeds.feedburner.com/~r/ydal/~4/JS3-oanvVFY" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ydal.de/trusting-self-signed-certificates-with-google-chrome-on-linux/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ydal.de/trusting-self-signed-certificates-with-google-chrome-on-linux/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://ydal.de/trusting-self-signed-certificates-with-google-chrome-on-linux/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>towo</name>
						<uri>https://www.google.com/accounts/o8/id?id=AItOawlrXDqSX6HEWX5nQmwiifumnr8u0O5qfaw</uri>
					</author>
		<title type="html"><![CDATA[A records on top level domains]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ydal/~3/7ntSyGlO12A/" />
		<id>http://ydal.de/?p=287</id>
		<updated>2010-01-08T15:30:37Z</updated>
		<published>2010-01-08T15:30:37Z</published>
		<category scheme="http://ydal.de" term="Articles" />		<summary type="html"><![CDATA[After I stumbled upon the wonderful URL shortener http: [...]]]></summary>
		<content type="html" xml:base="http://ydal.de/a-records-on-top-level-domains/">&lt;p&gt;After I stumbled upon the wonderful URL shortener http://to/ today and immediately began posting it on IRC, I received a comment that someone didn’t even know that is was possible to do so. I, of course, could only comment “of course it’s possible”. But in the same train of thought, I just had to have a look at &lt;em&gt;who else&lt;/em&gt; has a valid A record on their top level domain. So I fetched &lt;a href="http://data.iana.org/TLD/tlds-alpha-by-domain.txt"&gt;the IANA TLD list&lt;/a&gt; and, after being baffled by the punycode TLDs, threw some sh at the problem:&lt;br /&gt;
&lt;code&gt;(for domain in $(grep -v '^#' tlds-alpha-by-domain.txt); do host -t A "${domain}."; done) | grep -v 'has no A record'&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;For the sake of enjoyability, I thus offer the results in table form, along with what kind of site is running on port 80. Data timestamp is 2010–01-08T16:05:00+0100, location for routing is DTAG-DIAL26 / AS3320.&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;TLD&lt;/th&gt;
&lt;th&gt;IP&lt;/th&gt;
&lt;th&gt;content (port 80)&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AC&lt;/td&gt;
&lt;td&gt;193.223.78.210&lt;/td&gt;
&lt;td&gt;“Always connected” (NIC.AC)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI&lt;/td&gt;
&lt;td&gt;209.59.119.34&lt;/td&gt;
&lt;td&gt;“Offshore Information Services”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BI&lt;/td&gt;
&lt;td&gt;196.2.8.205&lt;/td&gt;
&lt;td&gt;“It works!”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CM&lt;/td&gt;
&lt;td&gt;195.24.205.60&lt;/td&gt;
&lt;td&gt;&lt;kbd&gt;cm [195.24.205.60] 80 (www) : Connection refused&lt;/kbd&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DK&lt;/td&gt;
&lt;td&gt;193.163.102.23&lt;/td&gt;
&lt;td&gt;“DK Hostmaster” (NIC.DK)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GG&lt;/td&gt;
&lt;td&gt;87.117.196.80&lt;/td&gt;
&lt;td&gt;Channel Isles Domain Registration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HK&lt;/td&gt;
&lt;td&gt;203.119.2.28&lt;/td&gt;
&lt;td&gt;&lt;kbd&gt;hk [203.119.2.28] 80 (www) : No route to host&lt;/kbd&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IO&lt;/td&gt;
&lt;td&gt;193.223.78.212&lt;/td&gt;
&lt;td&gt;NIC.IO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JE&lt;/td&gt;
&lt;td&gt;87.117.196.80&lt;/td&gt;
&lt;td&gt;Channel Isles Domain Registration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PH&lt;/td&gt;
&lt;td&gt;203.119.4.7&lt;/td&gt;
&lt;td&gt;HTTP 500.100 via broken Microsoft IIS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PN&lt;/td&gt;
&lt;td&gt;80.68.93.100&lt;/td&gt;
&lt;td&gt;Apache default home page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PW&lt;/td&gt;
&lt;td&gt;203.199.114.33&lt;/td&gt;
&lt;td&gt;&lt;kbd&gt;pw [203.199.114.33] 80 (www) : No route to host&lt;/kbd&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SH&lt;/td&gt;
&lt;td&gt;64.251.31.234&lt;/td&gt;
&lt;td&gt;&lt;kbd&gt;sh [64.251.31.234] 80 (www) : No route to host&lt;/kbd&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TK&lt;/td&gt;
&lt;td&gt;217.119.57.22&lt;/td&gt;
&lt;td&gt;“TK your long URL”, free .tk domain name registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TM&lt;/td&gt;
&lt;td&gt;193.223.78.213&lt;/td&gt;
&lt;td&gt;NIC.TM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TO&lt;/td&gt;
&lt;td&gt;216.74.32.107&lt;/td&gt;
&lt;td&gt;TO./ URL shortener&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UZ&lt;/td&gt;
&lt;td&gt;91.212.89.8&lt;/td&gt;
&lt;td&gt;some WAP page I can’d decipher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WS&lt;/td&gt;
&lt;td&gt;63.101.245.10&lt;/td&gt;
&lt;td&gt;&lt;kbd&gt;ws [63.101.245.10] 80 (www) : Connection timed out&lt;/kbd&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;So, in short, 5 of 18 (27%) are downright broken, one is being autistic, and a further 2 (11%) are not configured to do anything meaningful, leading to a total of 8 — or 44% — of TLD A records being useless. Bonus: &lt;em&gt;none&lt;/em&gt; of the sites have AAAA records and, thus, no IPv6 availability.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/ydal/~4/7ntSyGlO12A" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ydal.de/a-records-on-top-level-domains/#comments" thr:count="5" />
		<link rel="replies" type="application/atom+xml" href="http://ydal.de/a-records-on-top-level-domains/feed/atom/" thr:count="5" />
		<thr:total>5</thr:total>
	<feedburner:origLink>http://ydal.de/a-records-on-top-level-domains/</feedburner:origLink></entry>
	</feed>
