Wednesday, May 13, 2015

Unanswered Prayers

Is God a genie?

Believers are notorious to plead out to God in prayer for understanding. Even more so, they are guilty to say, "God is not giving me clarity." Or "God must be testing me by putting me in a silence period." Some scriptures make it easy to lean on an idea that every prayer by a believer must be answered and given to them.

Given to them is the part that is most concerning. "Therefore I tell you, whatever you ask for in prayer, believe that you have received it, and it will be yours." (Mark 11:24, NIV). Many will see this and say, "But, it does say that! Not just that, but those letters are in RED." But, what else does the scripture say about prayer?

"If you remain in me and my words remain in you, ask whatever you wish, and it will be done for you." (John 15:7, NIV italics added). Notice that if, is it not significant what Jesus said there in John? A believer must stay within the general will of God, or they will be subject to the promise that their prayers will not be answered.

Look at John 15:7 again, "If you remain in me". This statement is more than just the general will of God, obeying his commandments and staying out of sin. This statement is leveraged to remain in Christ. Believers have to remain in Christ also, but what does that mean biblically?

"In the same way, count yourselves dead to sin but alive to God in Christ Jesus." (Romans 6:11, NIV italics added). As a believer, one should count themselves dead to sin. Knowing their sins are paid for and done away with by the death of Jesus on the cross; forgotten forever by God in heaven.

"Alive to God in Christ", that is just profound. Look at the sentence structure carefully. It is set up in a way that keeps the aspect of counting themselves relevant to "alive to God" also. Alive to God, being a God-given identity issue, but not one that is repeating God viewing believers this way; it is saying that the believers should count themselves seen in this way also. Ending with "in Christ", meaning Christ is the way, and the one who equips us to accept the truth that through salvation we are seen as righteous in his sight.

Back on track

After all of that, it is time to circle back to what in the world that means for prayer. Declaring God as sovereign over ourselves is the point. Not only is he holy and set apart from sin, but also he is also our creator and ultimate provider. Because he is sovereign over believers they are to acknowledge that and submit themselves to Him. "If you remain in me" (John 15:7, NIV), if you remain in Jesus. That statement is bold, and not dismissive at all. Jesus just declared himself greater than the believer. He is speaking to his kingship and stance with the father.

Next, "and my words remain in you," (John 15:7, NIV). The commands of Jesus and the commands of the Father were not meant to be disregarded because of grace, but to be kept close in the heart.

"What shall we say, then? Shall we go on sinning so that grace may increase?" (Romans 6:1, NIV)

I do urge this not to be taken too sharply as a statement that a New Testament believer should follow every law, including the dietary requirements, of the Old Testament. It is more leveraged at the importance that a believer is truly convinced that they should be operating in a way that they are the face of God to the lost and unbelieving world.

"For sin shall no longer be your master, because you are not under the law, but under grace." (Romans 6:14, NIV)

For both to exist a believer should focus more on the why not to sin than the command not to sin. Refusing to live in sin is out of respect for the sovereignty of God, and also an outward expression to the unbelieving people of the world to show them something different. Making believers a people defined by love, and right living. Not hate, judgment, and hypocrisy.

But my prayers are not answered!

Are you sure? Absolutely, without a doubt sure that God has not answered your prayers?

Look at it this way. When praying that prayer that was not answered, did you consider whether or not that prayer was in line with Scripture? Really?

"God, I lied to my business partner. Please don't let him find out so I can get the promotion, then I'll tell them."

"God, please, I really want them to say yes to date me so that we can have sex."

"God, I don't like my car anymore. I really like that BMW my boss drives, if you would bless my finances so that I can get one like it. Maybe if your will allows it a newer one."

(Yes, all of these examples are meant to be exaggerations.)

REALLY!?

Let me clear this up for you if your prayers are anything like that. God said NO.

No, that is not being harsh to say God says no to your prayers. He answered them, you just were not aligned with him in it. These type of prayers are not aligned with the will of God.

Hey! My prayers are not like that!

Yes, it cannot be said that God is not answering your prayers because your prayers are solely selfish. What about the ones that are in compassion, love, and pleading for a miracle?

The thing is, you are praying God's will. I know that you know to say that, but do you mean it?

To mean it, is to be ready to accept it. God has a plan for everyone and everything. Even though, that plan may require him to say no to some prayers regarding the sick.

Stopping to say, I sincerely send all my condolences to those have lost loved ones, and that it is hard to fathom watching a loved one pass on in spite of the prayers offered. I have yet to go through this personally, but I have seen it. God has a bigger plan, and it may hurt us sometimes. It may force us to grieve. It may force us to hurt.

This part of God's will is not something we can just open the Bible and say, "There it is!" so easily. It is part of His character the Christian has to accept and observe in the scriptures. God does this because he loves the world, "For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life." (John 3:16, NIV). God sent his only son so that the world could receive salvation as a free gift. Your loss may be the catalyst for another person nearby to receive that free gift. But, if you are not fully submitted to His will and allow anger to overtake you that nearby unbeliever may not receive the character of God as good at all.

Do I REALLY represent the face of God?

Let that question linger for a moment.

Another way to ask that question is this, "AM I representing the face of God, really?" Decisions made by a Christian are important. These decisions, even the one that is made in private will have an impact to those around them. Some decisions may not have immediate, or even extreme impact to those around, but they do have some result.

When a believer sins, knowing that they should not. It is not far from standing up on a soapbox and declaring, "I became convinced of God, but I don't love him enough to take him seriously!"

Back to prayer, a believer has to keep the commands of God in them. That big if from earlier did include a requirement stated "my words remain in you," (John 15:7, NIV). By this, the kingdom of heaven is brought to Earth. By right-living, the unbelieving world will see a people different from themselves. A people who has a standard of living outside of human desires.

"What good is it, my brothers and sisters, if someone claims to have faith but has no deeds? Can such faith save them?" (James 2:14, NIV)

Do you believe God gives what you need?

Prayer is activated by faith. Believers should be adamantly defensive of the truth that God will answer prayers in what they need. However, this is the kicker. It is truly about what is needed, not wanted. Inevitably though, there are going to be some wants that believers will pray for. We all do it. There is not a literal scale that can be pulled out to determine if the desires that are being prayed for are appropriate or not, but there are principles to meditate on.

First, desires have different sources. Some desires are of the flesh or to modernize it better our natural and instinctive side or cultural influences. Other desires are planted by God. "For it is God who works in you to will and to act in order to fulfill his good purpose." (Philippians 2:13, NIV). If a desire is not from God then in his ways why would it be given? Desires that are planted by God are there to fulfill his purpose. Since they are there for that reason, His Will requires it.

This is where a believer relies on wise counsel, and discernment when it is there.

Praying for Karma?

Even and subconscious or heart-level desire to see someone who did wrong by you is failing to forgive them as was given to you by the death on the cross. This is a good time to look back and feel a little guilty. Christians are not supposed to hold grudges, or pass judgement. Only God can hold the judgement seat.

We have a model for prayer

""This, then, is how you should pray: " 'Our Father in heaven, hallowed be your name, your kingdom come, your will be done, on earth as it is in heaven. Give us today our daily bread. And forgive us our debts, as we also have forgiven our debtors. And lead us not into temptation, but deliver us from the evil one. " (Matthew 6:9–13, NIV)

  1. "Our Father in heaven, hallowed be your name" – Acknowledgment of who God is, and His holiness.
  2. "Your kingdom come, your will be done, on earth as it is in heaven," – Aligning ourselves with His will.
  3. "Give us today our daily bread," – Daily provision and supplying our needs. Accepting the promise from God.
  4. "And forgive us our debts," – Asking forgiveness, humbly admitting we're not perfect.
  5. "As we also have forgiven our debtors," – Extending forgiveness under the witness of God.
  6. "And lead us not into temptation, but deliver us from the evil one," – Praying protection from temptations and desires not of God.

Perhaps you caught on, perhaps you did not, but this entire post is angled at mirroring this model. If you did not catch on you may take an interest in skimming back over the previous sections.

Conclusion

In closing, this post I hope will help you. This is a huge passion for me. It is NOT that I believe people pray wrong, but more that some have an unhealthy perception of it. Prayer is time to commune with the Father. It is time to be reverent. It is time to align with Him and be His. It is time to declare his promises extended to all of us in our lives. It is a time to accept his forgiveness for our daily sin and to forgive others. It is a time to admit, "I can't do it alone God, I need you, I love you, you know better than I could ever come up with. Please work in my life while I work in your kingdom under your will."

Thursday, November 13, 2014

No is an Acceptable Response


The image above was sent to me earlier today.  Though it is humorous, it also broke my heart.  It is one of those funny because it is true things.  Both the girl who sent this and whoever originally created this image knew something about us men that is not something to be esteemed.  Men, or boys, have a tendency to expect sex regardless of how she feels about it.  Guys, where do you think these women have gotten this impression?  FROM US!

To better illustrate this point.  Consider this, you have been on a few dates with a girl, and maybe even dating her already.  You are infatuated with her.  She has an amazing body.  You kind of noticed her smile, but you are more focused on her other parts.

You know you are ready to take things to the next level.  However, you have an idea that the next level means sex.  So, you make your move, but she pushes back, and says that she likes you but she is not ready for that.

Maybe, she takes some time to mention aspirations to step towards more romantic outings, or getting to know where you stand on matters of the heart and family.  As she says this, our minds are still entrenched in what panties she is wearing.

So, your response is something to the nature of "Of course we will do those things babe, but can we not just take this step as we go deeper into our relationship?  I really need this."

This conversation generally continues until she gives in or she is mad, but not unlikely some essence of both.  Of course, I am not denying that sometimes there is no hesitation. However, when there is hesitation it is not uncommon for men get pushy about it.

Now, if you are perfect, and none of that story relates to your experiences, that is great for you.  If you are perfect, and a man, do not step close to a woman in this culture and expect she has not been through this just because she has not told you.  She probably has been pursued sexually, and ignoring that is not being considerate of her feelings.

Likewise, if you are perfect, and a woman, just because you have not experienced this from a boy yet, do not be foolish and believe they do not exist.  Be patient and wait for one who regards you for you, and not for your body.

So, we all have heard men be referred to as dogs before.  I doubt I am the only one who has thought about why, but let's break that down.

Take the relationship between cat and dog.  Dog sees cat, dog chases cat.  This dog gets an insatiable desire to chase the cat.  Tongue flopping around, drool dripping out like a water faucet, and chasing relentlessly until all efforts are proven futile, or another cat, squirrel or whatever gets their attention.

Take this dog surround it with cats, and it will chase whichever is closest until they all get away, and realizes he has a tail as he begins to chase it.

Take the cat, specifically one who has not yet met a dog.  It may not run at first.  After being chased by a dog, or seeing others experience it, the cat will learn to run and hide from every dog they see.  They will usually get away for they are far smarter and faster than the dog.  They may be smaller and weaker and occasionally become deblitated by coughing up hairballs, but they outwit the dog almost every time.

Men, when we treat women this way, we become the dog taking the role of predator and demote them to prey.  You can tell a woman you love her with your mouth a thousand times, but if you treat her as prey, she will run from you every single time.

If you have ever owned a dog and cat in the same household, you may know that they can be trained to be companions.  Their natural way, will not make them friends often.  As master over the two, would you train the cat not to run, or the dog not to chase, so that they could resolve their differences?

Of course you would train the dog!  They are the bigger and have an alpha complex that says they're superior.   As their master the dog must be taught to respect the cat and break down their alpha mentality, bringing them into submission of you as their master.

If we want women to trust that our expression of love by our words is not a lie, then we need to make love an action instead of a feeling. "Love is patient, love is kind. It does not envy, it does not boast, it is not proud." (1 Corinthians 13:4 NIV).

Patience, well that is quite a gotcha for our typical ways that we pursue women.  Patience is not pressuring someone into doing what they are not ready for.

Kind, synonymous to considerate, is not putting our needs before the feelings of others.

Envy, in context of this topic, boys end up in competition for a woman's affection.  Two men trying to make the other look bad for self gain.

To boast is to always have a bigger and better story than everyone else.

Pride, is this false idea that you as a man are made by God to please women.

So men, like the dog, are under a lie that makes them act the way they do towards women.  You have probably met a few boys who believe they are God's gift to all women they meet.  Which is a total lie of the enemy.

Let us go all the way back to the beginning when man and woman were created, dog and cat too I might add.  Men read this very carefully:
And the Lord God said, “ It  is not good that man should be alone; I will make him a helper comparable to him.” So Adam gave names to all cattle, to the birds of the air, and to every beast of the field. But for Adam there was not found a helper comparable to him. And the Lord God caused a deep sleep to fall on Adam, and he slept; and He took one of his ribs, and closed up the flesh in its place. Then the rib which the Lord God had taken from man He made into a woman, and He brought her to the man.  (Genesis 2:18, 20-22 NKJV)
Got it guys?  She was a gift to you, not the other way around.  Made to be a helper not a slave.  Not to be a piece of meat.  Not your prey.

Now it came to pass, when men began to multiply on the face of the earth, and daughters were born to them, that the sons of God saw the daughters of men, that they were beautiful; and they took wives for themselves of all whom they chose.  (Genesis 6:1-2).
What I like about this passage is when it took place.  This comes from the days of Noah.  When God declares that his spirit shall not strive with man forever and declares them to be wicked.

But, he starts by mentioning that men took wives for themselves.  Context speaks to me that up to this point they had been faithful to allowing God to be the one who arranges their marriages.

I would be less convinced of that if not for the following verse, "This is the genealogy of Noah. Noah was a just man, perfect in his generations. Noah walked with God." (Genesis 6:9).

So, where I am going with this is simple.  God does not change.

If he arranged marriages for people then, and expected obedience to his arranged marriages then he still does.  Men, if you agree to that, then regardless of your relationship status you do have a wife.  Women, this is no different for you.

In the law of God, one of the 10 commandments is not to commit adultery.  Jesus steps in and declares that to simply lust for a woman in your mind is adultery.  We cannot realistically control the thoughts that enter our mind, but we can determine how we deal with them.

For me to approach greater success against lustful thinking, I had to admit that God made me, and he also made my wife.  He knows me, and he knows her.  I have been convicted to lead my life to honor my wife. whom I do not yet know personally. Although, God in heaven does.

In closing, I have a question for you to ask yourself.  Even if I have done nothing to speak to your beliefs of God, and his opinion of your lifestyle.   Guys, do you want to marry a woman who is helper to you?  One that nurtures your household?  One that you esteem greatly as you introduce her to your peers?  Or would you rather marry a steak?

If you do not choose the steak, though they are delicious, you will need to pursue a new way and be ready to offer her protection and security.  She also, will want romance and tenderness.

God bless.

Tuesday, July 22, 2014

Trends, Good or Bad

I've been noticing much more lately that there are trends going on specifically in software development of all forms, but specifically one in Game Development which has a large factor in why I have not pushed harder towards finishing and publishing any projects.  The trend is simple to understand, but hard to admit when guilty.  Heavy hitter established programmers are generating blockades for up and coming programmers who love the craft of programming.

One business development pattern that falls in this is the development shift to use web services.  Even though I rather enjoy working in them, I do enjoy networking code far more.  What happened to all the companies doing socket work?  Well some genius of an individual found it would be easier and just as fast performance wise and way faster development time to use web services.  It's a great idea, but it dumbs down the task to a point where most anyone with some programming knowledge can pull it off.

Numerous companies building UI frameworks or other similar systems for dealing with hard to accomplish tasks.  Business leaders wouldn't dream of paying their staff for the time it would take to implement these things.  So, they just pay for the third party.

Now, to hone in specifically to game development.  There are and always will be people out there, myself included, who would aspire to be more like Eskil Steenberg and write an entire game with the use of no third party in straight C!!  This man is hardcore, and would not dream of doing it any other way.  The problem exists in that investors and business have taken over the industry.  Funding a project with this methodology is not probable.

Having a background of being heavy in the modding community through high school and some after I say nearly the entire indie development franchise don't really develop video games.  They're glorified modders.  I'm not writing this as an assault against anyone who would fall in this category.  It's mainly a thought and would aim to remind those of you who are aware of the time when video game industry almost disappeared completely.  I'd hope to encourage and inspire those that are not in the "Notch" or Eskil Steenberg personality type to rethink your game plan for development moving forward.  Allowing big business and publish over polish to mandate the development of your games will in my opinion lead to another near extinction of Video Games.  If you don't really believe that's a possibility, go looking at new releases.  Even from the AAA ranks we're getting a lot of weak titles.  Look on your phone count how many of the top grossing mobile games are clones of one another.  There are definitely a few great games out there, but the market is flooded with clones.  Time to innovate and build video games on Radar machines again.

History Repeats Itself

Monday, May 20, 2013

Generics and Boxing Capabilities

Generic classes and Boxing techniques are fairly common practice.  It is often under appreciated.  If we look at a linked list we see that it is using both simultaneously.  It is a great implementation, even though performance can both be improved and hurt by it.  This is a crucial part of understanding how these topics coincide.  The LinkedList<T> from the .NET framework is just one example of this type of concept, and probably in a weaker example.

LinkedList(T) MSDN DOCs

If you want to understand this class further viewing forum topics regarding LinkedList pros and cons would be wise.

This post however is about taking this concept to a new level.  In many application development practices we work with Hierarchies.  They're often coded to be specific to the application.  Sometimes, we implement base classes for this architecture because we use it so often, but how much further can we take such a technology?  Can it be improved upon?  Obviously this is rhetorical, and theoretical.  Not only can we make the assumption there are no code practices that cannot be improved upon, we can also use this case as an example of such.

The run down of how we using Boxing and Generics to take this tech further is actually not that complex.  Linked lists get their benefit from faster insertion and navigating related objects.  Same sort of reason we use Hierarchies often.  One weakness of hierarchies is always starting at the top.  This implementation is two part.  The data is actually stored for the tree in more ways than one.  And it is retrieved in more ways than one as well. 

Storage
We store the hierarchy in two crucial ways.  Since this is a full generic class we have to create boxing for the nodes.  The nodes store information about the level parent and child relations.  So, we can still start from the top of a tree and iterate down the nodes like normal.  There's a new trick though for faster access.  Sometimes, we need to access only data a few levels deep.  Or all items on a particular level only.  This is why the storage is actually storing nodes in arrays for each level as well.  There is no distinction in this storage regarding parents and children, just all nodes on that level.  There is one trick to this that was discovered by accident, but absolutely incredible.  Children can actually be added first.  The other one that was intentional is that an array of values can be converted into a hierarchy.  My test project acftually converts an array of random integers into a hierarchy driven by digits where multiples of ten define the level.  Looks like this:

1000
   1100
      1110
         1111

The way this system is designed such generation is purely algorithmic or interface driven.  Very cool and very powerful.  May sound kinda lame but if you're into "fancy" code... this is right up your alley.

Retrieval
Since we've stored the data in this way, we can do some incredible things.  One example, say we have a tree 5 levels deep, but the upper 4 levels just contain informational data not important to our actual processing.  In most oldschool hierarchies this would still have to iterate all levels to get the bottom.  Not here.  We can pull just level 5 and not even acknowledge the parents even exist.  Pretty cool huh?  (Pretty simple too....)  This structuring also gives a few benefits in speed.  When retrieving nodes where the parent matching a condition(yes seriously) this is very easy and faster than it would normally be.  If we already have a node we just access it's children which prevents us from having to navigate and compare the entire level.  This is normally how we would do it, just felt it important to note this implementation does not exclude that. 

The ways in which the data is accessed is always the fasted option to retrieve the value desired given the information supplied.  In many cases faster than it would normally be from a normal hierarchy setup, but admittedly not all.  It's functional and optimized in many ways, but as many practices teach us, functionality often sacrifices performance.

Code Snippet
Below is a quick snippet from the integer example mentioned:  (There are other parts not visible here excluded to avoid confusion)



No, I am not kidding... It's that simple... And yes... this works flawlessly after 100s of tests.

Fun stuff right?  =P

Saturday, May 4, 2013

Extension Method Insanity!!!

Extension methods are something I've known about for a while, but I have realized some new things in their practice recently that make them only that much more fascinating.  The first thing is to understand exactly what they are.  An extension method is "actually" a static method where the first argument designates it being available as an instance method.  Here is a snippet of one for syntax.

The above snippet is a simple extension that can be called on ANY IEnumerable<T> to wrap it within a TSList object(this is just a thread safe list I created).  Pretty cool, but doesn't do much.  This is way I would use them mainly when I first discovered them.  It works well to reduce code lines a good bit.

RECENT DISCOVERY #1

So, given that extension methods are trully static methods, we can actually call them on any field/property that matchs the first argument type.  The value CAN be null!!!  This works well in a few other cases.  Here's another snippet of a simple use case.


So, the above extensions allow any  event handler to be called using one line instead of the normal two to ensure it's not null.  Yawn.... these two examples are really not that exciting.

RECENT DISCOVERY #2

Extensions can actually be used to do incredible things with reinstantiating objects, and thread safety during that change.  In the snippet below I am taking an array, we don't need to know what kind, and resizing it while maintaining thread safety.  There are other extension methods for pulling the values etc. while utilizing the same thread safety techniques.



The using brackets are due to a Smartlock class I use which is instantiated by the CreateLock EXTENSION method on objects with the ICollection interface.  If you review this closely you should see that it pulses both the previous lock and the new lock when a new array is created.  It does this to ensure that the other thread safe extensions will be pulsed if needed one way or another.  (This has been tested for stability with success).

RECENT DISCOVERY #3

Ok, this is where things get a little more interesting and becomes that much more useful with all the above practices considered as well.  Using polymorphing types extension methods can be used to change objects state and type in method chains.  I don't have quite enough space here to really showcase the whole thing, but my posting isn't a tutorial anyway, just something to think about.



When looking at this one note that it doesn't always return the same object.  It may return a "MultiSelector" or the argument passed.  There are others to force return of the parent or a child etc etc.  Methods like the first ToList example make this less fantastic, it just shows a more clear example of how extreme this can go.  If you study up on interfaces and polymorphism you can do amazing things with extension methods.  Like converting Enums to arrays.  That one is really fun =)

Tuesday, October 16, 2012

Comparing RuneEngine to Unity3D - Test #1

Last night I performed my first official render comparison test with Unity3D's latest released version.  Unity 4.0 may be a significantly different story, but I use what I have access to for now.  I was unable to test against Unity Pro version which supports static instancing which may make a significant difference in the results, but here is my test case and what was found:

Test Case --
20,000 Cubes assigned to Diffuse texture
500 Point lights
0 moving objects
Deferred Rendering configured.
720x480 resolution
Physics Disabled
Input Disabled

Unity3D 3.5.6f4 --
Editor Crashed
Debug build Crashed
Release build Runs
FPS in Debug: n/a
FPS in Release: ~3-4

RuneEngine v2 --
Editor n/a
Debug Build Runs
Release Build Runs
FPS in Debug: not tested due to Unity3D results
FPS in Release: ~135-140 as Active Window ~35-40 as Inactive Window

Further tested to determine threshold for 30FPS with 500 deferred lights found that this can support up to 400,000 diffuse textured cubes in conjunction with 500 deferred lights non-moving while remaining above 30FPS.

Ok, a lot of abstract information.  Well, for those who are not aware 28+ is a solid framerate to avoid jerkiness, but some video formats only push 24/25 FPS and remains unnoticed.  Therefore RuneEngine is fully capable of pushing non-jerky frames in this test case and well beyond the specific test case while Unity is not.

My analysis from these results is as follows, the new Update Systems and the Rendering Pipeline are optimal, though are still receiving some improvements.  However, Unity3d is likely to have some overhead that RuneEngine at this time has not accounted for.  Such as the Quad tree sorting.  In the basic scene all objects are rendered, but Unity would still be processing this sort.  Depending on the nature of how they do this that could be the cause of what is seen.  However, I must note that prior to the new Update System in RuneEngine my framerate results were rather similar to what is seen in Unity3D suggesting that this optimization may be the sole reason for the substantial performance difference.

Time will tell if this landslide performance difference continues to be so, but at the moment RuneEngine outperforms Unity3D by ~45-46 times...

I intend to do some further testing with this as time progresses, as well as confirming the performance of Unity3D Professional in comparison.  For now this is a pretty big success for RuneEngine I believe.

Thursday, September 27, 2012

RuneEngine V2's Flow System

I thought it would be kind of me to write a larger post about what this system is, how it will be used, and why it is a crucial part of the new RuneEngine V2 feature list.

If you're at all familiar with DirectShow basically imagine that, but re purposed for something... different.  For those who don't know, essentially we're working in Blocks that I call the IFlowBlock interface.  A block defines a procedure that handles a certain type of data.  This part is somewhat different from what DirectShow does.  The data is generic, where in DirectShow it's always a type of media passed by a buffer of bytes.  RuneEngine's Flow system can pass more or less whatever you see fit.  There are just a few rules. So, in DirectShow a sample or data is passed downstream all the way to the end, in every case.  Well... Flow is not going to do the same necessarily.  It can, but generally speaking the end block is going to be a renderer or finalizing state, so it should only be hit when the rest is complete.  Flow data starts upstream and passes downstream until it hits a breaking condition.  Data can be flagged for passthrough transit meaning, it's going all the way to the end or to a certain point before processing itself.

I could go on and on about how data moves and the different possibilities, but the key thing to understand about Flow vs DirectShow.  DirectShow has rules, while Flow is more user defined.  The both have Pins and "Filters" or "Blocks", even "Graphs", but ultimately they are completely different beasts.

Flow is not designed for processing video/image data, it is designed for processing some data in a specified sequence using a system of interchangeable blocks.  Within the upcoming particle system this will be used by the ParticleController.

The blocks though will control a state of a particle.  A particle graph may look rather complicated, but it houses some insane possibilities compared to other particle systems.  And it does this without creating 20 emitters and controllers.  Below is an example of what a simple particle system graph may look like:

This may not be the final example, but in this the idea is despite the appearance, when in one of the velocity blocks the object actually does not receive wind, it just uses velocity to update.  Wind control happens after the velocity state is complete.  So, for a certain time, a particle will be moving in a specified velocity, when reaching it's final output, it moves to wind control.  Particles internally hold a velocity value, so the old velocity should be there still.  Wind control is going to manipulate this.  So, you would see the particle slow down and react to the wind.  Imagine and explosion where the particles move out quickly then get carried away in the wind after.  That is what this somewhat the idea of what this effect would accomplish.

This demonstrates that this system is more sequence driven.  One block does not start til the following is complete, though that is not a forced behavior.  It was the design.  However, particles are small instances so the overall will almost seem like streaming update, it's not exactly.  Now, in theory could you create a loop back effect to handling particles, without changing the underlying system?  Absolutely!!! You could easily create a block that has a loop back output pin which send's items back to another block if the parameter to pass forward has not been met.

Given that this system is newish, and purpose is different than similar systems these are only speculations of ideas.  The actual implementation and design of graphs will come after some testing.  If I find some cool tricks to do with the FlowGraphs they will likely get shared as examples. =)

That's all I got for now though.