#summary Some awesome statements and thoughts.

*Context*: Something that didn't work in Melange before, suddenly started to work without any known reason.

"*Sometimes computer science is not really science, it's astrology!*" _Mario_

----

*Context*: Reviewal of tests which Praveen wrote.

"*For testing, you want to test as much as possible. For coding, you may want to code as few as possible. :)"*   _Leo_

----


*Context*: When there is a divergence between a local repo and central mercurial repo and if one tries to push to the central repo.

"*hg warns you but it says if you still want to shoot yourself in the foot, go ahead,
here is the gun and it gives you hg push -f option. -f is the real gun to shoot yourself in the foot.:D "*  _Madhushudan_

----

*Context*: Rebasing of changesets.

*"There are two schools of thought. They are really really "SCHOOLS OF THOUGHT", so loudly :P. There is always a flame war between the two groups. One of the faction- the faction of "Purists" claim that no history should ever be rewritten or misrepresented. But there is another faction, I call them "Whatever-ists" :P. They don't mind if small changes are missed up."* _Madhushudan_

----

*Context*: Asking the developers the reason behind some design choices, they responded giving blame to other libraries we're using.

*"I hear a lot of proper nouns and not enough apologizing"* _Nathaniel_

----
*Context*: Triaging issue 1921

*"Yes, I think this is fixed, but it's fixed in the same way as closing a toilet seat instead of flushing it."* _Daniel_

----
----

===From June 2013 Melange All Hands===

*Context*: After a new change from Mario has been pushed to a ninja release and it didn't work.

*"It works locally!"* _Mario_

----
*Inspirational quotes from the board*

_Nathaniel_

  * "Show me your flowchart and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowchart; it'll be obvious" (_Brooks, "Mythical Man-Month"_)
  * "Make illegal states impossible" (_Minsky_)
  * "Amateurs practice until they get it right; professionals practice until they cannot get it wrong." (_unknown_)
  * "Symbolic is better than literal" (_Nathaniel_)

_Madhusudan_

  * "Work expands to fill the amount of time available" (_Parkinson's law_)

----
----
===From January 2014 Melange All Hands===

* "Spite-driven Software Development. It works!"* _Nathaniel_
----
* I still remember your rant... sorry... "constructive reevaluation" * _DrewR_ to _Nathaniel_
----
*Context*: About encapsulation of related types in an object to be passed to functions.

*"There is a thingness to it."* _Nathaniel_
----
*Context*: When choosing the "fun activity" for the week.

*"You want a fun activity? Pick something from the issue tracker!"* _Daniel_
----
----
===February 2014===
*"I would not do that myself. I just included that option because you like injecting stuff in constructors."* _Daniel to Nathaniel_
----
----