<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://dikini.net" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>dikini.net - scribbles</title>
 <link>http://dikini.net/taxonomy/term/23/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>Learning to speak - erlang style concurrency in haskell ( part II )</title>
 <link>http://dikini.net/22.11.2007/learning_to_speak_erlang_style_concurrency_in_haskell_part_ii</link>
 <description>&lt;p&gt;A second installment of my attempt to code erlang-style concurrency abstraction in &lt;a href=&quot;http://haskell.org&quot;&gt;haskell&lt;/a&gt;. The effort in &lt;a href=&quot;http://dikini.net/15.11.2007/learning_to_speak_erlang_style_concurrency_in_haskell&quot;&gt;part I&lt;/a&gt;, was a bit short of the mark. Here I try to address some of the shortcomings, while leaving others open.&lt;/p&gt;

&lt;p&gt;The main problem was that the receiver could escape outside of the process, which can cause various hard to debug mayhem. What will happen if two different threads receive data from the same channel? Yes, it might be intentional, but you could always duplicate a channel for that. What if it is a bug? What if it is a piece of malicious code? Better safe than sorry.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/22.11.2007/learning_to_speak_erlang_style_concurrency_in_haskell_part_ii&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/22.11.2007/learning_to_speak_erlang_style_concurrency_in_haskell_part_ii#comment</comments>
 <category domain="http://dikini.net/tags/code">code</category>
 <category domain="http://dikini.net/tags/erlang">erlang</category>
 <category domain="http://dikini.net/tags/haskell">haskell</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <enclosure url="http://dikini.net/files/Process.hs_.txt" length="1577" type="text/plain" />
 <pubDate>Thu, 22 Nov 2007 19:19:15 -0500</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">279 at http://dikini.net</guid>
</item>
<item>
 <title>Learning to speak - erlang style concurrency in haskell</title>
 <link>http://dikini.net/15.11.2007/learning_to_speak_erlang_style_concurrency_in_haskell</link>
 <description>&lt;p&gt;I&#039;m on a learning haskell journey. But reading someone else&#039;s code and thoughts while educational is not that enlightening. Anyway, to cut the long story short:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I (still) want to see what this &lt;a href=&quot;/freelinking/haskell&quot;&gt;haskell&lt;/a&gt; thing is all about&lt;/li&gt;
&lt;li&gt;I need a moderately complex problem to get a feeling of the haskell type system works, face the dreaded IO, while not wasting too much time&lt;/li&gt;
&lt;li&gt;I need a decent actor style abstraction for some social/population based methods experiments I&#039;m into&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So this is how ended with &lt;em&gt;Why not try my hand at erlang style concurrency&lt;/em&gt;. The best thing about it is that it aligns nicely with an individualistic view of the world. I can write sequential code to do something, which from time to time communicates with the rest of them, while the rest of the time doesn&#039;t really care.&lt;/p&gt;
&lt;p&gt;Erlang implements lightweight processes with asynchronous messaging. The cool twist it puts on it is having reception guards - if a message is not matched by the guard conditions it stays in the mailbox (channel), and the rest of the messages are scanned. The first matching message is removed from the mailbox, the remaining messages are left in the mailbox in arrival order.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/15.11.2007/learning_to_speak_erlang_style_concurrency_in_haskell&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/15.11.2007/learning_to_speak_erlang_style_concurrency_in_haskell#comment</comments>
 <category domain="http://dikini.net/tags/code">code</category>
 <category domain="http://dikini.net/tags/erlang">erlang</category>
 <category domain="http://dikini.net/tags/haskell">haskell</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <enclosure url="http://dikini.net/files/erlactorstest.hs_.txt" length="1750" type="text/plain" />
 <pubDate>Thu, 15 Nov 2007 12:41:07 -0500</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">277 at http://dikini.net</guid>
</item>
<item>
 <title>software patents, or my personal insights</title>
 <link>http://dikini.net/29.09.2006/software_patents_or_my_personal_insights</link>
 <description>&lt;p&gt;Up until now I was avoiding putting my thoughts on &#039;paper&#039;, but here we are. My instincts simply say &lt;em&gt;Restricting knowledge distribution and use is wrong&lt;/em&gt;. Some might  say this makes me a communist devil, anarchist or whatever other epithet is currently cool in their circles. Let&#039;s avoid that for the time being. These scribbles are probably not 100% correct. But the ideas are what matters anyway. And will you find a difference from a bird&#039;s eye view?&lt;/p&gt;
&lt;p&gt;Obviously this is a strong social issue, as in it reflects a growing concern of the society as a whole. The society as the human beings represented by a state, like UK, USA, France, Bulgaria, or groups of states like EU, UN, ... Some long time ago patents were introduced by the British Crown in order to give a temporary monopoly to inventors, so that they can protect and exploit their knowhow, while making the knowledge (their knowhow) public. This was a significant social issue. This way knowledge was immediately becoming exploitable by the society. People could benefit from the abstract knowledge or the principles behind the patentable invention. These principles were not patentable at the time, only some of their defined applications - the invention, machines, products etc... The monopoly lasted for a relatively short period of time. Longer than it would take at the time to reverse engineer an invetion and set up production of a competitive product, but not by too much. This is important, since timescales, im my opinion, are important when trying to rationalise the costs of patents to a society.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/29.09.2006/software_patents_or_my_personal_insights&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/29.09.2006/software_patents_or_my_personal_insights#comment</comments>
 <category domain="http://dikini.net/tags/copyright">copyright</category>
 <category domain="http://dikini.net/tags/digital_rights">digital rights</category>
 <category domain="http://dikini.net/tags/intellectual_property">Intellectual Property</category>
 <category domain="http://dikini.net/tags/ip">IP</category>
 <category domain="http://dikini.net/tags/politics">politics</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <category domain="http://dikini.net/tags/society">society</category>
 <category domain="http://dikini.net/tags/wrongs">wrongs</category>
 <pubDate>Fri, 29 Sep 2006 09:10:58 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">221 at http://dikini.net</guid>
</item>
<item>
 <title>out of the (php) loop</title>
 <link>http://dikini.net/09.08.2006/out_of_the_php_loop</link>
 <description>&lt;p&gt;&lt;em&gt;&lt;a href=&quot;http://www.regdeveloper.co.uk/2006/08/08/cplusplus_loops/&quot; title=&quot;Out of the (C++) loop&quot; rel=&quot;nofollow&quot;&gt;inspired by Verity&lt;/a&gt;&lt;/em&gt; , my urge to display my writing talent and random buzz on the internet&lt;/p&gt;
&lt;p&gt;This conversation was (allegedly) overheard in a nursery, which won&#039;t be disclosed to avoid litigation &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Write a standard php loop on the nursery blackboard&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Come on, can&#039;t be bothered. Are you joking?&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;foreach( $array as $key =&amp;gt; $value ) echo &quot;$key $value&quot;;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Wrong! Don&#039;t you ever learn proper language usage&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What have I done NOW?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/09.08.2006/out_of_the_php_loop&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/09.08.2006/out_of_the_php_loop#comment</comments>
 <category domain="http://dikini.net/tags/php">php</category>
 <category domain="http://dikini.net/tags/programming">programming</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <pubDate>Wed, 09 Aug 2006 12:32:03 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">209 at http://dikini.net</guid>
</item>
<item>
 <title>Hey Jess, hope you see this in time ;)</title>
 <link>http://dikini.net/09.08.2006/hey_jess_hope_you_see_this_in_time</link>
 <description>&lt;p&gt;Happy birthday Jess, hope you delve deeper in your &lt;a href=&quot;http://menwithlonghair.blogspot.com/&quot;&gt;obsession with men with long hair&lt;/a&gt;, or your &lt;a href=&quot;http://www.inkednation.com/eccentrica&quot;&gt;other (inked)&lt;/a&gt; ones for that matter.&lt;/p&gt;
&lt;p&gt;And see you down the pub.&lt;/p&gt;
</description>
 <comments>http://dikini.net/09.08.2006/hey_jess_hope_you_see_this_in_time#comment</comments>
 <category domain="http://dikini.net/tags/friends">friends</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <pubDate>Wed, 09 Aug 2006 07:24:49 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">208 at http://dikini.net</guid>
</item>
<item>
 <title>Overcomplicated design pattern implementations</title>
 <link>http://dikini.net/24.07.2006/overcomplicated_design_pattern_implementations</link>
 <description>&lt;p&gt;I know that I often express myself in an overcomplicated way. I hope I don&#039;t do that in code. I&#039;m really amased how people overcomplicate stuff in their minds. This particular rant is triggered by me wandering around the net flicking &lt;em&gt;design patterns in php&lt;/em&gt; web pages.&lt;/p&gt;

&lt;p&gt;Guess what? They are complex beasties. With multiple hierarchies of classes doing loads of complicated stuff over a lot of lines of code.&lt;/p&gt;

&lt;p&gt;Take a look for example at &lt;a href=&quot;http://www.phppatterns.com/docs/design/observer_pattern&quot;&gt;Observer Pattern&lt;/a&gt;. Actually not a very bad code. Still on the big side. Still maintaining the dual observer/observed &#039;magic&#039; separation. Compare it with this &lt;a href=&quot;http://dikini.net/14.06.2006/aspects_and_honey_in_php&quot;&gt;hooks implementation&lt;/a&gt;, the code at the bottom of the page. The latter is designed for a more complex scenario, i.e to mimic aspects in php, but still manages to be simpler.&lt;/p&gt;

&lt;p&gt;But the best example, I suppose, is how do you code a strategy pattern in php? A typical code would be something like &lt;a href=&quot;http://www.patternsforphp.com/index.php?title=Strategy&quot;&gt;Strategy Pattern&lt;/a&gt;. Not a bad code. Well described, documented, etc... But wait! A startegy is:&lt;/p&gt;
&lt;blockquote&gt;The Strategy pattern defines an object that represents an algorithm for a particular task.&lt;/blockquote&gt;
&lt;p&gt;
But algorithm == function (or method), isn&#039;t it? So the variable function problems is &lt;how to turn a function into a variable?&quot;.&lt;/p&gt;

&lt;code&gt;$func = &quot;a_function&quot;;
...
$func()&lt;/code&gt;

&lt;p&gt;I think this should do it. Yep, for complex strategies you might need to compose stuff, but still there are surely better ways, rather than having these long hard java/c++/... inherited ideas.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/24.07.2006/overcomplicated_design_pattern_implementations&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/24.07.2006/overcomplicated_design_pattern_implementations#comment</comments>
 <category domain="http://dikini.net/tags/code">code</category>
 <category domain="http://dikini.net/tags/php">php</category>
 <category domain="http://dikini.net/tags/rants">rants</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <pubDate>Mon, 24 Jul 2006 13:09:43 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">178 at http://dikini.net</guid>
</item>
<item>
 <title>Scoped php functions  or more ways to abuse php</title>
 <link>http://dikini.net/24.07.2006/scoped_php_functions_or_more_ways_to_abuse_php</link>
 <description>Here we go again. In this writeup I&#039;ll revisit the ideas of &lt;a href=&quot;http://dikini.net/24.01.2006/emulating_closures_in_php&quot;&gt;closures&lt;/a&gt;, &lt;a href=&quot;http://dikini.net/25.01.2006/some_ways_to_use_saved_state_with_closures_in_php&quot;&gt;state and closures&lt;/a&gt;, &lt;a href=&quot;http://dikini.net/03.07.2006/partial_evaluation_and_generics_in_php&quot;&gt;partial evaluation and generics&lt;/a&gt;.

&lt;h3&gt;Basics of &#039;functions as first class language objects&#039;&lt;/h3&gt;
Yep. PHP can assign functions to variables. In this sense functions are first class objects. Object and class methods are similar, you can, kind of, assign them to variables and later execute them. What does this change? Well, it improves our ability to abstract common patterns and idioms. There are examples of this in the above writeups as well as in the &lt;a href=&quot;http://dikini.net/14.06.2006/aspects_and_honey_in_php&quot;&gt;aspects&lt;/a&gt; one and quite a few of the rest of &lt;a href=&quot;http://dikini.net/node/add/tags/php&quot;&gt;php&lt;/a&gt; ones on this site. The basic concept is &lt;a href=&quot;http://uk.php.net/callback&quot;&gt;php callback&lt;/a&gt; for example:
&lt;code&gt;
call_user_func(&#039;a_callback_function&#039;);
call_user_func(array(&#039;AClass&#039;, &#039;aCallback&#039;));
call_user_func(array($obj, &#039;aCallback&#039;));

$callback = &#039;a_callback_function&#039;;
$callback();
$callback = array($obj, &#039;aCallback&#039;);
$callback();
&lt;/code&gt;
What can we use this for? The most obvious and straight forward this is a lightweight state pattern implementation - 
&lt;code&gt;$a_thing()&lt;/code&gt;
Will behave differently depending on the value of the $a_thing variable, it&#039;s state. Another way to look at php callbacks is as proxies for &#039;real&#039; functions, class or object methods.
 
Oh, let&#039;s not forget &lt;a href=&quot;http://uk.php.net/manual/en/function.is-callable.php&quot;&gt;is_callable&lt;/a&gt;, it&#039;s a very useful little number.

&lt;h3&gt;Objects and functions&lt;/h3&gt;
&lt;p&gt;The facility of PHP objects to encapsulate a state and us being able to access this state later can be used to turn them into functions. Let&#039;s consider:
&lt;code&gt;class aClass{
var $state;
function get() { return $state; }
function next() { $state=random; }
function callbacks() { return array( array($this,&#039;get&#039;), array($this, &#039;next&#039;));}
}
$obj = new aClass();
list( $random, $next_random ) = $obj-&gt;callbacks();
echo $random();
echo $next_random();
&lt;/code&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://dikini.net/24.07.2006/scoped_php_functions_or_more_ways_to_abuse_php&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/24.07.2006/scoped_php_functions_or_more_ways_to_abuse_php#comment</comments>
 <category domain="http://dikini.net/tags/code">code</category>
 <category domain="http://dikini.net/tags/coding">coding</category>
 <category domain="http://dikini.net/tags/design_patterns">design patterns</category>
 <category domain="http://dikini.net/tags/php">php</category>
 <category domain="http://dikini.net/tags/programming">programming</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <category domain="http://dikini.net/tags/work_in_progress">work in progress</category>
 <pubDate>Mon, 24 Jul 2006 06:09:03 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">177 at http://dikini.net</guid>
</item>
<item>
 <title>Does Visual Studio Rot the Mind?</title>
 <link>http://dikini.net/03.07.2006/does_visual_studio_rot_the_mind</link>
 <description>&lt;blockquote&gt;&lt;p&gt;This talk dissects the code generated by Visual Studio; analyzes the appalling programming practices it perpetuates; rhapsodizes about the joys, frustrations, and satisfactions of unassisted coding;&lt;br /&gt;
&lt;a href=&quot;http://www.charlespetzold.com/etc/DoesVisualStudioRotTheMind.html&quot; rel=&quot;nofollow&quot;&gt;Does visual studio rot the mind&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Nice. I like that article, not so much because it slags a Redmond born product, but that it goes to the core - bring back fun, in all it&#039;s forms, into programming. Just say no to ugly code.&lt;/p&gt;
&lt;p&gt;I really want elegant code back. Unfortunately there is too much of the quick fix hack smartly generated crap bloat.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/03.07.2006/does_visual_studio_rot_the_mind&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/03.07.2006/does_visual_studio_rot_the_mind#comment</comments>
 <category domain="http://dikini.net/tags/programming">programming</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <pubDate>Mon, 03 Jul 2006 11:14:29 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">176 at http://dikini.net</guid>
</item>
<item>
 <title>LISP-like programming in php</title>
 <link>http://dikini.net/22.06.2006/lisp_like_programming_in_php</link>
 <description>&lt;p&gt;My obsession with things schemish and lispish and having to use php on a daily basis leads to the usual comparison and how would I do this in ... style questions. So here comes another go at how would I program lisp style in php. How much is possible? What is possible? Mind you not everything is really useful or the best way to do it. It is just an intellectual excersise, a study on using some of the php&#039;f features to program in not a typical php (imperative) style.&lt;/p&gt;

&lt;h3&gt;the compulsory conses, car, cdr in php&lt;/h3&gt;

&lt;p&gt;Well for the benefit of non-lispers I will use head and tail instead of car and cdr respectively.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://dikini.net/22.06.2006/lisp_like_programming_in_php&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/22.06.2006/lisp_like_programming_in_php#comment</comments>
 <category domain="http://dikini.net/tags/lisp">lisp</category>
 <category domain="http://dikini.net/tags/php">php</category>
 <category domain="http://dikini.net/tags/scheme">scheme</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <pubDate>Thu, 22 Jun 2006 09:12:04 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">174 at http://dikini.net</guid>
</item>
<item>
 <title>Army man</title>
 <link>http://dikini.net/09.05.2006/army_man</link>
 <description>Charlie is going to the army. Tomorrow. Sad isn&#039;t it. He is going to waste a year of his time serving his duty to his country.

Skipping the fact that this is simply %$&amp;#@, let&#039;s admire the view
&lt;img src=&quot;http://static.flickr.com/26/143359954_c63bfc2a9c_o.jpg&quot; alt=&quot;Charilaos Pasantonopoulos, aka Charlie&quot; style=&quot;width:60%&quot; /&gt;
 What a man! 

I wish I was blonde and female. Never mind.

Cheers buddy, a year is not that much.</description>
 <comments>http://dikini.net/09.05.2006/army_man#comment</comments>
 <category domain="http://dikini.net/tags/charilaos_pasantonopoulos">charilaos pasantonopoulos</category>
 <category domain="http://dikini.net/tags/friends">friends</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <pubDate>Tue, 09 May 2006 07:18:37 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">158 at http://dikini.net</guid>
</item>
<item>
 <title>Evil machines, not a conspiracy theory nor sci-fi, but reality</title>
 <link>http://dikini.net/26.04.2006/evil_machines_not_a_conspiracy_theory_nor_sci_fi_but_reality</link>
 <description>&lt;p&gt;I don&#039;t know about you, but in my life the incidents involving evil meaning machines are on the up. What do I mean, you ask?&lt;/p&gt;
&lt;p&gt;Well I&#039;m not talking about the flying drones dropping bombs evil, nor the snooping computers and spammer/scammer botnet evil, but about everyday coffee, chocolate refreshments vending machine evil. Airport e-check-in evil booths. Ticket vending machine mercenaries. That kind of antisocial behaviour. The military bots are obvious - they were designed to be evil, you expect them to behave like that, they behave like that, they don&#039;t disturb your brainwaves, they just kill or maim you. They have the single-mindedness of missile.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/26.04.2006/evil_machines_not_a_conspiracy_theory_nor_sci_fi_but_reality&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/26.04.2006/evil_machines_not_a_conspiracy_theory_nor_sci_fi_but_reality#comment</comments>
 <category domain="http://dikini.net/tags/analysis">analysis</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <category domain="http://dikini.net/tags/symbiot_news">symbiot news</category>
 <pubDate>Wed, 26 Apr 2006 11:51:55 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">146 at http://dikini.net</guid>
</item>
<item>
 <title>My BOFH sis</title>
 <link>http://dikini.net/24.03.2006/my_bofh_sis</link>
 <description>&lt;p&gt;My sister, it seems, is taking well to the family tradition BOFHing. She is on her way of climbing the career ladder at a net helldesk, which could be a first step towards a proper bofh career. So far so good. But wait! it gets better. She&#039;s the local pc doctor. Helps doctors to mend PCs. Even better. Go sis, go.&lt;/p&gt;
&lt;p&gt;Now. If she could learn the art of remote system annihilation, the one for remote luser annihilation is there, I would recommend her to anyone in need of a proper, naturally taleneted, albeit a bit naive operator.&lt;/p&gt;
&lt;p&gt;And finally, a promise, I&#039;ll continue to monitor her progress.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/24.03.2006/my_bofh_sis&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/24.03.2006/my_bofh_sis#comment</comments>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <category domain="http://dikini.net/tags/sis">sis</category>
 <pubDate>Fri, 24 Mar 2006 11:24:53 -0500</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">140 at http://dikini.net</guid>
</item>
<item>
 <title>Some ways to use saved state with closures in php</title>
 <link>http://dikini.net/25.01.2006/some_ways_to_use_saved_state_with_closures_in_php</link>
 <description>&lt;p&gt;In a &lt;a href=&quot;http://dikini.net/24.01.2006/emulating_closures_in_php&quot;&gt;previous short post&lt;/a&gt; Idescribe a way to emulate closures in php. Using that technique execution environment, otherwise known as a call stack can be saved for future use. This can be put to good use. A couple of patterns or programming techniques could be useful in practice.&lt;/p&gt;
&lt;h3&gt;State pattern&lt;/h3&gt;
&lt;p&gt;A closure represents a state =&amp;gt; implemenation of a state pattern. This is a bit rich. Usually in OO programming the state pattern is implemented by encapsulating different protocols, for denoted states. This is simple to implement by substituting your protocol specification with a different name. Drupal hooks are a good example implementation of this. The following is a simplisting example implementation of a state pattern based on closures. The last argument of the deduced function is the closure itself.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
class function_object {
  var $scope;
  function __get($name) {
    return $this-&amp;gt;$scope-&amp;gt;$name;
  }
  function __call($name,$args) {
    $func =$this-&amp;gt;$state.&quot;_$name&quot;;
    $args[]=$this;
    return call_user_func_args($func,$args);
  }
  function __constructor($scope) {
    $this-&amp;gt;scope=$scope;
  }
  function __clone() {
    $this-&amp;gt;scope = clone($this-&amp;gt;scope);
  }
  function state($state) {
    $this-&amp;gt;state=$state;
  }
  function call() {
    //the function body - do some work
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To save the state for future use, for example as part of an undo cycle:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
  $saved = clone($closure);
&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;Call/cc or call with current continuation in php&lt;/h3&gt;
&lt;p&gt;Closure effectively represent the future of computation. This means that we can say what we want to do, by where we are. Since php doesn&#039;t implement any call stack optimisation, the call/cc style of programming makes sense in a limited number of cases. To use this style of programming we need to redefine our functions to use the continuation&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
 f(x,c) : c(f,x);&lt;br /&gt;
(var, continuation) -&amp;gt; continuation&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
and in php&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
 //the function closure call method&lt;br /&gt;
 ...&lt;br /&gt;
 function call($x, $continuation) {&lt;br /&gt;
   $this-&amp;gt;scope=$continuation; // emulate c(f,x)&lt;br /&gt;
   ...&lt;br /&gt;
   do whatever you want here&lt;br /&gt;
 }&lt;br /&gt;
 ...&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
OK, this is rather crude. In reality this is very limited - it is assumed that the function is defined in a &#039;global&#039; scope, so we are putting it in some exhisting stack. It will be cleaner if the continuation implements the stack assignment, rather than rely on the function.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/25.01.2006/some_ways_to_use_saved_state_with_closures_in_php&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/25.01.2006/some_ways_to_use_saved_state_with_closures_in_php#comment</comments>
 <category domain="http://dikini.net/tags/articles">articles</category>
 <category domain="http://dikini.net/tags/code">code</category>
 <category domain="http://dikini.net/tags/design_patterns">design patterns</category>
 <category domain="http://dikini.net/tags/lisp">lisp</category>
 <category domain="http://dikini.net/tags/php">php</category>
 <category domain="http://dikini.net/tags/programming">programming</category>
 <category domain="http://dikini.net/tags/scheme">scheme</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <category domain="http://dikini.net/taxonomy/term/105">shorts</category>
 <pubDate>Wed, 25 Jan 2006 05:23:50 -0500</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">120 at http://dikini.net</guid>
</item>
<item>
 <title>Emulating closures in PHP</title>
 <link>http://dikini.net/24.01.2006/emulating_closures_in_php</link>
 <description>&lt;blockquote&gt;In programming languages, a closure is an abstraction that combines a function and a special lexical environment bound to that function (scope). The variables in the lexical environment are designed to retain state information between function calls. Unlike garden-variety functions which retain no memory of what happened in previous calls, closures are &lt;strong&gt;capable of storing information across function calls&lt;/strong&gt;.&lt;a href=&quot;http://en.wikipedia.org/wiki/Closure_(computer_science)&quot;&gt;closulres in computer science (wikipedia)&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;PHP doesn&#039;t have closures as an element of the language. What can we do to emulate it?&lt;/p&gt;
&lt;p&gt;We need to be able to encapsulate in one entity scope, state and execution. The most obvious candidate will be a PHP object.&lt;/p&gt;

&lt;p&gt;With the introduction of the __get(), __set() and __call() magic functions for PHP classes, something the manual calls overloading, PHP opens the gate to transparently enhance a class to add variables and methods to an object&#039;s body. We can abuse the __get() to implemet nested scopes. The state is preserved as part of the object body. The default function (call()) is a protocol to add a uniformity of execution between different function objects.&lt;/p&gt;
&lt;code&gt;
class function_object {
  var $scope;
  function __get($name) {
    return $this-&gt;$scope-&gt;$name;
  }
  function __constructor($scope) {
    $this-&gt;scope=$scope;
  }
  function call() {
    //the function body - do some work
  }
}
&lt;/code&gt;

If all $scope objects are function objects we get a closure emulation in PHP. This opens the doors to such fancy ideas as namespaces, modules et.al. This technique opens the possibilities for functional style programming techniques and idioms as delayed evaluation, continuation, ...
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I&#039;ve added &lt;a href=&quot;http://dikini.net/closure&quot;&gt;closures&lt;/a&gt; to my &lt;a href=&quot;http://dikini.net/php_design_patterns&quot;&gt;design patterns collection&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/24.01.2006/emulating_closures_in_php&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/24.01.2006/emulating_closures_in_php#comment</comments>
 <category domain="http://dikini.net/tags/articles">articles</category>
 <category domain="http://dikini.net/tags/code">code</category>
 <category domain="http://dikini.net/tags/design_patterns">design patterns</category>
 <category domain="http://dikini.net/tags/lisp">lisp</category>
 <category domain="http://dikini.net/tags/php">php</category>
 <category domain="http://dikini.net/tags/programming">programming</category>
 <category domain="http://dikini.net/tags/scheme">scheme</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <category domain="http://dikini.net/taxonomy/term/105">shorts</category>
 <pubDate>Tue, 24 Jan 2006 04:03:26 -0500</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">119 at http://dikini.net</guid>
</item>
<item>
 <title>Learning lessons from Lisp  or patterns and languages in PHP</title>
 <link>http://dikini.net/20.01.2006/learning_lessons_from_lisp_or_patterns_and_languages_in_php</link>
 <description>In Lisp and its dialects everything is a first class language construct, that is it can be evaluated and changed from within the language. This gives a few very powerful abstractions, which help in constructing short but still readable programs. There are a few very powerful patterns coming from this single concept. 
&lt;h3&gt;A function is a first class variable. It can be assigned to.&lt;/h3&gt;
This is directly applicable in PHP. Since the php symbol table is a big hash (roughly), you can access the function by it&#039;s name - for example: 
&lt;code&gt;
$func = &#039;a_function&#039;;
$var = $func();
&lt;/code&gt;
&lt;h3&gt;A program is a data structure, a list, so you can manipulate it using the language&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/20.01.2006/learning_lessons_from_lisp_or_patterns_and_languages_in_php&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/20.01.2006/learning_lessons_from_lisp_or_patterns_and_languages_in_php#comment</comments>
 <category domain="http://dikini.net/tags/articles">articles</category>
 <category domain="http://dikini.net/tags/code">code</category>
 <category domain="http://dikini.net/tags/design_patterns">design patterns</category>
 <category domain="http://dikini.net/tags/php">php</category>
 <category domain="http://dikini.net/tags/scheme">scheme</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <pubDate>Thu, 19 Jan 2006 09:48:26 -0500</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">117 at http://dikini.net</guid>
</item>
<item>
 <title>Travelling back from Naples</title>
 <link>http://dikini.net/26.11.2005/travelling_back_from_naples</link>
 <description>&lt;p&gt;Fun. It&#039;s been some time since my last travel. So here we go again. No smoking at Napoli. The airport that is. Nothing to do there. Some IR netbooth. There was wifi, but it did not want to be convinced to cooperate. Maybe I was sleepy. Maybe it was grumpy, don&#039;t know. Yes, the flight was delayed. After some more waiting boarded and to my surprise I was comfortably seated in a first class seat. That meant more legroom and Net I need that.&lt;/p&gt;
&lt;p&gt;Obviosly arrived late at Rome. Some Romans in green jackets tryed to herd me to gate C11. I&#039;ve managed to break away. You see, I&#039;m no sheep. So there I was rushing around the Roman airport looking for gate C11, passing through passport control and stumbling upon a mega queue to board. I was getting that flight! I can&#039;t believe it.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/26.11.2005/travelling_back_from_naples&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/26.11.2005/travelling_back_from_naples#comment</comments>
 <category domain="http://dikini.net/tags/ramblings">ramblings</category>
 <category domain="http://dikini.net/tags/rants">rants</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <category domain="http://dikini.net/tags/trip">trip</category>
 <pubDate>Sat, 26 Nov 2005 11:28:03 -0500</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">92 at http://dikini.net</guid>
</item>
<item>
 <title>Breaking news, geeks shall inherit the Earth</title>
 <link>http://dikini.net/18.11.2005/breaking_news_geeks_shall_inherit_the_earth</link>
 <description>&lt;p&gt;Good morning web.&lt;/p&gt;
&lt;p&gt;It is given. &lt;em&gt;The geeks shall inherit the Earth.&lt;/em&gt; You don&#039;t believe me? How dare you! Here&#039;s some proof.&lt;/p&gt;
&lt;p&gt;Geeks have the extraordinary facility to understand and manipulate the time-space continuum. In fact geeks can break out of it. Haven&#039;t you seen your resident to be bodily there in the office, while partying on Bleepcore 5? But more importantly geeks gan get themseves easily tied up in a time-space flux knot, simply for the fun of breaking out. It&#039;s curiosity which drives them to explore  the new frontiers.&lt;/p&gt;
&lt;p&gt;Geeks can travel dreamland. That&#039;s important. For some bizarre reason, Mother nature played the  monsanto trick on geeks, and not randomly at all, switched on the genes responsible for not being able to distinguish between dreamland, wetland and solidground. So geeks live in all of those at one and the same time.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/18.11.2005/breaking_news_geeks_shall_inherit_the_earth&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/18.11.2005/breaking_news_geeks_shall_inherit_the_earth#comment</comments>
 <category domain="http://dikini.net/tags/cyberpunk">cyberpunk</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <category domain="http://dikini.net/tags/time_space_flux">time-space flux</category>
 <pubDate>Fri, 18 Nov 2005 03:39:46 -0500</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">87 at http://dikini.net</guid>
</item>
<item>
 <title>Once again relations, or the need to focus on smaller parts of the big picture. A rant.</title>
 <link>http://dikini.net/15.11.2005/once_again_relations_or_the_need_to_focus_on_smaller_parts_of_the_big_picture_a_rant</link>
 <description>&lt;p&gt;After reading &lt;a href=&quot;http://coders.co.nz/drupal_development/?q=node/5&quot;&gt;The Need for RDF Linking - Module Proposal&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/node/37556&quot;&gt;RDF Metadata&lt;/a&gt; and &lt;a href=&quot;http://dikini.net/node/53#comment-22&quot;&gt;this comment&lt;/a&gt; I felt the urge to engage in writing this spewage.&lt;/p&gt;
&lt;p&gt;The aim of the relations &quot;system&quot; I&#039;m working is to capture the structure of a relation domain. Nothing more. Not to try to interpret the meaning of a relation, not to try and build ontologies, semantic networks, not to store different metadata, etc... Not at all.&lt;/p&gt;
&lt;p&gt;You might ask why. Well the main reason is that I think that is not a consern for this particular module. I want it to be able to interpret structures well enough, that there is a way to express out of the box more complex things, that we can do now in drupal. As a side effect, we will end up having a library or API with wich we can express things like this thing is a tree. This thing is a graph. This thing is a set of things. this is an ordered set, and the distance between A and B is x. Things like that.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/15.11.2005/once_again_relations_or_the_need_to_focus_on_smaller_parts_of_the_big_picture_a_rant&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/15.11.2005/once_again_relations_or_the_need_to_focus_on_smaller_parts_of_the_big_picture_a_rant#comment</comments>
 <category domain="http://dikini.net/tags/drupal">drupal</category>
 <category domain="http://dikini.net/tags/programming">programming</category>
 <category domain="http://dikini.net/tags/relations">relations</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <category domain="http://dikini.net/tags/theory">theory</category>
 <category domain="http://dikini.net/tags/work_in_progress">work in progress</category>
 <pubDate>Tue, 15 Nov 2005 03:14:48 -0500</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">82 at http://dikini.net</guid>
</item>
<item>
 <title>my sister is nuts</title>
 <link>http://dikini.net/11.11.2005/my_sister_is_nuts</link>
 <description>&lt;p&gt;Well, not really. I love her to bits, but she can drive anyone crazy. &lt;/p&gt;
&lt;p&gt;She&#039;s a reseller, yes kids, webhosting reseller. The poor sysadmins there. They probably regret it. And definitely all their BOFH points are cleared now.&lt;/p&gt;
&lt;p&gt;I can just picture a bearded geek in the ops center, shivering when the phone rings, then shrieking &quot;Noooooooo&quot; a few seconds after he picks up the bloody thing. Beauty.&lt;/p&gt;
</description>
 <comments>http://dikini.net/11.11.2005/my_sister_is_nuts#comment</comments>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <category domain="http://dikini.net/tags/sis">sis</category>
 <pubDate>Fri, 11 Nov 2005 12:12:53 -0500</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">80 at http://dikini.net</guid>
</item>
<item>
 <title>Relations and their domain structures</title>
 <link>http://dikini.net/29.10.2005/relations_and_their_domain_structures</link>
 <description>&lt;p&gt;In this scribble I&#039;ll discuss an implementation of different topological structures, which can be used for indexing different &quot;relation systems&quot;, for example trees for menus, book structures, etc... graphs for caching links between pages.&lt;/p&gt;
&lt;p&gt;We can split the problem into two main subproblems. First, navigation and queries withing a single relation domain. For example local table of contents for a section in a book. Second is higher order or inter-domain queries. For example: given a node, determine the all related nodes, ordering them by their distance from the node, based on taxonomy, their position in a book(s), and their position in the site&#039;s &quot;link web&quot;. We should be able to implement second and hier order based queries, based on the results of these two basic problems.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/29.10.2005/relations_and_their_domain_structures&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/29.10.2005/relations_and_their_domain_structures#comment</comments>
 <category domain="http://dikini.net/tags/articles">articles</category>
 <category domain="http://dikini.net/tags/code">code</category>
 <category domain="http://dikini.net/tags/drupal">drupal</category>
 <category domain="http://dikini.net/tags/programming">programming</category>
 <category domain="http://dikini.net/tags/relations">relations</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <category domain="http://dikini.net/tags/sql">sql</category>
 <category domain="http://dikini.net/tags/theory">theory</category>
 <pubDate>Sat, 29 Oct 2005 12:53:56 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">55 at http://dikini.net</guid>
</item>
<item>
 <title>Going mad talking about relations</title>
 <link>http://dikini.net/26.10.2005/going_mad_talking_about_relations</link>
 <description>&lt;p&gt;This is a very dirty and mathematically not precise  dialogue between me and me on &quot;general&quot; relations in drupal. &lt;/p&gt;
&lt;h3&gt;What is a relation&lt;/h3&gt;
&lt;p&gt;		Something taking the form of &lt;em&gt;(object,predicate,subject)&lt;/em&gt;, or in its general form &lt;em&gt;(objects,predicate,subjects)&lt;/em&gt;. The predicate can be viewed as a label denoting the relation. In a lot of cases, the predicate of a relation is implied.&lt;/p&gt;
&lt;h3&gt;Yes, but what does that mean?&lt;/h3&gt;
&lt;p&gt;                Well, with relations we can express things like &lt;em&gt;X is part of Y&lt;/em&gt; or &lt;em&gt;x,y,z are Y&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Ok, but give me some more real examples&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/26.10.2005/going_mad_talking_about_relations&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/26.10.2005/going_mad_talking_about_relations#comment</comments>
 <category domain="http://dikini.net/tags/drupal">drupal</category>
 <category domain="http://dikini.net/tags/programming">programming</category>
 <category domain="http://dikini.net/tags/relations">relations</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <pubDate>Wed, 26 Oct 2005 05:31:05 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">53 at http://dikini.net</guid>
</item>
<item>
 <title>Of chimps and god and dice</title>
 <link>http://dikini.net/28.09.2005/of_chimps_and_god_and_dice</link>
 <description>&lt;p&gt;I might be bored by this whole evolution vs design cold war going on in the promised land, but bored doesn&#039;t mean I&#039;m not getting annoyed as well.&lt;/p&gt;
&lt;p&gt;washingtonpost.com runs an &lt;a href=&quot;http://www.washingtonpost.com/wp-dyn/content/article/2005/09/25/AR2005092501177.html&quot; title=&quot;New Analyses Bolster Central Tenets of Evolution Theory&quot; rel=&quot;nofollow&quot;&gt;evolution theory story&lt;/a&gt;. Although the research described makes a good point for evolution versus intelligent design, why should we care so much about it. Why these really heated debates?&lt;/p&gt;
&lt;p&gt;In my opinion, the christian crowd should calm down. Nobody wants to stop them believing in God. Do it. Most atheists, humanists, and other assorted non-believers I know are happy with anyone having their personal beliefs, organised or otherwise. Just don&#039;t try to push them down our throats. Don&#039;t try to ban or censor thoughs different from yours. Get a life. Enjoy living, having a family or whatever else you like to do in life. Don&#039;t psyche yourselves up or you will really prove &lt;a href=&quot;http://www.timesonline.co.uk/article/0,,2-1798944,00.html&quot; title=&quot;Societies worse off &amp;#039;when they have God on their side&amp;#039;&quot; rel=&quot;nofollow&quot;&gt;The Times&lt;/a&gt; true.&lt;/p&gt;
&lt;p&gt;It is another matter, if you genuinely debate science, then really use arguments, and not statements. Is there  a point in debating religion. Religion is about belief. The unconditional belief in the exhistence of God, not the possibility of exhistance. That&#039;s why I&#039;m an atheist, I suppose. I don&#039;t believe in the mighty, nor have any need to. I don&#039;t believe in science either. I either check, or simply take the word for it of people whose opinion I trust, scientific theories.&lt;/p&gt;
&lt;p&gt;&lt;q&gt;&quot;God doesn&#039;t play dice&quot;&lt;/q&gt; Yet the quantum theory still stands. And the big E was right.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/28.09.2005/of_chimps_and_god_and_dice&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/28.09.2005/of_chimps_and_god_and_dice#comment</comments>
 <category domain="http://dikini.net/tags/religion">religion</category>
 <category domain="http://dikini.net/tags/science">science</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <pubDate>Wed, 28 Sep 2005 05:01:11 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">26 at http://dikini.net</guid>
</item>
<item>
 <title>Hair@Gate Theatre:</title>
 <link>http://dikini.net/27.09.2005/hair_gate_theatre</link>
 <description>&lt;p&gt;I&#039;ve read in Monday&#039;s Indy about the new production of Hair@Gate Theatre:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Hair has had a radical rethink in Daniel Kramer&#039;s knockout revival of the &quot;American tribal love-rock musical&quot;. &lt;/p&gt;
&lt;p&gt;Instead of Vietnam war, there&#039;s Iraq and the horrors of the occupation. Instead of LBJ, there&#039;s Dubya.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Gives it a four star rating.&lt;/p&gt;
&lt;p&gt;I&#039;m curious. Very curious indeed. I love the original, the film actually. I was too young to be able to have the opportunity to see it live, add to that I was raised in behind-the-iron-curtain Bulgaria, you can see the probability dive.&lt;/p&gt;
&lt;p&gt;Nevertheless, the plight of the hippies, not so strangely enough, stroke a chord with my generation back in BG. It inspired our freedom, not only the make love not war freedom, but a far more deep understanding and acute feeling of freedom - to move, to love, to do what you want to do. You could hear &quot;Let the sun shine&quot; at assorted venues and occasions, from the spontaneous green demos against chlorine pollution in Rousse in the mid-late 80s, to summer work camps, school productions featuring &quot;solidarity&quot; against the victims of imperialism, the Varna lighthouse July[a], to name a few.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/27.09.2005/hair_gate_theatre&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/27.09.2005/hair_gate_theatre#comment</comments>
 <category domain="http://dikini.net/tags/music">music</category>
 <category domain="http://dikini.net/tags/rants">rants</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <pubDate>Tue, 27 Sep 2005 03:06:05 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">22 at http://dikini.net</guid>
</item>
<item>
 <title>Data - gold or tar?</title>
 <link>http://dikini.net/node/16</link>
 <description>&lt;p&gt;It is in the eyes of the beholder,&lt;/p&gt;
&lt;p&gt;Suw Charman of &lt;a href=&quot;http://chocnvodka.blogware.com&quot; title=&quot;Suw&amp;#039;s blog&quot; rel=&quot;nofollow&quot;&gt;chocnkvodka&lt;/a&gt; and &lt;a href=&quot;http://org.suw.org.uk/&quot; title=&quot;Open Rights Group&quot; rel=&quot;nofollow&quot;&gt;ORG&lt;/a&gt; fame &lt;a href=&quot;http://chocnvodka.blogware.com/blog/_archives/2005/9/21/1246030.html&quot; rel=&quot;nofollow&quot;&gt;wrote this&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;You don&#039;t need us to tell you that the mandatory retention of data about every EU citizen&#039;s calls, mobile phone movements, and internet usage would be a bad thing (if you do, check http://www.edri.org/docs/lettertoUKpres.pdf for a joint letter from EDRi and Privacy International to the Council of Ministers on the problems with data retention).&lt;/p&gt;
&lt;p&gt;But it&#039;s happening anyway: the EU Commission just published their proposal to do just that:&lt;br /&gt;
&lt;a href=&quot;http://www.statewatch.org/news/2005/sep/com-data-retention-prop.pdf&quot;&gt;http://www.statewatch.org/news/2005/sep/com-data-retention-prop.pdf&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;While I&#039;m no legal buff, so my thoughts are not nessesarily legally prompt, I&#039;ll attempt to summarise my thoughts on this document below. Overall I&#039;m sceptical about the effectiveness of data retention for fighting crime and terrorism in the modern day and age. Active surveilance measures will work better, but they should be backed by strong protection by the independent judiciary.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dikini.net/node/16&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://dikini.net/node/16#comment</comments>
 <category domain="http://dikini.net/tags/digital_wrongs">digital wrongs</category>
 <category domain="http://dikini.net/tags/rights">rights</category>
 <category domain="http://dikini.net/tags/scribbles">scribbles</category>
 <pubDate>Wed, 21 Sep 2005 08:06:59 -0400</pubDate>
 <dc:creator>vlado</dc:creator>
 <guid isPermaLink="false">16 at http://dikini.net</guid>
</item>
</channel>
</rss>
