<?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/"
		>
<channel>
	<title>Comments for T=Machine</title>
	<atom:link href="http://t-machine.org/index.php/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://t-machine.org</link>
	<description>Internet Gaming, Computer Games, Technology, MMO, and Web 2.0</description>
	<lastBuildDate>Sat, 18 May 2013 13:02:02 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>Comment on Entity System 1: Java/Android by adam</title>
		<link>http://t-machine.org/index.php/2010/05/09/entity-system-1-javaandroid/comment-page-3/#comment-380708</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Sat, 18 May 2013 13:02:02 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=876#comment-380708</guid>
		<description><![CDATA[Updated post with - I think - the correct signatures.

Also: re-written to take advantage of a new plugin I installed that makes code-in-posts MUCH more readable!]]></description>
		<content:encoded><![CDATA[<p>Updated post with &#8211; I think &#8211; the correct signatures.</p>
<p>Also: re-written to take advantage of a new plugin I installed that makes code-in-posts MUCH more readable!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity System 1: Java/Android by Jack Ammo</title>
		<link>http://t-machine.org/index.php/2010/05/09/entity-system-1-javaandroid/comment-page-3/#comment-380372</link>
		<dc:creator>Jack Ammo</dc:creator>
		<pubDate>Sat, 18 May 2013 07:19:31 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=876#comment-380372</guid>
		<description><![CDATA[... sorry I guess it didn&#039;t work post all the 
? extends Component
T extends Component
and T]]></description>
		<content:encoded><![CDATA[<p>&#8230; sorry I guess it didn&#8217;t work post all the<br />
? extends Component<br />
T extends Component<br />
and T</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity System 1: Java/Android by Jack Ammo</title>
		<link>http://t-machine.org/index.php/2010/05/09/entity-system-1-javaandroid/comment-page-3/#comment-380369</link>
		<dc:creator>Jack Ammo</dc:creator>
		<pubDate>Sat, 18 May 2013 07:17:53 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=876#comment-380369</guid>
		<description><![CDATA[it didn&#039;t post all the code properly :( let&#039;s try one more time...
&lt;code&gt;
public class EntitySystemSimple extends BaseEntitySystem
{
    //note that even the Class object is  too. May as well enforce that
    HashMap&lt; Class  , HashMap &gt; componentStores;

    //you only have to write “T extends Component” once at the beginning
    //all the other T’s in the method refer to it, including in the parameter list
    public  T getComponent( Entity e, Class exampleClass )
    {
        HashMap store = componentStores.get( exampleClass );
        
        T result = (T) store.get( e );
        if( result == null ) {
            throw new IllegalArgumentException( &quot;GET FAIL: &quot;+e+&quot; does not possess Component of class\n   missing: &quot;+exampleClass );
        }
        
       return result;
    }
}
&lt;/code&gt;]]></description>
		<content:encoded><![CDATA[<p>it didn&#8217;t post all the code properly :( let&#8217;s try one more time&#8230;<br />
<code><br />
public class EntitySystemSimple extends BaseEntitySystem<br />
{<br />
    //note that even the Class object is  too. May as well enforce that<br />
    HashMap&lt; Class  , HashMap &gt; componentStores;</p>
<p>    //you only have to write “T extends Component” once at the beginning<br />
    //all the other T’s in the method refer to it, including in the parameter list<br />
    public  T getComponent( Entity e, Class exampleClass )<br />
    {<br />
        HashMap store = componentStores.get( exampleClass );</p>
<p>        T result = (T) store.get( e );<br />
        if( result == null ) {<br />
            throw new IllegalArgumentException( "GET FAIL: "+e+" does not possess Component of class\n   missing: "+exampleClass );<br />
        }</p>
<p>       return result;<br />
    }<br />
}<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity System 1: Java/Android by Jack Ammo</title>
		<link>http://t-machine.org/index.php/2010/05/09/entity-system-1-javaandroid/comment-page-3/#comment-380365</link>
		<dc:creator>Jack Ammo</dc:creator>
		<pubDate>Sat, 18 May 2013 07:10:40 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=876#comment-380365</guid>
		<description><![CDATA[I just thought I&#039;d chime in on your EntitySystemSimple class where you wanted your getComponent method signature to be this:

public  T getComponent( Entity e, Class exampleClass )

well you weren&#039;t too far off. I got it to work (read not give compile errors) like this:

public class EntitySystemSimple extends BaseEntitySystem
{
    //note that even the Class object is  too.  May as well enforce that
    HashMap&lt; Class, HashMap &gt; componentStores;

    //you only have to write &quot;T extends Component&quot; once at the beginning
    //all the other T&#039;s in the method refer to it, including in the parameter list
    public  T getComponent( Entity e, Class exampleClass )
    {
        //The rest of the code is the same as how you originally wrote it
        HashMap store = componentStores.get( exampleClass );
        
        T result = (T) store.get( e );
        if( result == null ) {
            throw new IllegalArgumentException( &quot;GET FAIL: &quot;+e+&quot; does not possess Component of class\n   missing: &quot;+exampleClass );
        }
        
       return result;
    }
    ...
}

a call to the getComponent method now  enforces that the Class you give it is a subclass from Component like you wanted.  I hope that helped.]]></description>
		<content:encoded><![CDATA[<p>I just thought I&#8217;d chime in on your EntitySystemSimple class where you wanted your getComponent method signature to be this:</p>
<p>public  T getComponent( Entity e, Class exampleClass )</p>
<p>well you weren&#8217;t too far off. I got it to work (read not give compile errors) like this:</p>
<p>public class EntitySystemSimple extends BaseEntitySystem<br />
{<br />
    //note that even the Class object is  too.  May as well enforce that<br />
    HashMap&lt; Class, HashMap &gt; componentStores;</p>
<p>    //you only have to write &#8220;T extends Component&#8221; once at the beginning<br />
    //all the other T&#8217;s in the method refer to it, including in the parameter list<br />
    public  T getComponent( Entity e, Class exampleClass )<br />
    {<br />
        //The rest of the code is the same as how you originally wrote it<br />
        HashMap store = componentStores.get( exampleClass );</p>
<p>        T result = (T) store.get( e );<br />
        if( result == null ) {<br />
            throw new IllegalArgumentException( &#8220;GET FAIL: &#8220;+e+&#8221; does not possess Component of class\n   missing: &#8220;+exampleClass );<br />
        }</p>
<p>       return result;<br />
    }<br />
    &#8230;<br />
}</p>
<p>a call to the getComponent method now  enforces that the Class you give it is a subclass from Component like you wanted.  I hope that helped.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Why programmers (engineers) don&#8217;t want to work for Google any more&#8230; by Mike Leahy</title>
		<link>http://t-machine.org/index.php/2013/05/11/why-programmers-engineers-dont-want-to-work-for-google-any-more/comment-page-1/#comment-374355</link>
		<dc:creator>Mike Leahy</dc:creator>
		<pubDate>Mon, 13 May 2013 05:06:33 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2359#comment-374355</guid>
		<description><![CDATA[I liked Google until I had to rely on their software; IE Android. This quote from above is fairly succinct, &quot;Google went from being the forefront of modern, healthy, human-centric company culture … to a mid-tier, second-rate excuse for bad practices and &#039;it sucks but we can’t change it&#039; culture.&quot; As Android unfolded and I&#039;ve been developing for it since v1.0 it reminds me of mid-90s engineering practices. I&#039;m still shocked that core Java 5 functionality performance is being ignored. When polled a recognized engineering manager said that back water functionality like annotations is not important over new features.. This blew my mind because modern Java development is annotation dependent. Even if they fixed it now one has to create some workarounds to make it go fast on all versions of Android.]]></description>
		<content:encoded><![CDATA[<p>I liked Google until I had to rely on their software; IE Android. This quote from above is fairly succinct, &#8220;Google went from being the forefront of modern, healthy, human-centric company culture … to a mid-tier, second-rate excuse for bad practices and &#8216;it sucks but we can’t change it&#8217; culture.&#8221; As Android unfolded and I&#8217;ve been developing for it since v1.0 it reminds me of mid-90s engineering practices. I&#8217;m still shocked that core Java 5 functionality performance is being ignored. When polled a recognized engineering manager said that back water functionality like annotations is not important over new features.. This blew my mind because modern Java development is annotation dependent. Even if they fixed it now one has to create some workarounds to make it go fast on all versions of Android.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The new gmail: Downgraded, hated by users by Gwil Harris-Evans</title>
		<link>http://t-machine.org/index.php/2013/03/31/the-new-gmail-downgraded-hated-by-users/comment-page-1/#comment-372788</link>
		<dc:creator>Gwil Harris-Evans</dc:creator>
		<pubDate>Sat, 11 May 2013 17:59:20 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2281#comment-372788</guid>
		<description><![CDATA[It&#039;s horrible- so horrible, counter intuitive, ugly, hard on the eyes etc.- so what should I move to? Ill lose business cos my cards are out there but I really hate this crappy step backwards.
Surely they did some research before dumping this on us?]]></description>
		<content:encoded><![CDATA[<p>It&#8217;s horrible- so horrible, counter intuitive, ugly, hard on the eyes etc.- so what should I move to? Ill lose business cos my cards are out there but I really hate this crappy step backwards.<br />
Surely they did some research before dumping this on us?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The new gmail: Downgraded, hated by users by Matthew Parbs</title>
		<link>http://t-machine.org/index.php/2013/03/31/the-new-gmail-downgraded-hated-by-users/comment-page-1/#comment-371148</link>
		<dc:creator>Matthew Parbs</dc:creator>
		<pubDate>Thu, 09 May 2013 15:29:36 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2281#comment-371148</guid>
		<description><![CDATA[I think it was the threat of a Gmail revolution that prompted Yahoo to increase the storage space parceled to its free email accounts last year. (Yahoo’s paid email at the time, of course, gave storage to spare. It’s an example of how the whiff of corporate competition can benefit end users or consumers.) Who remembers rummaging through our Yahoo email accounts deleting emails only weeks, if not days, old? I think Yahoo copied their color coded warning system of diminishing storage space from the easy-to-comprehend terror levels issued by the federal government. Gmail’s arrival, though, changed this – we were ready for something better. Its search-based organization, something we like to see at ConductSearch.com, figured to be a natural step for email world to take.:`

With kind regards]]></description>
		<content:encoded><![CDATA[<p>I think it was the threat of a Gmail revolution that prompted Yahoo to increase the storage space parceled to its free email accounts last year. (Yahoo’s paid email at the time, of course, gave storage to spare. It’s an example of how the whiff of corporate competition can benefit end users or consumers.) Who remembers rummaging through our Yahoo email accounts deleting emails only weeks, if not days, old? I think Yahoo copied their color coded warning system of diminishing storage space from the easy-to-comprehend terror levels issued by the federal government. Gmail’s arrival, though, changed this – we were ready for something better. Its search-based organization, something we like to see at ConductSearch.com, figured to be a natural step for email world to take.:`</p>
<p>With kind regards</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Apple finally supports Windows 8 by adam</title>
		<link>http://t-machine.org/index.php/2013/03/31/apple-finally-supports-windows-8/comment-page-1/#comment-370329</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Wed, 08 May 2013 17:19:31 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2278#comment-370329</guid>
		<description><![CDATA[Wait, what? Wifi doesn&#039;t work on the plane?!? What century is this anyway?

On topic ... Apple specifically promoted OS X machines as running Windows as a selling point. Then a combination of their cheap-ass purchasing of crappy hardware (implied by ATI: the problem is that Apple knowingly used out-of-date, end-of-life hardware), and (maybe) some problem of how they customized the hardware ... mean that the compatibility that *should* have worked out of the box ... stopped working entirely.]]></description>
		<content:encoded><![CDATA[<p>Wait, what? Wifi doesn&#8217;t work on the plane?!? What century is this anyway?</p>
<p>On topic &#8230; Apple specifically promoted OS X machines as running Windows as a selling point. Then a combination of their cheap-ass purchasing of crappy hardware (implied by ATI: the problem is that Apple knowingly used out-of-date, end-of-life hardware), and (maybe) some problem of how they customized the hardware &#8230; mean that the compatibility that *should* have worked out of the box &#8230; stopped working entirely.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Apple finally supports Windows 8 by John</title>
		<link>http://t-machine.org/index.php/2013/03/31/apple-finally-supports-windows-8/comment-page-1/#comment-370272</link>
		<dc:creator>John</dc:creator>
		<pubDate>Wed, 08 May 2013 15:59:08 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2278#comment-370272</guid>
		<description><![CDATA[ATI were indeed known a long time ago for absolute crap drivers.  Better cards, crappy drivers.  That reputation is pretty old though and they got better many years ago.  Still, many old time gamers recall how bad it was.

But come on Adam, complaining about how long it takes Apple to provide support for another company&#039;s OS is a bit unfair.  How long has it taken for Microsoft to build in support for installing OS X? Oh right, they haven&#039;t.

Apple goes above and beyond already by making it easy to run Windows side by side on a Mac.  Complaining about how long it takes it like being that guy who complains WiFi isn&#039;t working on the plane :)]]></description>
		<content:encoded><![CDATA[<p>ATI were indeed known a long time ago for absolute crap drivers.  Better cards, crappy drivers.  That reputation is pretty old though and they got better many years ago.  Still, many old time gamers recall how bad it was.</p>
<p>But come on Adam, complaining about how long it takes Apple to provide support for another company&#8217;s OS is a bit unfair.  How long has it taken for Microsoft to build in support for installing OS X? Oh right, they haven&#8217;t.</p>
<p>Apple goes above and beyond already by making it easy to run Windows side by side on a Mac.  Complaining about how long it takes it like being that guy who complains WiFi isn&#8217;t working on the plane :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity Systems: what makes good Components? good Entities? by Mike Leahy</title>
		<link>http://t-machine.org/index.php/2012/03/16/entity-systems-what-makes-good-components-good-entities/comment-page-2/#comment-368618</link>
		<dc:creator>Mike Leahy</dc:creator>
		<pubDate>Tue, 07 May 2013 02:46:50 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=1832#comment-368618</guid>
		<description><![CDATA[@SugarRichard
*&quot;What – in most basic terms – qualifies as an entity system in your opinion?&quot;

A focus on implicit composition / the implicit has-a relationship as the central organization method is the key to component oriented programming and an ES may be considered an implementation of such an approach.

*&quot;Of course a Java implementation is object oriented, Java enforces an OOP framework. This is unfortunate (in the context of ES), because it seems to require a good deal of creativity to circumvent language restrictions.&quot;

*&quot;OOP, COP are nothing more than methods used to establish order in a system, and are concepts that transcend language.&quot;

While Java is traditionally OOP aligned in what the language allows in regard to architecture it was Java 1.5 / 5 that opened the door with generics. In particular generic methods. Advanced use of generics isn&#039;t something that hit mainstream Java development per se outside of maybe adding typed collections to ones everyday usage.

Dynamic and functional languages are more suited out of the box for component oriented programming and even allow more exotic typing aspects like duck typing. However, the nice thing about Java is that it is strongly typed and one can get the best of a functional _like_ situation via COP techniques. I also prefer the superior IDE support which comes with a strongly typed language.

A specific API that is implemented by generic methods is how one creates a component architecture / ES with Java. While everything still is an Object the COP API allows one to break away from structuring ones code via traditional OOP. 

*&quot; One could use COP to impose a “traditional OOP” inheritance hierarchy.&quot;

Except without the inheritance and explicit composition; the corner stones of traditional OOP.

The most common way of structuring an inheritance _like_ operation with COP is &quot;(implicit) extension by iteration&quot;.  This however is not a 1:1 direct replacement or the same thing as inheritance.

*&quot; In my view, the client/server relationship isn’t any different than child/parent or sub/super class relationships.&quot;

Not really unless one is taking an extremely loose view as in a whatever goes mentality. IE these two different architecture models have relationships between each other therefore they are equal... Nope... 

*&quot;The key concept is abstraction – “Avoiding the direct use of memory references.” is intentionally vague – how exactly this is accomplished doesn’t matter.&quot;

Yes, the key is implicit composition which is a particular type of abstraction usually involves a query interface of some sort whether a GUID or in the case of the COP API I&#039;ve made and other ES implementations in Java a query interface that is strongly typed via Class references. 

*&quot;So no, MINIX is not an ES, but I believe it’s architecture and systems are sufficently similar to make it a useful reference.&quot;

In a loose manner to some respect yes, but only insofar that MINIX is a microkernal architecture, IE based on component architecture techniques. 

An ES as implemented in Adam&#039;s efforts and other reference implementations such as Artemis do tightly tie the component architecture aspects to a specific more game-centric context.

You might have seen me advocate strongly to make the component architecture implementation a superset of an ES because it is very useful for many other purposes beyond a game context. 

In that regard MINIX has more similarities to my larger work with TyphonRT which provides a stable middleware runtime across diverse hardware and OS versions. My efforts also do contain a specific ES implementation, but it is based on a generalized component architecture vs a game-centric implementation.

-----

I do believe the client / server comparison is where things got derailed in the discussion. Component architectures have been around for a while. They can be implemented in traditional OOP, but implicit composition or the preferred way of pulling them off in Java especially for ES requires generic methods.]]></description>
		<content:encoded><![CDATA[<p>@SugarRichard<br />
*&#8221;What – in most basic terms – qualifies as an entity system in your opinion?&#8221;</p>
<p>A focus on implicit composition / the implicit has-a relationship as the central organization method is the key to component oriented programming and an ES may be considered an implementation of such an approach.</p>
<p>*&#8221;Of course a Java implementation is object oriented, Java enforces an OOP framework. This is unfortunate (in the context of ES), because it seems to require a good deal of creativity to circumvent language restrictions.&#8221;</p>
<p>*&#8221;OOP, COP are nothing more than methods used to establish order in a system, and are concepts that transcend language.&#8221;</p>
<p>While Java is traditionally OOP aligned in what the language allows in regard to architecture it was Java 1.5 / 5 that opened the door with generics. In particular generic methods. Advanced use of generics isn&#8217;t something that hit mainstream Java development per se outside of maybe adding typed collections to ones everyday usage.</p>
<p>Dynamic and functional languages are more suited out of the box for component oriented programming and even allow more exotic typing aspects like duck typing. However, the nice thing about Java is that it is strongly typed and one can get the best of a functional _like_ situation via COP techniques. I also prefer the superior IDE support which comes with a strongly typed language.</p>
<p>A specific API that is implemented by generic methods is how one creates a component architecture / ES with Java. While everything still is an Object the COP API allows one to break away from structuring ones code via traditional OOP. </p>
<p>*&#8221; One could use COP to impose a “traditional OOP” inheritance hierarchy.&#8221;</p>
<p>Except without the inheritance and explicit composition; the corner stones of traditional OOP.</p>
<p>The most common way of structuring an inheritance _like_ operation with COP is &#8220;(implicit) extension by iteration&#8221;.  This however is not a 1:1 direct replacement or the same thing as inheritance.</p>
<p>*&#8221; In my view, the client/server relationship isn’t any different than child/parent or sub/super class relationships.&#8221;</p>
<p>Not really unless one is taking an extremely loose view as in a whatever goes mentality. IE these two different architecture models have relationships between each other therefore they are equal&#8230; Nope&#8230; </p>
<p>*&#8221;The key concept is abstraction – “Avoiding the direct use of memory references.” is intentionally vague – how exactly this is accomplished doesn’t matter.&#8221;</p>
<p>Yes, the key is implicit composition which is a particular type of abstraction usually involves a query interface of some sort whether a GUID or in the case of the COP API I&#8217;ve made and other ES implementations in Java a query interface that is strongly typed via Class references. </p>
<p>*&#8221;So no, MINIX is not an ES, but I believe it’s architecture and systems are sufficently similar to make it a useful reference.&#8221;</p>
<p>In a loose manner to some respect yes, but only insofar that MINIX is a microkernal architecture, IE based on component architecture techniques. </p>
<p>An ES as implemented in Adam&#8217;s efforts and other reference implementations such as Artemis do tightly tie the component architecture aspects to a specific more game-centric context.</p>
<p>You might have seen me advocate strongly to make the component architecture implementation a superset of an ES because it is very useful for many other purposes beyond a game context. </p>
<p>In that regard MINIX has more similarities to my larger work with TyphonRT which provides a stable middleware runtime across diverse hardware and OS versions. My efforts also do contain a specific ES implementation, but it is based on a generalized component architecture vs a game-centric implementation.</p>
<p>&#8212;&#8211;</p>
<p>I do believe the client / server comparison is where things got derailed in the discussion. Component architectures have been around for a while. They can be implemented in traditional OOP, but implicit composition or the preferred way of pulling them off in Java especially for ES requires generic methods.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The new gmail: Downgraded, hated by users by T. Oliver</title>
		<link>http://t-machine.org/index.php/2013/03/31/the-new-gmail-downgraded-hated-by-users/comment-page-1/#comment-368182</link>
		<dc:creator>T. Oliver</dc:creator>
		<pubDate>Mon, 06 May 2013 14:33:07 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2281#comment-368182</guid>
		<description><![CDATA[Agreed, the replacement Gmail &quot;New Look&quot; is nonsense, actually crap.  I attempted to look for a replacement email, more to do, and I will settle on another away from the Google silliness in hand right now.  This is change for change sake, no amount of BS from Google will explain it away.  If this is to be fixed, Google has to offer simple retreat, permanently.  For those who want this junk, have at it!

T. Oliver]]></description>
		<content:encoded><![CDATA[<p>Agreed, the replacement Gmail &#8220;New Look&#8221; is nonsense, actually crap.  I attempted to look for a replacement email, more to do, and I will settle on another away from the Google silliness in hand right now.  This is change for change sake, no amount of BS from Google will explain it away.  If this is to be fixed, Google has to offer simple retreat, permanently.  For those who want this junk, have at it!</p>
<p>T. Oliver</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Yahoo&#8217;s &#8220;unusual activity&#8221; detector&#8230; by Mark</title>
		<link>http://t-machine.org/index.php/2013/05/06/yahoos-unusual-activity-detector/comment-page-1/#comment-368155</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Mon, 06 May 2013 13:55:02 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2355#comment-368155</guid>
		<description><![CDATA[I&#039;ll be sticking with google for a few reasons:

1. Google has two-phase auth. Finding out that someone has successfully logged in isn&#039;t much good if they&#039;ve... already done it, changed your password &amp; security question and locked you out.

2. Google&#039;s spam detection runs rings around Yahoo. I have an old yahoo account I periodically log into. It&#039;s absolutely choked with tens of thousands of spam emails! My google account receives a handful of successful spam mails every month.

The only downside to google is the aforementioned UI changes and the faceless nature of the company. I can&#039;t really imagine having to reclaim my account if something goes wrong. It&#039;ll be a ticket floating through a pipe in a maze somewhere.]]></description>
		<content:encoded><![CDATA[<p>I&#8217;ll be sticking with google for a few reasons:</p>
<p>1. Google has two-phase auth. Finding out that someone has successfully logged in isn&#8217;t much good if they&#8217;ve&#8230; already done it, changed your password &amp; security question and locked you out.</p>
<p>2. Google&#8217;s spam detection runs rings around Yahoo. I have an old yahoo account I periodically log into. It&#8217;s absolutely choked with tens of thousands of spam emails! My google account receives a handful of successful spam mails every month.</p>
<p>The only downside to google is the aforementioned UI changes and the faceless nature of the company. I can&#8217;t really imagine having to reclaim my account if something goes wrong. It&#8217;ll be a ticket floating through a pipe in a maze somewhere.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Skyrim level-design: transcript (+ notes) from GDC 2013 talk by adam</title>
		<link>http://t-machine.org/index.php/2013/05/04/skyrim-level-design-transcript-notes-from-gdc-2013-talk/comment-page-1/#comment-367984</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Mon, 06 May 2013 09:19:45 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2350#comment-367984</guid>
		<description><![CDATA[It&#039;s defined in the linked article.

What they call &quot;kit based&quot; is the 30-year-old technique of &quot;build a game level by assembling lego-like smaller (re-usable) pieces&quot;.]]></description>
		<content:encoded><![CDATA[<p>It&#8217;s defined in the linked article.</p>
<p>What they call &#8220;kit based&#8221; is the 30-year-old technique of &#8220;build a game level by assembling lego-like smaller (re-usable) pieces&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by adam</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-367982</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Mon, 06 May 2013 09:17:54 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-367982</guid>
		<description><![CDATA[@Yehuda

I&#039;m not sure what you&#039;re trying to achieve here. If a layer is not CAShapeLayer, then it has no &quot;shape&quot; and cannot be filled anyway - setting a fill colour would be impossible. Have you checked what class your CALayer actually is ? CALayer is merely the &quot;root&quot; class of all CA...something...Layer classes.

More generally ... the answer to all these problems is &quot;read the Apple docs&quot;. Apple&#039;s CoreAnimation library (c.f. the docs links I&#039;ve already posted) has extensive docs and features on pretty much everything you could ever want to do.]]></description>
		<content:encoded><![CDATA[<p>@Yehuda</p>
<p>I&#8217;m not sure what you&#8217;re trying to achieve here. If a layer is not CAShapeLayer, then it has no &#8220;shape&#8221; and cannot be filled anyway &#8211; setting a fill colour would be impossible. Have you checked what class your CALayer actually is ? CALayer is merely the &#8220;root&#8221; class of all CA&#8230;something&#8230;Layer classes.</p>
<p>More generally &#8230; the answer to all these problems is &#8220;read the Apple docs&#8221;. Apple&#8217;s CoreAnimation library (c.f. the docs links I&#8217;ve already posted) has extensive docs and features on pretty much everything you could ever want to do.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by Yehuda Cohen</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-367959</link>
		<dc:creator>Yehuda Cohen</dc:creator>
		<pubDate>Mon, 06 May 2013 08:46:19 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-367959</guid>
		<description><![CDATA[Not sure if this is a work around for Kevin&#039;s question regarding changing the fill color, but I was running into a similar issue, and ended up using a mask:

		SVGKImage *corn = [SVGKImage imageNamed:@&quot;Corn.svg&quot;];
		CALayer *layer = [corn layerWithIdentifier:@&quot;Layer_1&quot;];
		
		UIView *viewToMask = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
		viewToMask.layer.backgroundColor = [UIColor darkGrayColor].CGColor;
		viewToMask.layer.mask = layer;
		[self.view addSubview:viewToMask];

I tried changing the &quot;fillColor&quot; of the corn&#039;s CALayer, but only CAShapeLayer has this attribute.

Is there a better way of changing the fill color for the image without using the mask?]]></description>
		<content:encoded><![CDATA[<p>Not sure if this is a work around for Kevin&#8217;s question regarding changing the fill color, but I was running into a similar issue, and ended up using a mask:</p>
<p>		SVGKImage *corn = [SVGKImage imageNamed:@"Corn.svg"];<br />
		CALayer *layer = [corn layerWithIdentifier:@"Layer_1"];</p>
<p>		UIView *viewToMask = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];<br />
		viewToMask.layer.backgroundColor = [UIColor darkGrayColor].CGColor;<br />
		viewToMask.layer.mask = layer;<br />
		[self.view addSubview:viewToMask];</p>
<p>I tried changing the &#8220;fillColor&#8221; of the corn&#8217;s CALayer, but only CAShapeLayer has this attribute.</p>
<p>Is there a better way of changing the fill color for the image without using the mask?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Skyrim level-design: transcript (+ notes) from GDC 2013 talk by membersheep</title>
		<link>http://t-machine.org/index.php/2013/05/04/skyrim-level-design-transcript-notes-from-gdc-2013-talk/comment-page-1/#comment-367943</link>
		<dc:creator>membersheep</dc:creator>
		<pubDate>Mon, 06 May 2013 08:08:48 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2350#comment-367943</guid>
		<description><![CDATA[Nice and interesting article, but something is not clear to me: what do you mean by kit-based approach? I&#039;m not very familiar with game dev terminology, expecially with the less technical part.
thanks!]]></description>
		<content:encoded><![CDATA[<p>Nice and interesting article, but something is not clear to me: what do you mean by kit-based approach? I&#8217;m not very familiar with game dev terminology, expecially with the less technical part.<br />
thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by Joyce</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-366569</link>
		<dc:creator>Joyce</dc:creator>
		<pubDate>Sat, 04 May 2013 11:51:56 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-366569</guid>
		<description><![CDATA[Adam,
Thanks for your quick response! It helps me a lot!]]></description>
		<content:encoded><![CDATA[<p>Adam,<br />
Thanks for your quick response! It helps me a lot!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by adam</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-366484</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Sat, 04 May 2013 09:52:16 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-366484</guid>
		<description><![CDATA[Cast it to CAShapeLayer, which has a .path property. Thats a CGPath with all the points, lines, curves.

Apple&#039;s CGPath cant be edited directly - you have to write your own code to clone it / convert it to a sensible format. I&#039;ve got code for that but its commercial/private , not part of SVGKit.]]></description>
		<content:encoded><![CDATA[<p>Cast it to CAShapeLayer, which has a .path property. Thats a CGPath with all the points, lines, curves.</p>
<p>Apple&#8217;s CGPath cant be edited directly &#8211; you have to write your own code to clone it / convert it to a sensible format. I&#8217;ve got code for that but its commercial/private , not part of SVGKit.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by Joyce</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-366452</link>
		<dc:creator>Joyce</dc:creator>
		<pubDate>Sat, 04 May 2013 08:56:39 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-366452</guid>
		<description><![CDATA[Hi Adam!
I have encountered some problems while using SVGKit for a map in GIS. 
I have a SVGKLayeredImage displayed correctly. Now I want to edit the CALayer objects directly , as you mentioned before, but CALayer frame is a rectangle while what I need to edit probably is a polygon, how can I do this while using CALayer?
Thanks!]]></description>
		<content:encoded><![CDATA[<p>Hi Adam!<br />
I have encountered some problems while using SVGKit for a map in GIS.<br />
I have a SVGKLayeredImage displayed correctly. Now I want to edit the CALayer objects directly , as you mentioned before, but CALayer frame is a rectangle while what I need to edit probably is a polygon, how can I do this while using CALayer?<br />
Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by adam</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-365350</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Fri, 03 May 2013 09:02:32 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-365350</guid>
		<description><![CDATA[That might be a bug for the &quot;fill&quot; attribute, sorry. DOM attributes are a recent addition, so they may have bugs that haven&#039;t been discovered yet.

In many cases, it&#039;s easier to leave the DOM alone, and just edit the CALayer objects directly. For each SVGElement there is a CALayer object in the &quot;newCALayerTree&quot; that should have the same ID. If you look at the demo project, and search the source code for &quot;monkey&quot;, the bit of code that animates the monkey shows how to find a specific CALayer, I think]]></description>
		<content:encoded><![CDATA[<p>That might be a bug for the &#8220;fill&#8221; attribute, sorry. DOM attributes are a recent addition, so they may have bugs that haven&#8217;t been discovered yet.</p>
<p>In many cases, it&#8217;s easier to leave the DOM alone, and just edit the CALayer objects directly. For each SVGElement there is a CALayer object in the &#8220;newCALayerTree&#8221; that should have the same ID. If you look at the demo project, and search the source code for &#8220;monkey&#8221;, the bit of code that animates the monkey shows how to find a specific CALayer, I think</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by Kevin</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-365205</link>
		<dc:creator>Kevin</dc:creator>
		<pubDate>Fri, 03 May 2013 05:49:59 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-365205</guid>
		<description><![CDATA[Hi!
Thanks for your last answer ! 
I change one tag&#039;s fill attribute and it works,  but I wonder how could it be shown on the screen ? 
I take the steps you have provided for John, but I can not get what I want , can you give me more direction?

    NSString* tagToFind = @&quot;LWPOLYLINE&quot;;
    Element * element = [buildingImage.DOMDocument getElementById:tagToFind];    
    NodeList *elementList = [element getElementsByTagName:@&quot;rect&quot;];
    for( Element* domElement in elementList )
    {
        SVGElement* svgElement = (SVGElement*) domElement;
        NSLog(@&quot;before change:%@&quot;,[svgElement getAttributeNode:@&quot;fill&quot;].nodeValue);
        [[svgElement getAttributeNode:@&quot;fill&quot;] setNodeValue:@&quot;#000000&quot;];
        NSLog(@&quot;after change:%@&quot;,[svgElement getAttributeNode:@&quot;fill&quot;].nodeValue);
    }
    
    CALayer * myNewRootLayer = [buildingImage newCALayerTree];
    
    [[self.view layer] addSublayer:myNewRootLayer];]]></description>
		<content:encoded><![CDATA[<p>Hi!<br />
Thanks for your last answer !<br />
I change one tag&#8217;s fill attribute and it works,  but I wonder how could it be shown on the screen ?<br />
I take the steps you have provided for John, but I can not get what I want , can you give me more direction?</p>
<p>    NSString* tagToFind = @&#8221;LWPOLYLINE&#8221;;<br />
    Element * element = [buildingImage.DOMDocument getElementById:tagToFind];<br />
    NodeList *elementList = [element getElementsByTagName:@"rect"];<br />
    for( Element* domElement in elementList )<br />
    {<br />
        SVGElement* svgElement = (SVGElement*) domElement;<br />
        NSLog(@&#8221;before change:%@&#8221;,[svgElement getAttributeNode:@"fill"].nodeValue);<br />
        [[svgElement getAttributeNode:@"fill"] setNodeValue:@&#8221;#000000&#8243;];<br />
        NSLog(@&#8221;after change:%@&#8221;,[svgElement getAttributeNode:@"fill"].nodeValue);<br />
    }</p>
<p>    CALayer * myNewRootLayer = [buildingImage newCALayerTree];</p>
<p>    [[self.view layer] addSublayer:myNewRootLayer];</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by adam</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-364110</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Thu, 02 May 2013 09:59:42 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-364110</guid>
		<description><![CDATA[@Kevin

https://developer.apple.com/library/mac/#documentation/cocoa/conceptual/coreanimation_guide/introduction/introduction.html]]></description>
		<content:encoded><![CDATA[<p>@Kevin</p>
<p><a href="https://developer.apple.com/library/mac/#documentation/cocoa/conceptual/coreanimation_guide/introduction/introduction.html" rel="nofollow">https://developer.apple.com/library/mac/#documentation/cocoa/conceptual/coreanimation_guide/introduction/introduction.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by Kevin</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-364096</link>
		<dc:creator>Kevin</dc:creator>
		<pubDate>Thu, 02 May 2013 09:49:17 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-364096</guid>
		<description><![CDATA[Hi!
 I have the same  as John mentioned before,  which is &quot;I want to change some shapes after rendering. For example if i click a shape i want it to become red.&quot; 
But as a new programmer of iOS, could you give more specific answer about this? 
Thank you!]]></description>
		<content:encoded><![CDATA[<p>Hi!<br />
 I have the same  as John mentioned before,  which is &#8220;I want to change some shapes after rendering. For example if i click a shape i want it to become red.&#8221;<br />
But as a new programmer of iOS, could you give more specific answer about this?<br />
Thank you!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity Systems are the future of MMOG development &#8211; Part 1 by C# Artemis Entity System Tutorial &#124; Ploobs</title>
		<link>http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/comment-page-1/#comment-361162</link>
		<dc:creator>C# Artemis Entity System Tutorial &#124; Ploobs</dc:creator>
		<pubDate>Mon, 29 Apr 2013 23:17:32 +0000</pubDate>
		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/#comment-361162</guid>
		<description><![CDATA[[...] Entity Systems are the future of MMOG development [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Entity Systems are the future of MMOG development [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity System 1: Java/Android by adam</title>
		<link>http://t-machine.org/index.php/2010/05/09/entity-system-1-javaandroid/comment-page-3/#comment-360131</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Mon, 29 Apr 2013 08:36:17 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=876#comment-360131</guid>
		<description><![CDATA[re: &quot;SelectableComponent&quot; - depends entirely on your game. If you have lots of things selected at once, it might help your code to have BOTH (so you can easily check &quot;what&#039;s selectable&quot; and also easily check &quot;what&#039;s currently selected&quot;).

If you only select one thing at once, then a SelectableComponent is probably enough, and you simply store the &quot;current selected unit&quot; inside the System that deals with mouseclicks and selection etc.]]></description>
		<content:encoded><![CDATA[<p>re: &#8220;SelectableComponent&#8221; &#8211; depends entirely on your game. If you have lots of things selected at once, it might help your code to have BOTH (so you can easily check &#8220;what&#8217;s selectable&#8221; and also easily check &#8220;what&#8217;s currently selected&#8221;).</p>
<p>If you only select one thing at once, then a SelectableComponent is probably enough, and you simply store the &#8220;current selected unit&#8221; inside the System that deals with mouseclicks and selection etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity System 1: Java/Android by adam</title>
		<link>http://t-machine.org/index.php/2010/05/09/entity-system-1-javaandroid/comment-page-3/#comment-360128</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Mon, 29 Apr 2013 08:34:27 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=876#comment-360128</guid>
		<description><![CDATA[&quot;Sound&quot; is an interesting one.

For simple examples, you might think of sounds as &quot;one-off events&quot;. But for most games, sounds are simply a form of Animation: they have a timeline, a current time-offset, a state (playing/paused/etc), and triggers for &quot;do stuff as soon as it finishes&quot;.

e.g. when you pause the game, you want your explosion sound effect to pause, right? Because when you un-pause it, you want the animation + sound to resume from where they were.

Given that animations *always* need complex state, unless you have a very very simple game ... you can expect to have at least one component dedicated to them, maybe several.

(e.g. you could have a general &quot;Animatable&quot; component which stores stuff like &quot;duration, starttime, currenttime, etc&quot; ... and a &quot;VisualAnimation&quot; which has info for animating the graphics (uses the Animatable to handle the core animation stuff), and an &quot;AuralAnimation&quot; that has info for playing the sound(s).]]></description>
		<content:encoded><![CDATA[<p>&#8220;Sound&#8221; is an interesting one.</p>
<p>For simple examples, you might think of sounds as &#8220;one-off events&#8221;. But for most games, sounds are simply a form of Animation: they have a timeline, a current time-offset, a state (playing/paused/etc), and triggers for &#8220;do stuff as soon as it finishes&#8221;.</p>
<p>e.g. when you pause the game, you want your explosion sound effect to pause, right? Because when you un-pause it, you want the animation + sound to resume from where they were.</p>
<p>Given that animations *always* need complex state, unless you have a very very simple game &#8230; you can expect to have at least one component dedicated to them, maybe several.</p>
<p>(e.g. you could have a general &#8220;Animatable&#8221; component which stores stuff like &#8220;duration, starttime, currenttime, etc&#8221; &#8230; and a &#8220;VisualAnimation&#8221; which has info for animating the graphics (uses the Animatable to handle the core animation stuff), and an &#8220;AuralAnimation&#8221; that has info for playing the sound(s).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity System 1: Java/Android by Jan</title>
		<link>http://t-machine.org/index.php/2010/05/09/entity-system-1-javaandroid/comment-page-3/#comment-360092</link>
		<dc:creator>Jan</dc:creator>
		<pubDate>Mon, 29 Apr 2013 07:52:40 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=876#comment-360092</guid>
		<description><![CDATA[Hey Adam,
i&#039;ve got some more questions :)
I&#039;m really unsure about these things beacause I&#039;m nnot sure if i don&#039;t understand some fundamental stuff of ES.

1)How often are the methods addCompontent/removeComponent used (not in the creation of an entity)? (all the time or just a few times)
I ask this since the following question are based on this.

2)An entity can play different  sounds but I don&#039;t know how i should manage them (same for different movements).
- One sound component which holds all sounds the enitity can play and an field which says which sound should be played.
- For each sound a seperate component which is added as soon as it should be played and is removed if it has been played (for example when the unit shoots)
- If you have an attack sound is it better to &#039;save&#039; the sound in the attack component?

3) How should I implement the selection of a unit:
- SelectableComponent with an boolean field which says if its selected or add a isSelectedComponent as sson as the entity is selected and will be removed if its unselected?

4)Is it possible that all entity posses the same component like a PositionComponent?

I changed the entites now back into integers only. Before I had an field for the bitValues of all components an entity possess for efficient look up. This restricted my  total number of different components to 64 (long value) what was quite annoying.
5) How would you search for entities which possess more than 1 components (let&#039;s say components x,y and z) in an efficient way? (add a component bitValueComponent instead of the field i used? or take all entities of each component and search in the one with the least entries)
6)Is there a way to bypass this restriction of 64 components and still have good performance for look up?

big thanks in advance,
Jan]]></description>
		<content:encoded><![CDATA[<p>Hey Adam,<br />
i&#8217;ve got some more questions :)<br />
I&#8217;m really unsure about these things beacause I&#8217;m nnot sure if i don&#8217;t understand some fundamental stuff of ES.</p>
<p>1)How often are the methods addCompontent/removeComponent used (not in the creation of an entity)? (all the time or just a few times)<br />
I ask this since the following question are based on this.</p>
<p>2)An entity can play different  sounds but I don&#8217;t know how i should manage them (same for different movements).<br />
- One sound component which holds all sounds the enitity can play and an field which says which sound should be played.<br />
- For each sound a seperate component which is added as soon as it should be played and is removed if it has been played (for example when the unit shoots)<br />
- If you have an attack sound is it better to &#8216;save&#8217; the sound in the attack component?</p>
<p>3) How should I implement the selection of a unit:<br />
- SelectableComponent with an boolean field which says if its selected or add a isSelectedComponent as sson as the entity is selected and will be removed if its unselected?</p>
<p>4)Is it possible that all entity posses the same component like a PositionComponent?</p>
<p>I changed the entites now back into integers only. Before I had an field for the bitValues of all components an entity possess for efficient look up. This restricted my  total number of different components to 64 (long value) what was quite annoying.<br />
5) How would you search for entities which possess more than 1 components (let&#8217;s say components x,y and z) in an efficient way? (add a component bitValueComponent instead of the field i used? or take all entities of each component and search in the one with the least entries)<br />
6)Is there a way to bypass this restriction of 64 components and still have good performance for look up?</p>
<p>big thanks in advance,<br />
Jan</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8220;We are a compromised profession&#8221; (Game Designers) by Den</title>
		<link>http://t-machine.org/index.php/2013/03/20/we-are-a-compromised-profession-game-designers/comment-page-1/#comment-357260</link>
		<dc:creator>Den</dc:creator>
		<pubDate>Fri, 26 Apr 2013 14:21:40 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2266#comment-357260</guid>
		<description><![CDATA[Perhaps they should pick up some writing/sketching/coding/business skills instead of complaining. Otherwise it is indeed easy to come across as an &quot;ideas guy&quot;. Also artists have portfolios, developers have pet projects, so designers should have a gallery of prototypes.]]></description>
		<content:encoded><![CDATA[<p>Perhaps they should pick up some writing/sketching/coding/business skills instead of complaining. Otherwise it is indeed easy to come across as an &#8220;ideas guy&#8221;. Also artists have portfolios, developers have pet projects, so designers should have a gallery of prototypes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The new gmail: Downgraded, hated by users by omeg</title>
		<link>http://t-machine.org/index.php/2013/03/31/the-new-gmail-downgraded-hated-by-users/comment-page-1/#comment-351220</link>
		<dc:creator>omeg</dc:creator>
		<pubDate>Mon, 22 Apr 2013 11:54:24 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2281#comment-351220</guid>
		<description><![CDATA[I&#039;ve used gmail&#039;s web interface for a while. Then I&#039;ve set my normal email client up with IMAP access to gmail and never looked back.]]></description>
		<content:encoded><![CDATA[<p>I&#8217;ve used gmail&#8217;s web interface for a while. Then I&#8217;ve set my normal email client up with IMAP access to gmail and never looked back.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity Systems are the future of MMOG development &#8211; Part 1 by Using an Entity System Part 1 &#124; Exploring Lines</title>
		<link>http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/comment-page-1/#comment-348351</link>
		<dc:creator>Using an Entity System Part 1 &#124; Exploring Lines</dc:creator>
		<pubDate>Sat, 20 Apr 2013 15:16:24 +0000</pubDate>
		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/#comment-348351</guid>
		<description><![CDATA[[...] For information about entity systems refer to these pages: http://entity-systems.wikidot.com/ http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/ [...]]]></description>
		<content:encoded><![CDATA[<p>[...] For information about entity systems refer to these pages: <a href="http://entity-systems.wikidot.com/" rel="nofollow">http://entity-systems.wikidot.com/</a> <a href="http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/" rel="nofollow">http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Usage by adam</title>
		<link>http://t-machine.org/index.php/2012/12/31/svgkit-2013-usage/comment-page-1/#comment-345065</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Thu, 18 Apr 2013 17:33:46 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2132#comment-345065</guid>
		<description><![CDATA[@Rock

Google &quot;svg trace&quot; if you want to convert images into SVG.

SVGKit is for drawing SVG&#039;s, not for image-conversion, sorry.]]></description>
		<content:encoded><![CDATA[<p>@Rock</p>
<p>Google &#8220;svg trace&#8221; if you want to convert images into SVG.</p>
<p>SVGKit is for drawing SVG&#8217;s, not for image-conversion, sorry.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Usage by Rock</title>
		<link>http://t-machine.org/index.php/2012/12/31/svgkit-2013-usage/comment-page-1/#comment-344468</link>
		<dc:creator>Rock</dc:creator>
		<pubDate>Thu, 18 Apr 2013 08:54:54 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2132#comment-344468</guid>
		<description><![CDATA[How can I convert simple image into SVG format in iOs?]]></description>
		<content:encoded><![CDATA[<p>How can I convert simple image into SVG format in iOs?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity Systems: what makes good Components? good Entities? by SugarRichard</title>
		<link>http://t-machine.org/index.php/2012/03/16/entity-systems-what-makes-good-components-good-entities/comment-page-2/#comment-343996</link>
		<dc:creator>SugarRichard</dc:creator>
		<pubDate>Thu, 18 Apr 2013 00:28:49 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=1832#comment-343996</guid>
		<description><![CDATA[&gt;... Adam and I don&#039;t always agree on terminology and implementation...

The point is to focus on similarities across ES definitions and implementations (not necessarily agree with my synopsis). What do you and Adam agree on? What - in most basic terms - qualifies as an entity system in your opinion?

I personally feel the language issues are distracting. Of course a Java implementation is object oriented, Java enforces an OOP framework. This is unfortunate (in the context of ES), because it seems to require a good deal of creativity to circumvent language restrictions.

It also seems that (many, not all) Java programmers view OOP as something more concrete than it actually is.  OOP, COP are nothing more than methods used to establish order in a system, and are concepts that transcend language. One could use COP to impose a &quot;traditional OOP&quot; inheritance hierarchy. In my view, the client/server relationship isn&#039;t any different than child/parent or sub/super class relationships. The difference is, client/server relationships aren&#039;t enforced (so you have more freedom to create a tangled mess if you like).

The mention of GUID&#039;s was given with respect to Adam&#039;s article. The key concept is abstraction - &quot;Avoiding the direct use of memory references.&quot; is intentionally vague - how exactly this is accomplished doesn&#039;t matter.

If anyone is expecting to &quot;cut &amp; paste&quot; MINIX source code (or even repurpose most of it), they will be disappointed. What they will find are implementation ideas for a &quot;similar&quot; substantial system (that will at least set them on a path for further research).

The use of &quot;similar&quot; is imprecise. To clarify - the usage here is inline with that of George Polya in his book, How to solve It: A New Aspect of Mathematical Method.
According to Polya, one of the first things someone should do once the problem is understood, is look for existing solutions to similar or related problems. This may involve viewing the problem differently, breaking a problem into sub-problems, even modifying the problem to fit an existing solution.

So no, MINIX is not an ES, but I believe it&#039;s architecture and systems are sufficently similar to make it a useful reference.]]></description>
		<content:encoded><![CDATA[<p>&gt;&#8230; Adam and I don&#8217;t always agree on terminology and implementation&#8230;</p>
<p>The point is to focus on similarities across ES definitions and implementations (not necessarily agree with my synopsis). What do you and Adam agree on? What &#8211; in most basic terms &#8211; qualifies as an entity system in your opinion?</p>
<p>I personally feel the language issues are distracting. Of course a Java implementation is object oriented, Java enforces an OOP framework. This is unfortunate (in the context of ES), because it seems to require a good deal of creativity to circumvent language restrictions.</p>
<p>It also seems that (many, not all) Java programmers view OOP as something more concrete than it actually is.  OOP, COP are nothing more than methods used to establish order in a system, and are concepts that transcend language. One could use COP to impose a &#8220;traditional OOP&#8221; inheritance hierarchy. In my view, the client/server relationship isn&#8217;t any different than child/parent or sub/super class relationships. The difference is, client/server relationships aren&#8217;t enforced (so you have more freedom to create a tangled mess if you like).</p>
<p>The mention of GUID&#8217;s was given with respect to Adam&#8217;s article. The key concept is abstraction &#8211; &#8220;Avoiding the direct use of memory references.&#8221; is intentionally vague &#8211; how exactly this is accomplished doesn&#8217;t matter.</p>
<p>If anyone is expecting to &#8220;cut &amp; paste&#8221; MINIX source code (or even repurpose most of it), they will be disappointed. What they will find are implementation ideas for a &#8220;similar&#8221; substantial system (that will at least set them on a path for further research).</p>
<p>The use of &#8220;similar&#8221; is imprecise. To clarify &#8211; the usage here is inline with that of George Polya in his book, How to solve It: A New Aspect of Mathematical Method.<br />
According to Polya, one of the first things someone should do once the problem is understood, is look for existing solutions to similar or related problems. This may involve viewing the problem differently, breaking a problem into sub-problems, even modifying the problem to fit an existing solution.</p>
<p>So no, MINIX is not an ES, but I believe it&#8217;s architecture and systems are sufficently similar to make it a useful reference.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SmartGit review: don&#8217;t use it. by adam</title>
		<link>http://t-machine.org/index.php/2011/06/27/smartgit-review-dont-use-it/comment-page-1/#comment-338028</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Sat, 13 Apr 2013 10:05:58 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=1502#comment-338028</guid>
		<description><![CDATA[By your logic it is inpossible for apps to crqsh an OS, since they merely issue commands to it.

It is perfectly &quot;possible&quot; to do something *around* the git library that causes an outcome that is impossible for a user to pull off.

Most importantly, you are COMPLETELY WRONG in claiming that Smartgit is merely a &quot;wrapper&quot;. It is not. It contains many features that are not part of git, although tey are PARTLY IMPLEMENETED using git. I believe its bugs in these bits of code (smartgits behaviour reminds me of bugs i had in my earliest Java programs when i didnt know much about file handling, and wrote fragile crappy code)]]></description>
		<content:encoded><![CDATA[<p>By your logic it is inpossible for apps to crqsh an OS, since they merely issue commands to it.</p>
<p>It is perfectly &#8220;possible&#8221; to do something *around* the git library that causes an outcome that is impossible for a user to pull off.</p>
<p>Most importantly, you are COMPLETELY WRONG in claiming that Smartgit is merely a &#8220;wrapper&#8221;. It is not. It contains many features that are not part of git, although tey are PARTLY IMPLEMENETED using git. I believe its bugs in these bits of code (smartgits behaviour reminds me of bugs i had in my earliest Java programs when i didnt know much about file handling, and wrote fragile crappy code)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Development by adam</title>
		<link>http://t-machine.org/index.php/2012/12/31/svgkit-2013-development/comment-page-1/#comment-338016</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Sat, 13 Apr 2013 09:59:38 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2127#comment-338016</guid>
		<description><![CDATA[Thats great. I use xcode 4.6, but i try to keep everyone commits compatible to xcode 4.0, so your synthesizes are good.

Please can you  issue a pull request against the &quot;1.1.0&quot; branch from master.

Im not sure how you do this, but i think:
1. Get the latest master into hour fork, including the 1.1.0 branch
2. Switch to 1.1.0 branch
3. Apply fixes
4. Push to your fork
5. In github web oage, select the 1.1.0 branch and click issue oull request]]></description>
		<content:encoded><![CDATA[<p>Thats great. I use xcode 4.6, but i try to keep everyone commits compatible to xcode 4.0, so your synthesizes are good.</p>
<p>Please can you  issue a pull request against the &#8220;1.1.0&#8243; branch from master.</p>
<p>Im not sure how you do this, but i think:<br />
1. Get the latest master into hour fork, including the 1.1.0 branch<br />
2. Switch to 1.1.0 branch<br />
3. Apply fixes<br />
4. Push to your fork<br />
5. In github web oage, select the 1.1.0 branch and click issue oull request</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Development by rhcad</title>
		<link>http://t-machine.org/index.php/2012/12/31/svgkit-2013-development/comment-page-1/#comment-337737</link>
		<dc:creator>rhcad</dc:creator>
		<pubDate>Sat, 13 Apr 2013 05:36:13 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2127#comment-337737</guid>
		<description><![CDATA[Hi,
Some properties miss synthesize statement (Xcode 4.3), so I add them: https://github.com/rhcad/SVGKit/commit/a28e0e11f33f2bdc87d76a582874a56b3943769a .
Thanks.]]></description>
		<content:encoded><![CDATA[<p>Hi,<br />
Some properties miss synthesize statement (Xcode 4.3), so I add them: <a href="https://github.com/rhcad/SVGKit/commit/a28e0e11f33f2bdc87d76a582874a56b3943769a" rel="nofollow">https://github.com/rhcad/SVGKit/commit/a28e0e11f33f2bdc87d76a582874a56b3943769a</a> .<br />
Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SmartGit review: don&#8217;t use it. by sp</title>
		<link>http://t-machine.org/index.php/2011/06/27/smartgit-review-dont-use-it/comment-page-1/#comment-337162</link>
		<dc:creator>sp</dc:creator>
		<pubDate>Fri, 12 Apr 2013 19:40:18 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=1502#comment-337162</guid>
		<description><![CDATA[I have to say what OP is claiming is impossible.  Fist of all SmartGit is just a UI for git, it does not in any way write to the git repository directly.  It communicates to git via git commands, so it can only do what git allows it to do.  If your file got corrupted then the git executable corrupted them.  Also likely it was user error, i.e. someone thinking they did something but really ended up doing something else due to git&#039;s inherent complexity.]]></description>
		<content:encoded><![CDATA[<p>I have to say what OP is claiming is impossible.  Fist of all SmartGit is just a UI for git, it does not in any way write to the git repository directly.  It communicates to git via git commands, so it can only do what git allows it to do.  If your file got corrupted then the git executable corrupted them.  Also likely it was user error, i.e. someone thinking they did something but really ended up doing something else due to git&#8217;s inherent complexity.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by Andrew</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-336653</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Fri, 12 Apr 2013 11:15:28 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-336653</guid>
		<description><![CDATA[Basically, I want to do things such as add gradients and drop shadows and other effects to my SVG&#039;s. Basically use their path instead of drawing each one by code inside core graphics.]]></description>
		<content:encoded><![CDATA[<p>Basically, I want to do things such as add gradients and drop shadows and other effects to my SVG&#8217;s. Basically use their path instead of drawing each one by code inside core graphics.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by Adam</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-336642</link>
		<dc:creator>Adam</dc:creator>
		<pubDate>Fri, 12 Apr 2013 11:03:44 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-336642</guid>
		<description><![CDATA[Sorry, i dont really understand why you want to use CG. Thats a low level library for bitmap data and rasters.

All i can suggest is to read apples user guides on CG and COreAnimation - they are very detailed and clear on all this.

SVGkit is almost entirely standard in this respect - it does almost zero deviation from core CA and CG]]></description>
		<content:encoded><![CDATA[<p>Sorry, i dont really understand why you want to use CG. Thats a low level library for bitmap data and rasters.</p>
<p>All i can suggest is to read apples user guides on CG and COreAnimation &#8211; they are very detailed and clear on all this.</p>
<p>SVGkit is almost entirely standard in this respect &#8211; it does almost zero deviation from core CA and CG</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by Andrew</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-336578</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Fri, 12 Apr 2013 10:19:54 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-336578</guid>
		<description><![CDATA[Is there code you could provide to get it to the point where I can customise it using core graphics? Been trying this all yesterday but without any luck.]]></description>
		<content:encoded><![CDATA[<p>Is there code you could provide to get it to the point where I can customise it using core graphics? Been trying this all yesterday but without any luck.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by adam</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-336489</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Fri, 12 Apr 2013 09:18:53 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-336489</guid>
		<description><![CDATA[The image&#039;s &quot;.CALayerTree&quot; is the raw CALayers for your SVG image.

You can use anything from CoreAnimation on them.

CoreGraphics is incompatible, but you can write a CALayer that uses CoreGraphics if you like]]></description>
		<content:encoded><![CDATA[<p>The image&#8217;s &#8220;.CALayerTree&#8221; is the raw CALayers for your SVG image.</p>
<p>You can use anything from CoreAnimation on them.</p>
<p>CoreGraphics is incompatible, but you can write a CALayer that uses CoreGraphics if you like</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by Andrew</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-335745</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Thu, 11 Apr 2013 21:23:27 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-335745</guid>
		<description><![CDATA[Hey,

I have a SCGKImage displaying correctly, but I want to change the graphical effects on it, preferably with core graphics. Changing the fill color would be the first step, so I know what I&#039;m doing from there on. How can I get core graphics to work with my vector shape?]]></description>
		<content:encoded><![CDATA[<p>Hey,</p>
<p>I have a SCGKImage displaying correctly, but I want to change the graphical effects on it, preferably with core graphics. Changing the fill color would be the first step, so I know what I&#8217;m doing from there on. How can I get core graphics to work with my vector shape?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity Systems: what makes good Components? good Entities? by Mike Leahy</title>
		<link>http://t-machine.org/index.php/2012/03/16/entity-systems-what-makes-good-components-good-entities/comment-page-2/#comment-335050</link>
		<dc:creator>Mike Leahy</dc:creator>
		<pubDate>Thu, 11 Apr 2013 11:04:31 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=1832#comment-335050</guid>
		<description><![CDATA[&gt;I hope this resource keeps at least one person from shooting in the dark and reinventing wheels.

Except what you brought up really has not much to do with Entity Systems (ES) in the context of these blog posts or at least in my efforts with my own ES / Java work. First off ES is an _in process_ mechanism and has nothing to do with client / server associations. Technically an ES as implemented in Java is still OOP, but not traditional OOP ala a focus on inheritance / explicit composition and strong encapsulation mixing data / logic with an unchecked amount of mutator methods. ES focus on the _implicit has-a_ relationship by providing an API vs built in language constructs at least for Java. A second pillar that may or may not be adopted is supporting indirect message passing vs more traditional OOP methods such as the Observer / Listener pattern. Indirect messaging is not mandatory for an ES, but solves a lot of general problems over direct indexing of components / systems / tight coupling. 

In many ways indirect message passing and the implicit has-a relationship are much closer to what language pioneers like Alan Kay had in mind for OOP, before it got derailed toward what we call &quot;traditional OOP&quot;. The distinction against traditional OOP in regarding to ES is enough for us to generally call it &quot;COP - component oriented programming&quot;. 

One can of course still apply client / server development with an ES like API on each side potentially, but that doesn&#039;t mean an ES has anything to do with client / server programming in general. It also has little to do with COM / DCOM of years past except that there is a  query mechanism, but it functions drastically differently at least the Java implementations of ES concepts do. Also not all ES rely on a GUID approach as a central implementation detail. Adam&#039;s demo code does, but my efforts don&#039;t. 

The MINIX OS also has little relevance to ES proper. 

I suppose of minor note that Adam and I don&#039;t always agree on terminology or implementation and such, but as things go I can chime in and say you are barking up the wrong tree.]]></description>
		<content:encoded><![CDATA[<p>&gt;I hope this resource keeps at least one person from shooting in the dark and reinventing wheels.</p>
<p>Except what you brought up really has not much to do with Entity Systems (ES) in the context of these blog posts or at least in my efforts with my own ES / Java work. First off ES is an _in process_ mechanism and has nothing to do with client / server associations. Technically an ES as implemented in Java is still OOP, but not traditional OOP ala a focus on inheritance / explicit composition and strong encapsulation mixing data / logic with an unchecked amount of mutator methods. ES focus on the _implicit has-a_ relationship by providing an API vs built in language constructs at least for Java. A second pillar that may or may not be adopted is supporting indirect message passing vs more traditional OOP methods such as the Observer / Listener pattern. Indirect messaging is not mandatory for an ES, but solves a lot of general problems over direct indexing of components / systems / tight coupling. </p>
<p>In many ways indirect message passing and the implicit has-a relationship are much closer to what language pioneers like Alan Kay had in mind for OOP, before it got derailed toward what we call &#8220;traditional OOP&#8221;. The distinction against traditional OOP in regarding to ES is enough for us to generally call it &#8220;COP &#8211; component oriented programming&#8221;. </p>
<p>One can of course still apply client / server development with an ES like API on each side potentially, but that doesn&#8217;t mean an ES has anything to do with client / server programming in general. It also has little to do with COM / DCOM of years past except that there is a  query mechanism, but it functions drastically differently at least the Java implementations of ES concepts do. Also not all ES rely on a GUID approach as a central implementation detail. Adam&#8217;s demo code does, but my efforts don&#8217;t. </p>
<p>The MINIX OS also has little relevance to ES proper. </p>
<p>I suppose of minor note that Adam and I don&#8217;t always agree on terminology or implementation and such, but as things go I can chime in and say you are barking up the wrong tree.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity Systems: what makes good Components? good Entities? by SugarRichard</title>
		<link>http://t-machine.org/index.php/2012/03/16/entity-systems-what-makes-good-components-good-entities/comment-page-1/#comment-334861</link>
		<dc:creator>SugarRichard</dc:creator>
		<pubDate>Thu, 11 Apr 2013 07:16:46 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=1832#comment-334861</guid>
		<description><![CDATA[What I am pushing for is flexibility in our view of entity systems in order to broaden implementation choices,  and descriptors for subsystems that are more likely to lead newer programmers to existing solutions.

Object oriented programming has become increasingly dominant over the last few decades. You acknowledge the core entity system is not an object oriented solution, so it shouldn&#039;t be suprising that one might need to go back a decade or two to find an analogue solution.

The following is my opinion on how an entity system should be considered, followed by a few reasons why, and a resource I believe is relevant.

Entity system:
The core system is comprised of a client server coupled with a memory abstraction layer. The major design goal is a high degree of modularity in the addition of services and composition of clients.

Client server:
The client server is conceptually a relationship that specifies a seperation of responsibilities, and is consistent with the client server model as outlined in the component object model. It is this framework that provides for the easy and unobtrusive addition of services.

Key ideas from the component object model:
1) A client is any entity that uses the services of a component object. 
2) The location or layout of data within the system is irrelevant.

Memory abstraction layer:
The memory abstraction layer is responsible for virtualizing client objects. It accomplishes this by avoiding the direct use of memory references to clients and their constituent elements. A system may use multiple layers.

Data layout:
At one point in the article, you give five examples that demonstrate the differences in opinion on what exactly constitutes an entity system. The main argument is over data layout. When data layout is no longer used as a qualifier, suddenly they&#039;re all entity systems.
(Yes, even the one whose client classes contain member functions - I would argue - since those methods are only invoked by the server, they are extensions of the server, and I can&#039;t think of a good reason to disallow extendable servers.)
You may not agree that data layout is irrelevant, but I believe - the fact you were able to sidestep the question &quot;where does the data live?&quot; and still discuss entity systems in depth  supports the claim.

Terms:
Why insist on the terms client server model and memory abstraction layer? The reason is, they lead to richer resources than the inconsistent and ad hoc names that are currently being used to describe these systems.
The core system is implemented using component oriented programming. A search for COP coupled with client server will quckly lead to COM. In this environment I can&#039;t think of a better resource than COM (and by extension the .NET framework) to use as a model for providing dynamic services.
Memory abstraction leads to virtual memory managment, which covers exactly the kinds of techniques you&#039;ll need to implement this system well. Think about what the use of identifiers (GUIDs) does at the lowest level. It virtualizes memory. It enables the system to hand a singular entity to the user, while behind the scenes its individual components (aspects) may be scattered all over the system. This isn&#039;t any different than what your operating system&#039;s virtual memory manager does when it hands memory to a process. To the process it looks like a contiguous block of memory, but the physical layout may be a patchwork of memory, even residing on the hard drive or somewhere offsite.

Supporting code:
This is where things get heavy. Questions being asked in this forum include - memory management, scheduling, inter-process (module) communication, event handling, streams, optimization issues.
If only there were an existing layered, client server architecture with similar design goals and systems...
Good news, there is.
In fact if we eliminate purpose (game development), what we are describing is very similar to micro-kernel operating system architecture.

MINIX:
The MINIX operating system is an open source project that has been used in academia forever. The source code is up to date and free to download. Documentation is plentiful. A full treatment of all systems, design decisions, advice, and ideas for future research may be found in books by the original author of MINIX, Andrew S. Tanenbaum.

I hope this resource keeps at least one person from shooting in the dark and reinventing wheels.]]></description>
		<content:encoded><![CDATA[<p>What I am pushing for is flexibility in our view of entity systems in order to broaden implementation choices,  and descriptors for subsystems that are more likely to lead newer programmers to existing solutions.</p>
<p>Object oriented programming has become increasingly dominant over the last few decades. You acknowledge the core entity system is not an object oriented solution, so it shouldn&#8217;t be suprising that one might need to go back a decade or two to find an analogue solution.</p>
<p>The following is my opinion on how an entity system should be considered, followed by a few reasons why, and a resource I believe is relevant.</p>
<p>Entity system:<br />
The core system is comprised of a client server coupled with a memory abstraction layer. The major design goal is a high degree of modularity in the addition of services and composition of clients.</p>
<p>Client server:<br />
The client server is conceptually a relationship that specifies a seperation of responsibilities, and is consistent with the client server model as outlined in the component object model. It is this framework that provides for the easy and unobtrusive addition of services.</p>
<p>Key ideas from the component object model:<br />
1) A client is any entity that uses the services of a component object.<br />
2) The location or layout of data within the system is irrelevant.</p>
<p>Memory abstraction layer:<br />
The memory abstraction layer is responsible for virtualizing client objects. It accomplishes this by avoiding the direct use of memory references to clients and their constituent elements. A system may use multiple layers.</p>
<p>Data layout:<br />
At one point in the article, you give five examples that demonstrate the differences in opinion on what exactly constitutes an entity system. The main argument is over data layout. When data layout is no longer used as a qualifier, suddenly they&#8217;re all entity systems.<br />
(Yes, even the one whose client classes contain member functions &#8211; I would argue &#8211; since those methods are only invoked by the server, they are extensions of the server, and I can&#8217;t think of a good reason to disallow extendable servers.)<br />
You may not agree that data layout is irrelevant, but I believe &#8211; the fact you were able to sidestep the question &#8220;where does the data live?&#8221; and still discuss entity systems in depth  supports the claim.</p>
<p>Terms:<br />
Why insist on the terms client server model and memory abstraction layer? The reason is, they lead to richer resources than the inconsistent and ad hoc names that are currently being used to describe these systems.<br />
The core system is implemented using component oriented programming. A search for COP coupled with client server will quckly lead to COM. In this environment I can&#8217;t think of a better resource than COM (and by extension the .NET framework) to use as a model for providing dynamic services.<br />
Memory abstraction leads to virtual memory managment, which covers exactly the kinds of techniques you&#8217;ll need to implement this system well. Think about what the use of identifiers (GUIDs) does at the lowest level. It virtualizes memory. It enables the system to hand a singular entity to the user, while behind the scenes its individual components (aspects) may be scattered all over the system. This isn&#8217;t any different than what your operating system&#8217;s virtual memory manager does when it hands memory to a process. To the process it looks like a contiguous block of memory, but the physical layout may be a patchwork of memory, even residing on the hard drive or somewhere offsite.</p>
<p>Supporting code:<br />
This is where things get heavy. Questions being asked in this forum include &#8211; memory management, scheduling, inter-process (module) communication, event handling, streams, optimization issues.<br />
If only there were an existing layered, client server architecture with similar design goals and systems&#8230;<br />
Good news, there is.<br />
In fact if we eliminate purpose (game development), what we are describing is very similar to micro-kernel operating system architecture.</p>
<p>MINIX:<br />
The MINIX operating system is an open source project that has been used in academia forever. The source code is up to date and free to download. Documentation is plentiful. A full treatment of all systems, design decisions, advice, and ideas for future research may be found in books by the original author of MINIX, Andrew S. Tanenbaum.</p>
<p>I hope this resource keeps at least one person from shooting in the dark and reinventing wheels.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The new gmail: Downgraded, hated by users by Richard Johnson</title>
		<link>http://t-machine.org/index.php/2013/03/31/the-new-gmail-downgraded-hated-by-users/comment-page-1/#comment-332917</link>
		<dc:creator>Richard Johnson</dc:creator>
		<pubDate>Wed, 10 Apr 2013 00:18:53 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2281#comment-332917</guid>
		<description><![CDATA[I agree. GMail,s new Compose is horrible!! I switched to Gmail when Yahoo Mail &quot;upgraded their email&quot; making it worse. Hate to have to change all my accounts, but chasing emails around Google&#039;s files is a horrible waste of time. The personal computer was invented to give the user more control over personal data and not be subject to IBM and ATT monopolies. Have we not learned anything in 30 years? Unfortunately, programmers keep programming to justify their worth? Keep it simple!! Good programs are easily run without instructions. And the user has control of the data. Clouds obscure everything...

Come out into the real world Google. Don&#039;t just take everyone&#039;s picture and snoop on them. Listen to their complaints. I couldn&#039;t find anywhere to give Google my feelings. Fortunately, the internet is still free enough to find someone who will listen....]]></description>
		<content:encoded><![CDATA[<p>I agree. GMail,s new Compose is horrible!! I switched to Gmail when Yahoo Mail &#8220;upgraded their email&#8221; making it worse. Hate to have to change all my accounts, but chasing emails around Google&#8217;s files is a horrible waste of time. The personal computer was invented to give the user more control over personal data and not be subject to IBM and ATT monopolies. Have we not learned anything in 30 years? Unfortunately, programmers keep programming to justify their worth? Keep it simple!! Good programs are easily run without instructions. And the user has control of the data. Clouds obscure everything&#8230;</p>
<p>Come out into the real world Google. Don&#8217;t just take everyone&#8217;s picture and snoop on them. Listen to their complaints. I couldn&#8217;t find anywhere to give Google my feelings. Fortunately, the internet is still free enough to find someone who will listen&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity System 1: Java/Android by adam</title>
		<link>http://t-machine.org/index.php/2010/05/09/entity-system-1-javaandroid/comment-page-3/#comment-332376</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Tue, 09 Apr 2013 14:45:54 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=876#comment-332376</guid>
		<description><![CDATA[&quot; ES for an AgeOfEmpires clone?&quot;

Yes, it&#039;s very good for that.

&quot;it seems kinda difficult to keep entities only an integer&quot;

No, it&#039;s very easy. If you think it&#039;s difficult, you should stop and re-think, and make sure you understand the entity system properly. You should find it EASIER to do this with components (leaving the &quot;entity&quot; as a pure integer).]]></description>
		<content:encoded><![CDATA[<p>&#8221; ES for an AgeOfEmpires clone?&#8221;</p>
<p>Yes, it&#8217;s very good for that.</p>
<p>&#8220;it seems kinda difficult to keep entities only an integer&#8221;</p>
<p>No, it&#8217;s very easy. If you think it&#8217;s difficult, you should stop and re-think, and make sure you understand the entity system properly. You should find it EASIER to do this with components (leaving the &#8220;entity&#8221; as a pure integer).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity System 1: Java/Android by Jan</title>
		<link>http://t-machine.org/index.php/2010/05/09/entity-system-1-javaandroid/comment-page-3/#comment-332352</link>
		<dc:creator>Jan</dc:creator>
		<pubDate>Tue, 09 Apr 2013 14:16:50 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=876#comment-332352</guid>
		<description><![CDATA[Hey Adam,
I got some other questions. First off all: Is it a bad idea to youse an ES for an AgeOfEmpires clone?
Because it seems kinda difficult to keep entities only an integer. I thought abit about the functionallity of AOE and for example if you double click a unit, all other units of the same &quot;type&quot; are also selected. So surely one can add a Component for this, but a field for each entity to know what it is would also be possible. Then again there isn&#039;t a problem using MetaEntity if performance is not a problem.
So could you maybe state when are MetaEntity bad (I mean like for MMORP one maybe needs &gt;50k entities and for aoe &lt;10k but I dont know when performance issues will occur with MetaEntity).

Other questions:
1)Is it ok to use objects for special entities like the map (2D) and the gui? So for now I got a WORLD class which extends ENTITYMANAGER and i thought i handle the map seperate in the world class instead of with the entitymanager.
2)For the input I just implemented a INPUTSYSTEM which checks which button was pressed and then gets all entities which are involved. So in the end this will be a very big Switch or if/else part... Is there a better way to do this?
(I search pretty long to find answers to that but there were just to many ideas so i though maybe ill ask you since you seem to know what you are talking about^^)

Cheers and thank you in advance,
Jan
PS: also thanks for the fast answer last time :)]]></description>
		<content:encoded><![CDATA[<p>Hey Adam,<br />
I got some other questions. First off all: Is it a bad idea to youse an ES for an AgeOfEmpires clone?<br />
Because it seems kinda difficult to keep entities only an integer. I thought abit about the functionallity of AOE and for example if you double click a unit, all other units of the same &#8220;type&#8221; are also selected. So surely one can add a Component for this, but a field for each entity to know what it is would also be possible. Then again there isn&#8217;t a problem using MetaEntity if performance is not a problem.<br />
So could you maybe state when are MetaEntity bad (I mean like for MMORP one maybe needs &gt;50k entities and for aoe &lt;10k but I dont know when performance issues will occur with MetaEntity).</p>
<p>Other questions:<br />
1)Is it ok to use objects for special entities like the map (2D) and the gui? So for now I got a WORLD class which extends ENTITYMANAGER and i thought i handle the map seperate in the world class instead of with the entitymanager.<br />
2)For the input I just implemented a INPUTSYSTEM which checks which button was pressed and then gets all entities which are involved. So in the end this will be a very big Switch or if/else part&#8230; Is there a better way to do this?<br />
(I search pretty long to find answers to that but there were just to many ideas so i though maybe ill ask you since you seem to know what you are talking about^^)</p>
<p>Cheers and thank you in advance,<br />
Jan<br />
PS: also thanks for the fast answer last time :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by Adam</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-331997</link>
		<dc:creator>Adam</dc:creator>
		<pubDate>Tue, 09 Apr 2013 09:04:28 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-331997</guid>
		<description><![CDATA[Ah!

Initwithlayer is called implicitly by apple if you do implicit CALayer animations

(Which happens auotmatically a lot)]]></description>
		<content:encoded><![CDATA[<p>Ah!</p>
<p>Initwithlayer is called implicitly by apple if you do implicit CALayer animations</p>
<p>(Which happens auotmatically a lot)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SVGKit 2013 &#8211; Recipes by John</title>
		<link>http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/comment-page-1/#comment-331986</link>
		<dc:creator>John</dc:creator>
		<pubDate>Tue, 09 Apr 2013 08:55:09 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=2142#comment-331986</guid>
		<description><![CDATA[Hi Adam,

I was looking at the SVGKLayer dealloc and a saw your comment regarding the crash.
After some digging i observed that the dealloc-ated instance is not the one initialized by [init], but one initialized with &lt;code&gt;-(id)initWithLayer:(id)layer&lt;/code&gt;. If i register the observer there everything works ok. i don&#039;t know why the initWithLayer method get&#039;s called, probable is something &quot;internal&quot; to CA.

John]]></description>
		<content:encoded><![CDATA[<p>Hi Adam,</p>
<p>I was looking at the SVGKLayer dealloc and a saw your comment regarding the crash.<br />
After some digging i observed that the dealloc-ated instance is not the one initialized by [init], but one initialized with <code>-(id)initWithLayer:(id)layer</code>. If i register the observer there everything works ok. i don&#8217;t know why the initWithLayer method get&#8217;s called, probable is something &#8220;internal&#8221; to CA.</p>
<p>John</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Entity Systems: what makes good Components? good Entities? by adam</title>
		<link>http://t-machine.org/index.php/2012/03/16/entity-systems-what-makes-good-components-good-entities/comment-page-1/#comment-330035</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Sun, 07 Apr 2013 20:23:01 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/?p=1832#comment-330035</guid>
		<description><![CDATA[Why don&#039;t you explain WHY and HOW you believe the two things are the same?

Here&#039;s my starting position:

1. I have several books that describe the Client/Server paradigm, and there&#039;s nothing even vaguely similar to an ES in there
2. ES&#039;s specifically solve problems to do with OOP; since Client/Server was invented 10-20 years before OOP was invented, it would be rather surprising if it included ES&#039;s.

So far, all you&#039;ve done is say &quot;[absurd thing] is true because I say so&quot;, and to cast insults. It&#039;s very difficult to take you seriously if you won&#039;t engage, and fail to provide anything remotely constructive or evidential.]]></description>
		<content:encoded><![CDATA[<p>Why don&#8217;t you explain WHY and HOW you believe the two things are the same?</p>
<p>Here&#8217;s my starting position:</p>
<p>1. I have several books that describe the Client/Server paradigm, and there&#8217;s nothing even vaguely similar to an ES in there<br />
2. ES&#8217;s specifically solve problems to do with OOP; since Client/Server was invented 10-20 years before OOP was invented, it would be rather surprising if it included ES&#8217;s.</p>
<p>So far, all you&#8217;ve done is say &#8220;[absurd thing] is true because I say so&#8221;, and to cast insults. It&#8217;s very difficult to take you seriously if you won&#8217;t engage, and fail to provide anything remotely constructive or evidential.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
