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

<channel>
	<title>miriku.com &#187; programming</title>
	<atom:link href="http://miriku.com/wp/category/computer/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://miriku.com/wp</link>
	<description>a website</description>
	<lastBuildDate>Sat, 19 May 2012 03:08:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>methematics</title>
		<link>http://miriku.com/wp/2011/01/lacant/</link>
		<comments>http://miriku.com/wp/2011/01/lacant/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 05:53:09 +0000</pubDate>
		<dc:creator>.e</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://miriku.com/wp/?p=895</guid>
		<description><![CDATA[reading some lacan. i bring you a quote: human life could be defined as a calculus where zero was irrational. This formula is just an image, a mathematical metaphor. When I say &#8220;irrational&#8221;, I&#8217;m referring not to some unfathomable emotional state but precisely to what is called an imaginary number. the zero is precisely an [...]]]></description>
			<content:encoded><![CDATA[<p>reading some lacan. i bring you a quote:</p>
<blockquote><p>
human life could be defined as a calculus where zero was irrational. This formula is just an image, a mathematical metaphor. When I say &#8220;irrational&#8221;, I&#8217;m referring not to some unfathomable emotional state but precisely to what is called an imaginary number.</p></blockquote>
<p>the zero is precisely an irrational imaginary number, eh? the &#8220;precisely&#8221; is what makes it great to me. he&#8217;s not just wrong, he&#8217;s wrong and smug about it.</p>
<p>reminds me of TAing freshmen computer science classes. you&#8217;d have people who never wrote  a program in their life thinking that since it was confusing to them, it must be confusing to everyone else, when in reality it becomes clear as english after about a year of reading and writing it. kids screwing up their sentences then laughing it off as &#8220;objects, methods, who can tell the difference?&#8221;. </p>
<img src="http://miriku.com/wp/?ak_action=api_record_view&id=895&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://miriku.com/wp/2011/01/lacant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>diafungusa</title>
		<link>http://miriku.com/wp/2010/09/diafungusa/</link>
		<comments>http://miriku.com/wp/2010/09/diafungusa/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 15:03:10 +0000</pubDate>
		<dc:creator>.e</dc:creator>
				<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://miriku.com/wp/?p=669</guid>
		<description><![CDATA[there&#8217;s a project called diaspora that&#8217;s trying to write the open source facebook, except that&#8217;s going to completely respect privacy issues and shit unicorns. so the diaspora code got released just a bit ago and unsurprisingly it&#8217;s a security nightmare. if in the year 2010 you are trusting _GET passed item ids with no authorization [...]]]></description>
			<content:encoded><![CDATA[<p>there&#8217;s a project called diaspora that&#8217;s trying to write the open source facebook, except that&#8217;s going to completely respect privacy issues and shit unicorns. </p>
<p>so the diaspora code got released just a bit ago and unsurprisingly it&#8217;s a security nightmare. if in the year 2010 you are trusting _GET passed item ids with no authorization checking, you shouldn&#8217;t be writing anything that&#8217;s not a dream diary, much less trying to create the secure/privacy respecting facebook replacement. </p>
<p>hits up against that whole &#8220;just because you have good intentions, doesn&#8217;t mean that your actions are improving the world&#8221; thing. it&#8217;s surprisingly hard to realize your own limitations and what things you&#8217;re not capable of doing well. unfortunately with matters of security there is an objective test of your abilities, and diaspora is currently profoundly failing it. </p>
<p> &#8211; - </p>
<p>totally unrelatedly, i&#8217;ve been trying to run a minecraft server on a 12 year old laptop (hi nando) and oh man is it making some fascinating noises as the drive is thrashing every which way.</p>
<p> &#8211; -</p>
<p>surrealistic mood indicator:<br />
<img src="http://d.yimg.com/a/p/rids/20100919/i/r4044352437.jpg?x=400&#038;y=258&#038;q=85&#038;sig=42Rqd6_IHL97ub1s8kFZgA--"></p>
<img src="http://miriku.com/wp/?ak_action=api_record_view&id=669&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://miriku.com/wp/2010/09/diafungusa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Exploiting Trust: Vulnerabilities in Social Media</title>
		<link>http://miriku.com/wp/2010/02/exploiting-trust-vulnerabilities-in-social-media/</link>
		<comments>http://miriku.com/wp/2010/02/exploiting-trust-vulnerabilities-in-social-media/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 03:08:12 +0000</pubDate>
		<dc:creator>.e</dc:creator>
				<category><![CDATA[culture]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[attacks]]></category>
		<category><![CDATA[buzz]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://miriku.com/wp/?p=472</guid>
		<description><![CDATA[A list of attacks possible in our over-trusting social media sphere.]]></description>
			<content:encoded><![CDATA[<p>Right now social media, security wise, is exactly where the internet was in the mid 90s: we&#8217;re excited, we&#8217;re adding functionality, we&#8217;re connecting to everyone, and we&#8217;re assuming that everyone else is as excited and good willed as us. In other words, we&#8217;re trusting.</p>
<p>Much like early websites, built by enthusiasts (in all the negative connotations of this word), our current approach to distributing information about us has very little security precautions. This is partly because we don&#8217;t really understand the scope of our actions, partly because what we&#8217;re writing is free content for the social media sites: the more we write and the more people read it, the higher the value of their website.</p>
<p>This isn&#8217;t an attack on any specific protocol, site, or network, though I will discuss a few, but rather a talk in the general about our attitude. I realize I&#8217;m writing this 1 day after the launch of Google Buzz, but all of these vulnerabilities existed previously as well, Google ubiquity and attempt to centralize all of it makes it more obvious.</p>
<p>One great example of trust is the hash tag mechanism on Twitter. Companies are using hash tags to foster conversation about themselves without any thought about the lack of moderation in the medium. A corporation that would instantly file a cease and desist against a website that in official looking type made claims in it&#8217;s name, is more than happy to lend legitimacy to &#8220;its&#8221; hash tag by having reps post it to it from their twitter account. This creates a trusted space with absolutely no access control as anyone can post using with any hash tag.</p>
<p>If an attacker waits for this company name hash tag to achieve legitimacy and a crowd of followers, all she has to do is to push enough posts quickly enough to cause a (pardon) buzz and an instant bad press rumor is launched. There are plenty of forums that can (and off the top of my head 4chan, digg, and reddit have) push enough posts to create a trending rumor out of the blue, especially as the retweets from confused readers begin and take over the process. Since Twitter provides an API, this could also be done by a bored single person who created a few thousand accounts for himself with a capcha breaker and can write scripts. By endorsing these open hash tags, companies are basically giving the world at large the ability to speak in their voice.</p>
<p>Companies also have taken to displaying screens with their hash tags displayed as scrolling searches in their lobbies (or in one case in San Diego, on a large TV behind the bar). The lack of moderation means that anyone can post ads for their competitors, or simply embarrassing content in order to hurt the brand name. There is no way to stop this content from being posted to the hash tag, and short of closing the feed, no way to remove it. Some of the software goes as far as displaying images inline, ways to prank this are left as an exercise for the readers.</p>
<p>On the complete opposite side of this target space be personal social media attacks. A casual glance at facebook, twitter, and buzz feeds shows that we treat these websites like personal conversation tools, not billboards for all to see. Things that we&#8217;d never plaster over our house, like &#8220;I&#8217;ll be gone on vacation for 7 days so no one is home&#8221;, we&#8217;re more then happy to put online on a site that also has our address. We fight like mad against the invasive nature of omnipresent cameras while tweeting our exact location every 30 minutes in order to get Foursquare points, with absolutely no sensation of irony.</p>
<p>Google Buzz, which by default appends map information if posting by phone, makes this even more obvious. A chatty person involved in a back and forth might leave a complete trail of where they were at near constant intervals in their day. While I grant that this lack of privacy is not catastrophic in and of itself, a criminal with a smart phone and access to the &#8220;local buzzes&#8221; feature would be able to have up to the minute reports of who is where, who just went to the atm, who is bringing home a new expensive TV (and where exactly are they plugging it in), and with a trip to the airport, a constant feed of people excited to be going away for a few days.</p>
<p>The last in particular highlights that we have not reached the point that caused the tip towards security on the net: automation of attacks enough to let every Joe the Script Kiddy do harm. Currently an attacker would have to go to the airport, set up a laptop, pull buzzes of people leaving or arriving, compare it to their previous buzzes and figure out their home address. However, all of the above can be converted into a simple application which performs all these steps in a few seconds, something which we&#8217;ll playfully call iBurglar. Once it&#8217;s an easy to use app, available for download, is the point where we might start to see action from the social media websites.</p>
<p>We also do not realize how permanent the things we write on these website are and how trivial searching them has become. A search on social sites for phrases related to drug use (try 420) shows people more than happy to discuss illegal actions in criminally implicating ways. And this time, unlike phone or txt messages, we can&#8217;t even begin to claim an expectation of privacy, we are literally posting it for everyone to see. There was recently a news story about a bail-hopper who was caught because cops recognized the resort in the background of his new Facebook profile photo. This didn&#8217;t even require a warrant, it was a public photo.</p>
<p>It&#8217;s easy to dismiss examples like that, and all the previous ones, as the fault of the users, but users assume privacy and assume good intention. Currently the social media is a giant space completely open to attack, and our current open-by-default approach is not sustainable. It is the responsibility of social media designers to create mediums that steer users into safe behaviors and quite literally to protect them from themselves, while at the same time balancing the needs of their shareholders and advertisers. It&#8217;s an interesting future, no doubt.</p>
<img src="http://miriku.com/wp/?ak_action=api_record_view&id=472&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://miriku.com/wp/2010/02/exploiting-trust-vulnerabilities-in-social-media/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>defending the unthinkable</title>
		<link>http://miriku.com/wp/2010/02/defending-the-unthinkable/</link>
		<comments>http://miriku.com/wp/2010/02/defending-the-unthinkable/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 20:56:28 +0000</pubDate>
		<dc:creator>.e</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[college]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[dijkstra]]></category>
		<category><![CDATA[thinking]]></category>

		<guid isPermaLink="false">http://miriku.com/wp/?p=468</guid>
		<description><![CDATA[the "thinking computer" is a just a language illusion. it's not real and it will never be real.]]></description>
			<content:encoded><![CDATA[<p>i went to college with the intent to major in computer science and design a computer that thinks. pretty ambitious, but computer power was and is flying up and after all, kurzweil says it&#8217;ll happen in 2030 or whatever is his hypothesis now, so it would be in my lifetime. as perfect time as there could be for it.</p>
<p>along the ways i ran into a single quote from the 70s that completely stopped me.</p>
<blockquote><p>&#8220;The question of whether a computer can think is no more interesting than the question of whether a submarine can swim&#8221; &#8211; Edsger Dijkstra</p></blockquote>
<p>in one sentence it summarized for me that &#8220;thinking computer&#8221; is a just a language illusion. it&#8217;s not real and it will never be real.</p>
<p>a computer will never think in the same way a submarine will never swim. swimming is what living things do, a submarine instead &#8216;propels itself through water&#8217;. a computer will never &#8216;think&#8217;, it will &#8216;perform computations in order to arrive at conclusions&#8217;. which, guess what, they already do and have been for ages.</p>
<p>for people to agree that a machine is a &#8220;thinking computer&#8221; would be one that can feature a display of a pleasant cartoonish face that, when computing, would furrow it&#8217;s brow and make &#8220;hmm&#8221; noises. while an interesting task and a cognitive/behavioral challenge, it&#8217;s not a computer science problem.</p>
<p>the better goal i learned in compilers: we should be working to precisely define problem spaces where computers can help with decision making, and then writing better and more robust expert systems (by whatever buzzword they&#8217;re going by nowadays) that can read data about the situation, and suggest or perform actions in response. not as glamorous as &#8216;thinking&#8217;, but infinitely more useful.</p>
<img src="http://miriku.com/wp/?ak_action=api_record_view&id=468&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://miriku.com/wp/2010/02/defending-the-unthinkable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>the maliciousness of crowds</title>
		<link>http://miriku.com/wp/2009/11/the-maliciousness-of-crowds/</link>
		<comments>http://miriku.com/wp/2009/11/the-maliciousness-of-crowds/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 03:25:30 +0000</pubDate>
		<dc:creator>.e</dc:creator>
				<category><![CDATA[culture]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[crowds]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://miriku.com/wp/?p=428</guid>
		<description><![CDATA[if there is one thing that programmers can almost uniformly be accused of is coding for the best case: wanting to write programs designed around all things behaving correctly every time. one random facet of this is the assumption that crowds and their voting can be trusted to behave in a productive way. let&#8217;s say [...]]]></description>
			<content:encoded><![CDATA[<p>if there is one thing that programmers can almost uniformly be accused of is coding for the best case: wanting to write programs designed around all things behaving correctly every time.</p>
<p>one random facet of this is the assumption that crowds and their voting can be trusted to behave in a productive way. let&#8217;s say you have a website where people vote on who is the best poster / reviewer / uploader / whatever, and rewards them in some way. simple to implement, simple to test, and you&#8217;re done, right?</p>
<p>well, never underestimate the willingness of crowds to behave maliciously. getting 1000 people to do a prank on a system like that is trivial, and it&#8217;s even easier to get one person with a bunch of zombie machines all over the planet.</p>
<p>attacks like this are really common: websites raid amazon review / recommendation pages for fun, 4chan obliterated a &#8220;person of the year&#8221; TIME poll, and twitter &#8220;trending topics&#8221; seem to be raids more often than not.</p>
<p>the last one in particular strikes me as funny. businesses are now using personal hash tags to let people talk about them using hashtags, and in some cases display the results real time in the lobby or on their page. i&#8217;m astounded at this. all it takes is one message board post asking everyone to twitpic porn to the hashtag and voila, instant PR disaster.</p>
<p>always program for the worst case, not the best case. unless you have some method to block them, assume that at any point in time there are thousands of bored suburban teenagers who would love to abuse any ranking system you have for laughs.</p>
<img src="http://miriku.com/wp/?ak_action=api_record_view&id=428&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://miriku.com/wp/2009/11/the-maliciousness-of-crowds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>work pair of dimes</title>
		<link>http://miriku.com/wp/2009/10/work-pair-of-dimes/</link>
		<comments>http://miriku.com/wp/2009/10/work-pair-of-dimes/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 06:09:55 +0000</pubDate>
		<dc:creator>.e</dc:creator>
				<category><![CDATA[music]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://miriku.com/wp/?p=358</guid>
		<description><![CDATA[paradigms for work are often just "this is a set of rules that worked for me, a random person". don't be afraid to modify them as you see fit]]></description>
			<content:encoded><![CDATA[<p>never forget that all the work paradigms that you&#8217;ve been ever taught or forced into (in case of programming, things like extreme programming or scrum) aren&#8217;t some sort of mathematically proven theorems or empirically checked models. they&#8217;re simply one guys idea of how a group should work, that happened to work in his group</p>
<p>if you find yourself constantly striving to match a paradigm, back up. maybe you&#8217;re not really meant to work that way. do you have something that works for you?</p>
<p>keep in mind though, some people really might not have a method that works, in which case anything that involves structure might be beneficial.</p>
<p>one random example from my own life: my email. i spent a stupid amount of time attempting to stay on top of sorting email because i was told at one point that organized email is important. i tried tags, rulesets in the hundreds, smart folders, all at the same time, and the results were dismal. best part? i never used it. i never once said to myself &#8220;oh, i need this communication from the prime minister of ukraine, let me look under &#8220;prime ministers&#8221;, tagged &#8220;ukraine&#8221; &#8220;. no, i&#8217;d just go to the search bar, click &#8220;From&#8221; and type <a href="mailto:ytymoshenko@gmail.com">ytymoshenko@gmail.com</a>. ta-da.</p>
<p>new solution? 4 inboxes (i have 4 mail aggregating accounts), total of 2 regular folders marked &#8220;important&#8221; and &#8220;not&#8221;, and 1 smart folder. the rule for the smart folder is:<br />
- if the email is unread, or the email is in folder important, show it.</p>
<p>the only folder i look at is the smart folder. all unread emails are in there and disappear after they&#8217;re read (technically, they disappear after i close the window, which i do as soon as i&#8217;m done looking at mail), unless they&#8217;re something relevant in which case i drag them to the &#8220;important&#8221; folder. once they&#8217;re solved/answered, they&#8217;re dropped in either &#8220;not&#8221;. every blue moon i drag all emails from the inboxes to the &#8220;not&#8221; bin, just in case things go bad if the inbox gets too large.</p>
<p>that&#8217;s really all i need from email, it works with my actual work flow, and actually uses that CPU power this machine has. i imagine this would work even better with gmail, but at work we have lolexchange so eh.</p>
<p>different example of this: i have a bizarre music writing method. i work in these bursts where i write and record for about 5 hours straight, in which time i like to be alone with no one listening, then when done, i leave it alone for a week while sending it to half the people on my IM list to ask for opinions on what they think of it and where it should go</p>
<p>somehow the conversation process is what lets me mentally decide where it needs to go. it&#8217;s silly, but songs which i don&#8217;t talk about end up piling up as minute long fragments that never went anywhere. songs i do, end up growing into actual songs. well, not immediately. they go through a bunch of cycles of this. some more than others.</p>
<p>(btw, apologies if you happen to be on the &#8220;hey can you tell me if this works? what do you think of the cut up trumpet loop?&#8221; and are annoyed by it. just let me know, i wont be offended)</p>
<p>in any case, yes, don&#8217;t get obsessed with following footsteps of others, just set a similar goal to what they had and find what manner of movement works best for you. but don&#8217;t use that as an excuse to be lazy either.</p>
<img src="http://miriku.com/wp/?ak_action=api_record_view&id=358&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://miriku.com/wp/2009/10/work-pair-of-dimes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

