#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_

----
----

===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_)

----
----