<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: RMAC FTW (part 1)</title>
	<atom:link href="http://jmcneese.wordpress.com/2009/04/19/rmac-ftw-part-1/feed/" rel="self" type="application/rss+xml" />
	<link>http://jmcneese.wordpress.com/2009/04/19/rmac-ftw-part-1/</link>
	<description>a periodic excursion into the mind of one of those asshole developers</description>
	<lastBuildDate>Sat, 26 Dec 2009 17:52:26 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Joshua McNeese</title>
		<link>http://jmcneese.wordpress.com/2009/04/19/rmac-ftw-part-1/#comment-82</link>
		<dc:creator>Joshua McNeese</dc:creator>
		<pubDate>Thu, 03 Dec 2009 19:17:43 +0000</pubDate>
		<guid isPermaLink="false">http://jmcneese.wordpress.com/?p=57#comment-82</guid>
		<description>thanks, chris! 

i&#039;ve been pretty slammed with work and extracurricular projects, but i still intend on expanding this.  the files included in the post should give you a (mostly) working example, feel free to hit me up on irc (irc://irc.freenode.net) nick jmcneese for help.</description>
		<content:encoded><![CDATA[<p>thanks, chris! </p>
<p>i&#8217;ve been pretty slammed with work and extracurricular projects, but i still intend on expanding this.  the files included in the post should give you a (mostly) working example, feel free to hit me up on irc (<a href="irc://irc.freenode.net" rel="nofollow">irc://irc.freenode.net</a>) nick jmcneese for help.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christopher Vrooman</title>
		<link>http://jmcneese.wordpress.com/2009/04/19/rmac-ftw-part-1/#comment-81</link>
		<dc:creator>Christopher Vrooman</dc:creator>
		<pubDate>Wed, 02 Dec 2009 04:48:58 +0000</pubDate>
		<guid isPermaLink="false">http://jmcneese.wordpress.com/?p=57#comment-81</guid>
		<description>So... any idea when you&#039;ll be coming out with RMAC FTW, Part 2 of this awesome series? A working example, a Component version? 

Keep up the good work!</description>
		<content:encoded><![CDATA[<p>So&#8230; any idea when you&#8217;ll be coming out with RMAC FTW, Part 2 of this awesome series? A working example, a Component version? </p>
<p>Keep up the good work!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joshua McNeese</title>
		<link>http://jmcneese.wordpress.com/2009/04/19/rmac-ftw-part-1/#comment-80</link>
		<dc:creator>Joshua McNeese</dc:creator>
		<pubDate>Sun, 19 Jul 2009 01:24:23 +0000</pubDate>
		<guid isPermaLink="false">http://jmcneese.wordpress.com/?p=57#comment-80</guid>
		<description>i did it to appease the requirements of the project i was working on. ;)

i will be revisiting this soon, with action-level control, and unlimited groups.  stay tuned.</description>
		<content:encoded><![CDATA[<p>i did it to appease the requirements of the project i was working on. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>i will be revisiting this soon, with action-level control, and unlimited groups.  stay tuned.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James</title>
		<link>http://jmcneese.wordpress.com/2009/04/19/rmac-ftw-part-1/#comment-79</link>
		<dc:creator>James</dc:creator>
		<pubDate>Sun, 19 Jul 2009 01:17:03 +0000</pubDate>
		<guid isPermaLink="false">http://jmcneese.wordpress.com/?p=57#comment-79</guid>
		<description>Why did you redesign this to use the ACL for action-level control, when this system could elegantly control access at both the row- and action-level?  -- Maintaining one system is usually easier than two. Is it just to appease ACL fans?</description>
		<content:encoded><![CDATA[<p>Why did you redesign this to use the ACL for action-level control, when this system could elegantly control access at both the row- and action-level?  &#8212; Maintaining one system is usually easier than two. Is it just to appease ACL fans?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joshua McNeese</title>
		<link>http://jmcneese.wordpress.com/2009/04/19/rmac-ftw-part-1/#comment-78</link>
		<dc:creator>Joshua McNeese</dc:creator>
		<pubDate>Wed, 08 Jul 2009 14:14:55 +0000</pubDate>
		<guid isPermaLink="false">http://jmcneese.wordpress.com/?p=57#comment-78</guid>
		<description>hi jamie,

the driving reason was so that this would be &quot;plug-n-play&quot;, without having to muck up your tables to make it work.

the performance hit on an indexed set of tables when doing a simple join is negligible.  unless you really need that extra .0001 sec, this is really the best bang for your buck.</description>
		<content:encoded><![CDATA[<p>hi jamie,</p>
<p>the driving reason was so that this would be &#8220;plug-n-play&#8221;, without having to muck up your tables to make it work.</p>
<p>the performance hit on an indexed set of tables when doing a simple join is negligible.  unless you really need that extra .0001 sec, this is really the best bang for your buck.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jamie</title>
		<link>http://jmcneese.wordpress.com/2009/04/19/rmac-ftw-part-1/#comment-77</link>
		<dc:creator>Jamie</dc:creator>
		<pubDate>Wed, 08 Jul 2009 14:09:28 +0000</pubDate>
		<guid isPermaLink="false">http://jmcneese.wordpress.com/?p=57#comment-77</guid>
		<description>Hi Joshua,

Thanks for sharing this. I see you went for a polymorphic &quot;permission&quot; model to store all permission data for all models in a single table, rather than add the columns to the original model&#039;s tables themselves, as in the original xaprb implementation and also Martin Radosta&#039;s version.

Just wondering what the thinking was behind this decision and what the performance hit might be?</description>
		<content:encoded><![CDATA[<p>Hi Joshua,</p>
<p>Thanks for sharing this. I see you went for a polymorphic &#8220;permission&#8221; model to store all permission data for all models in a single table, rather than add the columns to the original model&#8217;s tables themselves, as in the original xaprb implementation and also Martin Radosta&#8217;s version.</p>
<p>Just wondering what the thinking was behind this decision and what the performance hit might be?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://jmcneese.wordpress.com/2009/04/19/rmac-ftw-part-1/#comment-75</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Fri, 26 Jun 2009 00:55:59 +0000</pubDate>
		<guid isPermaLink="false">http://jmcneese.wordpress.com/?p=57#comment-75</guid>
		<description>I stand corrected and will try out the code. I was extremely impressed with Baron&#039;s approached and glad that someone (yourself and joe) has taken the initiative to implement the idea in cakephp. I was just having a problem understanding the full benefits of using bits but you&#039;ve cleared it up pretty well.</description>
		<content:encoded><![CDATA[<p>I stand corrected and will try out the code. I was extremely impressed with Baron&#8217;s approached and glad that someone (yourself and joe) has taken the initiative to implement the idea in cakephp. I was just having a problem understanding the full benefits of using bits but you&#8217;ve cleared it up pretty well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joshua McNeese</title>
		<link>http://jmcneese.wordpress.com/2009/04/19/rmac-ftw-part-1/#comment-74</link>
		<dc:creator>Joshua McNeese</dc:creator>
		<pubDate>Thu, 25 Jun 2009 19:29:05 +0000</pubDate>
		<guid isPermaLink="false">http://jmcneese.wordpress.com/?p=57#comment-74</guid>
		<description>thanks for the tip for sourcecode block, btw.  much prettier now.</description>
		<content:encoded><![CDATA[<p>thanks for the tip for sourcecode block, btw.  much prettier now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joshua McNeese</title>
		<link>http://jmcneese.wordpress.com/2009/04/19/rmac-ftw-part-1/#comment-73</link>
		<dc:creator>Joshua McNeese</dc:creator>
		<pubDate>Thu, 25 Jun 2009 19:27:26 +0000</pubDate>
		<guid isPermaLink="false">http://jmcneese.wordpress.com/?p=57#comment-73</guid>
		<description>steve,

&quot;I admit I will have to look more into the behaviour to see how it properly works before dismissing it.&quot;

hey, thanks!  that&#039;s generally the rule of thumb that will prevent getting roasted by the developer of said code. :)

like i said regarding the 32 group limit, feel free to update the behavior accordingly.  one of these days i&#039;ll do it, unless someone beats me to the punch.

one thing to really think hard about:  bits and bitwise operators are not some magic trick that baron conjured up.  they are a very useful and widespread way to pack lots of data into a small space.  the operators allow us to query that data with very little cost.  using bits for permissions has nothing to do with the 32 group limit.  &lt;em&gt;that&lt;/em&gt; limitation is &lt;em&gt;mine&lt;/em&gt;, due to the nature of the project this was built for, as stated in my previous post.  most RBAC systems that are geared for thousands (if not millions) of objects will be geared this way, because it&#039;s simple The Right Way To Do It.  can it be done in another way?  sure.  would the other way work? sure.  is the other way good? (qua simplicity, scalability or performance), not so much.  i mean, while unix permissions are presented in octal format, you are aware they are stored as bits, right?

so, aside from the artificial limitation of this particular implementation in regards to 32/64 groups, what exactly do you see as inflexible about this?</description>
		<content:encoded><![CDATA[<p>steve,</p>
<p>&#8220;I admit I will have to look more into the behaviour to see how it properly works before dismissing it.&#8221;</p>
<p>hey, thanks!  that&#8217;s generally the rule of thumb that will prevent getting roasted by the developer of said code. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>like i said regarding the 32 group limit, feel free to update the behavior accordingly.  one of these days i&#8217;ll do it, unless someone beats me to the punch.</p>
<p>one thing to really think hard about:  bits and bitwise operators are not some magic trick that baron conjured up.  they are a very useful and widespread way to pack lots of data into a small space.  the operators allow us to query that data with very little cost.  using bits for permissions has nothing to do with the 32 group limit.  <em>that</em> limitation is <em>mine</em>, due to the nature of the project this was built for, as stated in my previous post.  most RBAC systems that are geared for thousands (if not millions) of objects will be geared this way, because it&#8217;s simple The Right Way To Do It.  can it be done in another way?  sure.  would the other way work? sure.  is the other way good? (qua simplicity, scalability or performance), not so much.  i mean, while unix permissions are presented in octal format, you are aware they are stored as bits, right?</p>
<p>so, aside from the artificial limitation of this particular implementation in regards to 32/64 groups, what exactly do you see as inflexible about this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://jmcneese.wordpress.com/2009/04/19/rmac-ftw-part-1/#comment-72</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Thu, 25 Jun 2009 19:00:01 +0000</pubDate>
		<guid isPermaLink="false">http://jmcneese.wordpress.com/?p=57#comment-72</guid>
		<description>Thanks for the reply Joshua, 

I admit I will have to look more into the behaviour to see how it properly works before dismissing it. 

However, I do understand the purpose of the behaviour (I&#039;ve read Baron&#039;s post several months back). I just found 32 groups very limiting, it would be appreciated if you can show an implementation of the system with only 1 group owner per object, as is in Unix.

My idea does take more of a performance hit and is not ingenious as Baron&#039;s use of bitwise arithmetic, but I was thinking of flexibility first and performance after. Of course, when that performance hit starts to show, then a revised solution is needed. But just to clarify, what I was advocating was in regard to row-level permissions, not controller/action permissions. So I did understand the purpose. Now thinking of a way to make this both flexible and efficient is something I&#039;ve struggled to find.

On a side note: you should be able to do syntax highlighting on a shared wordpress server. Check out this article on the section &quot;posting source code&quot;: http://support.wordpress.com/code/</description>
		<content:encoded><![CDATA[<p>Thanks for the reply Joshua, </p>
<p>I admit I will have to look more into the behaviour to see how it properly works before dismissing it. </p>
<p>However, I do understand the purpose of the behaviour (I&#8217;ve read Baron&#8217;s post several months back). I just found 32 groups very limiting, it would be appreciated if you can show an implementation of the system with only 1 group owner per object, as is in Unix.</p>
<p>My idea does take more of a performance hit and is not ingenious as Baron&#8217;s use of bitwise arithmetic, but I was thinking of flexibility first and performance after. Of course, when that performance hit starts to show, then a revised solution is needed. But just to clarify, what I was advocating was in regard to row-level permissions, not controller/action permissions. So I did understand the purpose. Now thinking of a way to make this both flexible and efficient is something I&#8217;ve struggled to find.</p>
<p>On a side note: you should be able to do syntax highlighting on a shared wordpress server. Check out this article on the section &#8220;posting source code&#8221;: <a href="http://support.wordpress.com/code/" rel="nofollow">http://support.wordpress.com/code/</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
