# Where?

  * Tim Ansell's [logs2html.py](http://www.thousandparsec.com/~irc/logm/) Log (for #melange)
  * Tim Ansell's [logs2html.py](http://www.thousandparsec.com/~irc/logd/) Log (for #melangedev)
  * (backup for older #melange logs) Tim Riker's [iBot](http://ibot.rikers.org/%23melange/) Log.


_and from before automatic logging..._

  * [MelangeIRCMeeting20080909](http://code.google.com/p/soc/wiki/MelangeIRCMeeting20080909) (Aug 9th 2008)
  * [MelangeIrcMeeting20081013](http://groups.google.ie/group/melange-soc-dev/browse_thread/thread/76ed342ac19eff4a#) (Oct 13th 2008, AM meeting)