По второму:
<textarea onkeyup="this.style.height = 'auto'; this.style.height = this.scrollHeight + 'px'"></textarea>
Сброс высоты на auto нужен для получения реальной высоты. Если бы не было этого сброса, то высота оставалась бы на своем максимальном значении (например, если удалить строку).