**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 (on Google Code)

**"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_

---


---
