<?xml version='1.0' encoding='utf-8' ?>

<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>I Am Completely Serious</title>
  <link>https://snarp.dreamwidth.org/</link>
  <description>I Am Completely Serious - Dreamwidth Studios</description>
  <lastBuildDate>Tue, 24 Nov 2015 22:51:30 GMT</lastBuildDate>
  <generator>LiveJournal / Dreamwidth Studios</generator>
  <lj:journal>snarp</lj:journal>
  <lj:journaltype>personal</lj:journaltype>
  <image>
    <url>https://v2.dreamwidth.org/26613/51721</url>
    <title>I Am Completely Serious</title>
    <link>https://snarp.dreamwidth.org/</link>
    <width>100</width>
    <height>100</height>
  </image>

<item>
  <guid isPermaLink='true'>https://snarp.dreamwidth.org/816398.html</guid>
  <pubDate>Tue, 24 Nov 2015 22:51:30 GMT</pubDate>
  <title>ERB is clumsy unsafe horseshit, everyone stop using it immediately, thanks.</title>
  <link>https://snarp.dreamwidth.org/816398.html</link>
  <description>Does anyone know of any good reason I shouldn&apos;t use Mustache, or have strong feelings either way about Liquid?&lt;br /&gt;&lt;br /&gt;ERB, HAML, and SLIM are not acceptable for my purposes - basically every page needs to be safely and relatively-unchallengingly end-user-customizable.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=snarp&amp;ditemid=816398&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://snarp.dreamwidth.org/816398.html</comments>
  <category>tambbbbbb.............slime man</category>
  <category>coding</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://snarp.dreamwidth.org/812926.html</guid>
  <pubDate>Sat, 07 Nov 2015 01:46:20 GMT</pubDate>
  <title>My mistakes will be intersectional or they will be bullshit</title>
  <link>https://snarp.dreamwidth.org/812926.html</link>
  <description>Is there any kind of across-the-board best-practices guide for accessibility in web development?&lt;p&gt;(I&apos;m thinking about tags and whether screen readers try and ignore them and whether that harms the Authentic Tumblr Experience for non-sighted people - because some of the tags are tags, but some are instead marginalia. Or, in tanb...... slime man terminology, &quot;marg targs.&quot;&lt;/p&gt;&lt;p&gt;I&apos;m aware that that particular thing&apos;s not the first priority! It&apos;s just, for optimization purposes, I was thinking I might try to ruin the subversive thrill that comes from misusing tags by classifying some tags as marg targs and thus not trying to index by them, which led to thoughts about whether the marg targs should/could be marked up differently somehow so as to be caught by screen-readers.)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=snarp&amp;ditemid=812926&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://snarp.dreamwidth.org/812926.html</comments>
  <category>tanb</category>
  <category>coding</category>
  <lj:security>public</lj:security>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://snarp.dreamwidth.org/775402.html</guid>
  <pubDate>Tue, 08 Sep 2015 04:13:02 GMT</pubDate>
  <title>Hey! Dreamwidth!</title>
  <link>https://snarp.dreamwidth.org/775402.html</link>
  <description>This is your new design. &lt;i&gt;I&apos;m in charge.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://36.media.tumblr.com/811e2150f8e82ef2691a1eb6106996e5/tumblr_nucbkhhd501s0hvplo1_1280.png&quot;&gt;&lt;img src=&quot;https://36.media.tumblr.com/811e2150f8e82ef2691a1eb6106996e5/tumblr_nucbkhhd501s0hvplo1_1280.png&quot; style=&quot;max-width:100%;&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Honestly, the page you first see upon logging in shouldn&apos;t be the news posts, though; it should be the Reading page.)&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=snarp&amp;ditemid=775402&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://snarp.dreamwidth.org/775402.html</comments>
  <category>dreamwidth</category>
  <category>coding</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://snarp.dreamwidth.org/772828.html</guid>
  <pubDate>Wed, 02 Sep 2015 21:23:34 GMT</pubDate>
  <title>I will be naming this software &quot;tambbbbbb.............slime man&quot;.</title>
  <link>https://snarp.dreamwidth.org/772828.html</link>
  <description>I stayed up most of last night working on writing a Tumblr client from scratch in Ruby.&lt;br /&gt;&lt;br /&gt;I know I&apos;m just duplicating other people&apos;s work here! But I had the energy/focus for coding for once, and decided that re-learning Ruby via the process of making myself a personal Tumblr client was an appropriate expression of my frustration with life. Life and Tumblr.&lt;br /&gt;&lt;br /&gt;Dreamwidth, please fix up and document your API, so I can make this thing work for crossposting eventually.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=snarp&amp;ditemid=772828&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://snarp.dreamwidth.org/772828.html</comments>
  <category>tumblr</category>
  <category>tambbbbbb.............slime man</category>
  <category>coding</category>
  <category>dreamwidth</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://snarp.dreamwidth.org/682717.html</guid>
  <pubDate>Sun, 08 Mar 2015 20:53:23 GMT</pubDate>
  <title>Very specific nerd question.</title>
  <link>https://snarp.dreamwidth.org/682717.html</link>
  <description>Using Construct 2, is there any tidy or untidy way to load&lt;br /&gt;&lt;br /&gt;1) external tilemap files, like Tiled ones, and&lt;br /&gt;&lt;br /&gt;2) external tilesets and spritesheets&lt;br /&gt;&lt;br /&gt;into a project at runtime?&lt;br /&gt;&lt;br /&gt;Like, if you just wanted to set up the physics in Construct 2, and swap out some files called map.txt, tiles.png, and sprites.png from a folder.&lt;br /&gt;&lt;br /&gt;(Yes, I know that this is literally what Crafty/Impact/etc are for, but the project I have in mind is very tiny and stupid, and I don&apos;t have the energy for coding right now.)&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=snarp&amp;ditemid=682717&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://snarp.dreamwidth.org/682717.html</comments>
  <category>coding</category>
  <category>construct 2</category>
  <category>video games</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://snarp.dreamwidth.org/635531.html</guid>
  <pubDate>Mon, 29 Dec 2014 02:19:49 GMT</pubDate>
  <link>https://snarp.dreamwidth.org/2014/12/28/python-package-management-is-terrible-and-needs-to-stop.html</link>
  <description>Python package management is terrible and needs to stop.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=snarp&amp;ditemid=635531&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://snarp.dreamwidth.org/2014/12/28/python-package-management-is-terrible-and-needs-to-stop.html</comments>
  <category>coding</category>
  <category>computer</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://snarp.dreamwidth.org/436757.html</guid>
  <pubDate>Sat, 20 Oct 2012 17:50:17 GMT</pubDate>
  <title>Screw you, nonfunctional MeCab Python bindings.</title>
  <link>https://snarp.dreamwidth.org/436757.html</link>
  <description>You are stupid.&lt;br /&gt;&lt;br /&gt;So I wrote &lt;a href=&quot;http://www.sarahpin.com/wp-content/uploads/2011/08/MeCab3_2.txt&quot;&gt;a script&lt;/a&gt; that just uses popen to access the Windows command-line. Works for Python 3.2 on Windows 7 with the UTF-8 version of MeCab installed. Is very ugly.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=snarp&amp;ditemid=436757&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://snarp.dreamwidth.org/436757.html</comments>
  <category>japanese</category>
  <category>coding</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://snarp.dreamwidth.org/359654.html</guid>
  <pubDate>Tue, 21 Jun 2011 01:43:09 GMT</pubDate>
  <title>Dad says stuff to the TV.</title>
  <link>https://snarp.dreamwidth.org/359654.html</link>
  <description>*Dad is watching a college baseball game.*&lt;br /&gt;&lt;br /&gt;DAD: Do you know who this idiot is who&apos;s doing the color commentary?&lt;br /&gt;&lt;br /&gt;ME: No.&lt;br /&gt;&lt;br /&gt;DAD: No, Sarah, come on, do you recognize his voice?&lt;br /&gt;&lt;br /&gt;ME: No.&lt;br /&gt;&lt;br /&gt;DAD: No! Listen to him! Just listen! You know who this idiot is!&lt;br /&gt;&lt;br /&gt;*It&apos;s our previous president.*&lt;br /&gt;&lt;br /&gt;ME: Why is Bush doing the commentary?&lt;br /&gt;&lt;br /&gt;DAD: I don&apos;t know! I don&apos;t know why they - (*Bush says something.*) - &lt;i&gt;shut up!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;MOM: Well, he did once own a baseball team, dear.&lt;br /&gt;&lt;br /&gt;BUSH: This guy&apos;s a freshman.&lt;br /&gt;&lt;br /&gt;DAD: No, he&apos;s not! You&apos;re &lt;i&gt;wrong!&lt;/i&gt; You&apos;re always &lt;i&gt;wrong!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;*Bush says something about &quot;being prepared&quot; that I didn&apos;t hear, apparently.*&lt;br /&gt;&lt;br /&gt;DAD: Oh, yeah, you were real prepared for Katrina, weren&apos;t you, you butthead!&lt;br /&gt;&lt;br /&gt;-&lt;br /&gt;&lt;br /&gt;Also, &lt;a href=&quot;http://stackoverflow.com/questions/6365931/trying-to-get-libmecab-dll-mecab-to-work-with-c&quot;&gt;someone on stackoverflow has solved&lt;/a&gt; the &lt;a href=&quot;http://snarp.dreamwidth.org/358215.html&quot;&gt;MeCab/C# problem&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=snarp&amp;ditemid=359654&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://snarp.dreamwidth.org/359654.html</comments>
  <category>coding</category>
  <category>dad says stuff</category>
  <category>japanese</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://snarp.dreamwidth.org/358884.html</guid>
  <pubDate>Thu, 16 Jun 2011 02:15:54 GMT</pubDate>
  <title>4chan makes awesome new linguistic discovery.</title>
  <link>https://snarp.dreamwidth.org/358884.html</link>
  <description>&lt;a href=&quot;http://dis.4chan.org/read/prog/1295544154&quot;&gt;It is possible to write a bash shell script that is a joke in and of itself.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=snarp&amp;ditemid=358884&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://snarp.dreamwidth.org/358884.html</comments>
  <category>coding</category>
  <category>linking to stuff like one does</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://snarp.dreamwidth.org/358215.html</guid>
  <pubDate>Tue, 14 Jun 2011 21:29:28 GMT</pubDate>
  <title>SOLVED - The MeCab/C# problem, more coherently.</title>
  <link>https://snarp.dreamwidth.org/358215.html</link>
  <description>Before I wade into stackoverflow with this, any suggestions? I&apos;m trying to use the Japanese morphological analyzer &lt;a href=&quot;http://mecab.sourceforge.net/&quot;&gt;MeCab&lt;/a&gt; in a C# program (Visual Studio 2010 Express, Windows 7), and something&apos;s going wrong with the encoding.&lt;br /&gt;&lt;br /&gt;&lt;a name=&quot;cutid1&quot;&gt;&lt;/a&gt;If my input (pasted into a textbox) is this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;一方、広義の「ネコ」は、ネコ類（ネコ科動物）の一部、あるいはその全ての獣を指す包括的名称を指す。&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Then my output (in another textbox) looks like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
(	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
)	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
?????????????????????????	åè©ž,ã‚µå¤‰æŽ¥ç¶š,*,*,*,*,*
EOS
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I assume that that&apos;s text in some other encoding being mistaken for UTF-8-encoded text. Assuming that it&apos;s EUC-JP and using Encoding.Convert to turn it into UTF-8 doesn&apos;t change the output; assuming that it&apos;s Shift-JIS and doing the same gives different gibberish. Also, while it&apos;s definitely processing the text - that&apos;s how MeCab output is supposed to be formatted - it doesn&apos;t appear to be interpreting the input as UTF-8, either. If it were doing so, there wouldn&apos;t be all those identical lines in the output starting with one-character &quot;compounds,&quot; which it&apos;s clearly unable to identify.&lt;br /&gt;&lt;br /&gt;I get yet another different-looking set of gibberish when I run the sentence through MeCab&apos;s command line. But, again, it&apos;s just a row of single question marks and parentheses going down the left, so it&apos;s not just the problem that the Windows command line doesn&apos;t support fonts with Japanese characters; again, it&apos;s just not reading the input in as UTF-8. (I did install MeCab in UTF-8 mode.)&lt;br /&gt;&lt;br /&gt;The relevant parts of the code look like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
[DllImport(&quot;libmecab.dll&quot;, CallingConvention = CallingConvention.Cdecl)]
private extern static IntPtr mecab_new2(string arg);
[DllImport(&quot;libmecab.dll&quot;, CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.AnsiBStr)]
private extern static string mecab_sparse_tostr(IntPtr m, string str);
[DllImport(&quot;libmecab.dll&quot;, CallingConvention = CallingConvention.Cdecl)]
private extern static void mecab_destroy(IntPtr m);

private string meCabParse(string jpnText)
{
	IntPtr mecab = mecab_new2(&quot;&quot;);
	string parsedText = mecab_sparse_tostr(mecab, jpnText);
	
	mecab_destroy(mecab);
	return parsedText;
}
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This is how I&apos;ve been doing the conversion:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
// 65001 = UTF-8 codepage, 20932 = EUC-JP codepage
private string convertEncoding(string sourceString, int sourceCodepage, int targetCodepage)
{
	Encoding sourceEncoding = Encoding.GetEncoding(sourceCodepage); 
	Encoding targetEncoding = Encoding.GetEncoding(targetCodepage);

	// convert source string into byte array
	byte[] sourceBytes = sourceEncoding.GetBytes(sourceString);

	// convert those bytes into target encoding
	byte[] targetBytes = Encoding.Convert(sourceEncoding, targetEncoding, sourceBytes);

	// byte array to char array
	char[] targetChars = new char[targetEncoding.GetCharCount(targetBytes, 0, targetBytes.Length)];

	//char array to targt-encoded string
	targetEncoding.GetChars(targetBytes, 0, targetBytes.Length, targetChars, 0);
	string targetString = new string(targetChars);

	return targetString;
}

private string meCabParse(string jpnText)
{
	// convert the text from the string from UTF-8 to EUC-JP
	jpnText = convertEncoding(jpnText, 65001, 20932);

	IntPtr mecab = mecab_new2(&quot;&quot;);
	string parsedText = mecab_sparse_tostr(mecab, jpnText);

	// annnd convert back to UTF-8
	parsedText = convertEncoding(parsedText, 20932, 65001);

	mecab_destroy(mecab);
}
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Suggestions/taunts?&lt;br /&gt;&lt;br /&gt;-&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://stackoverflow.com/questions/6365931/trying-to-get-libmecab-dll-mecab-to-work-with-c&quot;&gt;Solved!&lt;/a&gt; Thank you, Cryovat and &lt;a href=&quot;http://blog.gebhardtcomputing.com/2007/11/marshal-utf8-strings-in-net.html&quot;&gt;Tim Gebhardt&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=snarp&amp;ditemid=358215&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://snarp.dreamwidth.org/358215.html</comments>
  <category>coding</category>
  <category>japanese</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://snarp.dreamwidth.org/357694.html</guid>
  <pubDate>Tue, 14 Jun 2011 03:44:57 GMT</pubDate>
  <title>Bah to morphological analysis.</title>
  <link>https://snarp.dreamwidth.org/357694.html</link>
  <description>DOES ANYONE KNOW HOW TO USE &lt;a href=&quot;http://mecab.sourceforge.net/&quot;&gt;LIBMECAB.DLL&lt;/a&gt; WITH C# SO THE ENCODING WORKS REGARDLESS OF THE LOCALIZATION OF THE WINDOWS INSTALLATION&lt;br /&gt;&lt;br /&gt;SOMEONE MUST&lt;br /&gt;&lt;br /&gt;BUT I THINK THAT THAT PERSON DOES NOT USE THE INTERNET&lt;br /&gt;&lt;br /&gt;agh.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=snarp&amp;ditemid=357694&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://snarp.dreamwidth.org/357694.html</comments>
  <category>japanese</category>
  <category>coding</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://snarp.dreamwidth.org/310654.html</guid>
  <pubDate>Tue, 07 Sep 2010 02:07:55 GMT</pubDate>
  <title>I had actually intended to get some coding done today.</title>
  <link>https://snarp.dreamwidth.org/310654.html</link>
  <description>GNU UNPLEASANT-PEOPLE-EXCEPTED LICENSE&lt;br /&gt;Snarp-Variant, Version 3.00, 3 September 2010&lt;br /&gt;&lt;br /&gt;Copyright (C) 2010 Snarp. &amp;lt;http://www.sarahpin.com/&amp;gt;&lt;br /&gt;&lt;br /&gt;This text is licensed under a Creative Commons Attribution Non-Commercial Share Alike License (cc by-nc-sa) Version 3.0. The terms of the license may be viewed at:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PREAMBLE&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The GNU General Public License is a free, copyleft license for software and other kinds of works. It can be read in its entirety at this address:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.gnu.org/licenses/gpl-3.0.txt&quot;&gt;http://www.gnu.org/licenses/gpl-3.0.txt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The GNU Unpleasant-People-Excepted License may be considered identical to the GNU General Public License Version 3, with the important distinction that the rights granted in the license apply only to people who are not unpleasant.&lt;br /&gt;&lt;br /&gt;The GNU General Public License was designed with the aim of giving programmers the ability to share and modify works freely, encouraging innovation and the exchange of ideas. For the pettier among us, this has always posed a problem. Software released under the GNU is available for use and modification not only to thinkers and innovators, but also to the sort of people to whom we might refuse loan a dollar, because we do not trust them not to offer it to a small child on the condition that she sticks a bug up her nose, or draw human genitals on it in red Sharpie before smirkingly handing it to a female cashier, or donate it to a candidate for public office who &quot;just think(s) it&apos;s too soon to rule out&quot; the forcible sterilization of diabetics.&lt;br /&gt;&lt;br /&gt;&lt;a name=&quot;cutid1&quot;&gt;&lt;/a&gt;It should be noted that this license does not actually place the bar particularly high. The GNU-UPE does not require active pleasantness, merely the absence of active unpleasantness. Under the GNU-UPE, people and organizations who are &quot;just okay&quot; are entitled to all of the rights and protections of the standard GNU license. Activities such as smiling at the cashier and giving $20 to UNICEF are, in terms of compliance with this license, optional (though appreciated).&lt;br /&gt;&lt;br /&gt;Webster&apos;s New Collegiate Dictionary (1961) defines &quot;unpleasant&quot; to mean &quot;Not amiable or agreeable; disagreeable; offensive.&quot; Obviously, these are subjective terms, and not useful in a legal sense. For this reason, this license defines unpleasantness by means of a list of objectively provable activities. These activities are listed in Section 2 of the Terms and Conditions. Methods by which a person who has behaved unpleasantly may make use of materials protected under the license may be found in Section 3.&lt;br /&gt;&lt;br /&gt;As a final note, as the author of this license, I recognize that the GNU-UPE will mainly be used by people of the variety who, like myself, are often termed by others &quot;jerks.&quot; And to quote Tolstoy, &quot;non-jerks are all alike, but every jerk is a jerk in her own way.&quot; For this reason, the text of this license is itself licensed under a Creative Commons Attribution-Non-Commercial-Share-Alike License (cc by-nc-sa), for the purpose of making it easy for other jerks to modify it to suit their personal needs. While I think that I have designed categories of unpleasantness that are fairly universal in nature, personal thresholds do differ. In terms of formatting, it is my advice that headers for modified versions of the license follow this format:&lt;br /&gt;&lt;br /&gt;GNU UNPLEASANT-PEOPLE-EXCEPTED LICENSE&lt;br /&gt;[YOUR NAME]-Variant, Version [#].[##], [DATE]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TERMS AND CONDITIONS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- Section 1 --&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Excepting in the situations described under section 2, &quot;Limitations,&quot; the terms of this license are identical to the terms of the GNU General Public License Version 3.0, which may be viewed in full at:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.gnu.org/licenses/gpl-3.0.txt&quot;&gt;http://www.gnu.org/licenses/gpl-3.0.txt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The situations described in section 2 may be &quot;expiated&quot; - viewed as having never happened - by the terms described in section 3.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- Section 2 --&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This license grants the rights and privileges referred to in (1) only to individuals who are not unpleasant. &quot;Unpleasant&quot; is herein defined as having knowingly engaged in any of the following activities.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a. Upon discovering the release of a piece of open-source software produced by an unpaid individual or individuals,&lt;br /&gt;	&lt;br /&gt;	&lt;ul&gt;&lt;li&gt;1. have complained that the software is not useful to them personally.&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;	&lt;li&gt;2. have complained that the software is not compatible with their operating system. An exception may be made only in situations in which the complaining party offers to both&lt;br /&gt;		&lt;br /&gt;		&lt;ul&gt;&lt;li&gt;1) purchase for the programmers a computer already-loaded with the operating system in question, and&lt;/li&gt;&lt;br /&gt;		&lt;br /&gt;		&lt;li&gt;2) pay them for their time in writing a compliant piece of software.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;		&lt;br /&gt;	&lt;li&gt;3. have proclaimed moral or intellectual judgment upon the programmer for failing to cater to their needs. (ie, &quot;only sh*th**ds use windows&quot;)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;&lt;li&gt;b. Upon discovering a blog or message board post, piece of artwork, or any other creative endeavor offered freely on the internet,&lt;br /&gt;	&lt;br /&gt;	&lt;ul&gt;&lt;li&gt;1. have complained that the work does not pertain to a subject which interests them personally.&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;	&lt;li&gt;2. have proclaimed moral or intellectual judgment upon the artist for failing to cater to their needs. (ie, &quot;ugh slash is for perverts&quot;)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;&lt;li&gt;c. Upon discovering a blog or message board post in which an individual mentions a personal tragedy, particularly as an explanation for the delay in the release of a freely-offered piece of software or creative work,&lt;br /&gt;	&lt;br /&gt;	&lt;ul&gt;&lt;li&gt;1. have commented to complain that the person in question is whiny or should &quot;suck it up,&quot; or words to similar effect.&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;	&lt;li&gt;2. have commented to explain that the tragedy was the individual in question&apos;s &quot;own fault,&quot; or words to similar effect.&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;	&lt;li&gt;3. have commented to complain that their problems are worse and yet you don&apos;t see them complaining.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;&lt;li&gt;d. Upon discovering a request to donate to some charity dedicated to aiding the materially disadvantaged on a message board or blog,&lt;br /&gt;	&lt;br /&gt;	&lt;ul&gt;&lt;li&gt;1. have commented to say that they feel the party the charity is designed to aid &quot;deserves&quot; misfortune.&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;	&lt;li&gt;2. have commented to say that charitable efforts, as a general category, are unnecessary, counterproductive or &quot;naive,&quot; or words to similar effect.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;&lt;li&gt;e. Upon discovering a blog or message-board post in which an individual describes an unexpected and alarming loss of online privacy or breach of trust in an online relationship have commented to explain that they deserve it for using the internet.&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;&lt;li&gt;f. Upon discovering a negative review of a piece of software or creative work they have themselves posted upon the internet have attacked the moral or intellectual character of the reviewer.&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;&lt;li&gt;g. Upon finding that a person has remixed or modified their own work, has publicly questioned the person&apos;s moral character on this basis, having previously done either of the following:&lt;br /&gt;	&lt;br /&gt;	&lt;ul&gt;&lt;li&gt;1. Made the work in question available under a GNU, CC, or similar license.&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;	&lt;li&gt;2. Remixed or modified the work of others without permission, or consumed other works remixed or modified without permission.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;&lt;li&gt;h. Have ever stated that a person who complained about an act of racism was &quot;reverse-racist,&quot; because non-racist people do not see color, and therefore are unable to recognize racism, in the same way that unicorns cannot acknowledge that which is impure. Relatedly,&lt;br /&gt;	&lt;br /&gt;	&lt;ul&gt;&lt;li&gt;1. Have ever argued online that anime characters are &quot;supposed to be white.&quot;&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;	&lt;li&gt;2. Upon discovering that Blaise Zabini (a character from &quot;Harry Potter&quot;) is black, have commented online complaining that now they cannot write fanfiction wherein he is cool.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;&lt;li&gt;i. Have ever explained online that &quot;most reports of rape are false,&quot; or suggested that false reports of rape are a more serious problem than actual rape. Relatedly,&lt;br /&gt;	&lt;br /&gt;	&lt;ul&gt;&lt;li&gt;1. Have ever made use of evolutionary psychology to justify rape, discriminatory hiring practices, or their RP character.&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;	&lt;li&gt;2. Have ever noticed an apparently female user in an MMO and jumped up and down next to her while firing off sound-effect macros.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;	&lt;br /&gt;&lt;li&gt;j. Have ever posted in a thread to say &quot;ur gay&quot; or words to similar effect, then flown away like Superman, their work complete.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;k. Have ever posted in a thread to say &quot;ur retarded&quot; or words to similar effect, then flown away like Superman, their work complete.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;l. Have ever made a Chuck Norris joke in Barrens chat.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- Section 3 --&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A party who has committed any of the actions described in section 3, thus rendering them &quot;unpleasant&quot; by the terms of this license, may gain the rights described in the standard GNU license by either of these two methods:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1. The issuance of a sincere public apology, which must contain a clear explanation of why what they did was wrong. This explanation may be rendered in prose, verse, song, or any other form, so long as its intent is clear. These actions will relieve the individual of the status of &quot;unpleasant&quot; as defined in this license.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;2. Giving me $50 USD. (This will not make you less unpleasant.)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=snarp&amp;ditemid=310654&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://snarp.dreamwidth.org/310654.html</comments>
  <category>computer</category>
  <category>coding</category>
  <category>open-source</category>
  <category>gnu</category>
  <lj:security>public</lj:security>
  <lj:reply-count>10</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://snarp.dreamwidth.org/293002.html</guid>
  <pubDate>Wed, 23 Jun 2010 21:11:12 GMT</pubDate>
  <title>Japanese-related question.</title>
  <link>https://snarp.dreamwidth.org/293002.html</link>
  <description>&lt;a href=&quot;http://control-online.nl/gamesindustrie/2010/06/22/iwatani-toont-gamesgeschiedenis-in-meest-pure-vorm/&quot;&gt;In these photos&lt;/a&gt; of some of the original pen-and-paper sketches for Pac-Man, there&apos;s a stamp saying 「秘」, which means &quot;secret.&quot; This kanji&apos;s not in the artist&apos;s name or anything, so I&apos;m going to assume that, you know, it is in fact the equivalent of a &quot;Classified&quot; stamp.&lt;br /&gt;&lt;br /&gt;What I&apos;m wondering is - can you get these things at the 100-Yen Shop? If so, I wish I&apos;d known! I totally would have used it as my signature stamp and upset the phone company.&lt;br /&gt;&lt;br /&gt;-&lt;br /&gt;&lt;br /&gt;&lt;a name=&quot;cutid1&quot;&gt;&lt;/a&gt;Tangentially, for the past couple months I&apos;ve been working on a tilemap editor for use with &lt;a href=&quot;http://flixel.org/&quot;&gt;Flixel&lt;/a&gt;. Yesterday I finally got it to a minimally-functional state - as in, you know, you can edit a tilemap on it. And it save it and open it and stuff. No this is a big accomplishment, given how little time I&apos;ve actually had to devote to this project recently!&lt;br /&gt;&lt;br /&gt;I&apos;ve got somewhat more ambitious plans than this, obviously! FOR INSTANCE:&lt;br /&gt;&lt;br /&gt;* Flixel is presently &lt;i&gt;very finicky&lt;/i&gt; about how it handles collisions. Basically, the first x tiles in the tileset are non-collidable, and the rest are collidable. Obviously this is really irritating if you need to insert a new tile, or if you want a tile to be collidable sometimes and non-collidable sometimes. There&apos;s no way to do that programmatically - you&apos;ve got to actually go in there and edit the tileset image itself. I think that&apos;s something on the to-fix list, but for now, I&apos;m working on automatic tileset editing. Ideally, I&apos;d like the interface to look very similar to RPG Maker VX&apos;s, but with the option to copy a tile when you want both a collidable and a non-collidable version.&lt;br /&gt;&lt;br /&gt;* Layers. I don&apos;t have those in there yet. I know, I&apos;m a bad person.&lt;br /&gt;&lt;br /&gt;* Tile brushes - again, because I like RPG Maker VX&apos;s map editor. Basically, I want to be able to select the a brush for &quot;cliff face&quot; and have it draw a different tile for the top, bottom, left, right, and corners, and shadows, filling the center with a pre-selected fill tile. Optimally, it should probably be possible to have more than one fill tile that alternates in some intelligent way to add texture.&lt;br /&gt;&lt;br /&gt;* Sprite placement. Because I don&apos;t like having to code in where all the objects you interact with are. The plan is that there&apos;ll be a separate layer for sprites/objects, you&apos;ll give a name to each tile corresponding to the name of the class for it, and the editor autogenerates some code that you paste in to scan the sprite-layer map and place the objects properly. It&apos;ll be &lt;i&gt;quite fancy.&lt;/i&gt; It is also last on my list because it will be &lt;i&gt;annoying.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=snarp&amp;ditemid=293002&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://snarp.dreamwidth.org/293002.html</comments>
  <category>video games</category>
  <category>japanese</category>
  <category>coding</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
</channel>
</rss>
