Предыстория
В проекте algoprog.kz для проверки задач используется система eJudge. У нее есть отдельный web интерфейс, написанный на С, позволяющий в первую очередь управлять и следить за соревнованием. Исторически так сложилось, что эти CGI скрипты запускали из под apache, а я свои проекты запускаю по Nginx. В общем мне захотелось избавиться от apache и научиться запускать CGI скрипты из под Nginx. Далось мне это не так легко.
Дальше
Ужасно давно ничего не писал. Сегодня вот хорошее настроение с утра и я решил поделиться своими находками в стиле lifehack.
Наверное многие из вас слышали о таком замечательном текстовом редакторе как Sublime Text.
Не буду долго и мучительно рассказывать о том, о чем уже много раз сказано.
- http://dimox.name/sublime-text-editor-for-code/
- http://www.trymbill.is/9-reasons-why-sublime-text-2-should-be-your-next-ide/
- http://1p1e1.tumblr.com/post/14262857223/9-reasons-you-must-install-sublime-text-2-code-like-a
Особенно мне понравился этот пост http://net.tutsplus.com/tutorials/tools-and-tips/sublime-text-2-tips-and-tricks/
По теме
Сегодня с утречка пришла в голову мысль, что неплохо было бы запускать terminal прямо из Sublime text. Я сразу же погуглил,
и нарвался на этот пост, который описывал плгин под названием Terminal. Terminal можно установить прямо из редактора с помощью Package Control плагина.
Вроде неплохо, даже как-то слишком просто. Теперь по шорткату Alt+Shift+T запускается terminal в папке текущего файла, а на Ctrl+Alt+Shift+T в корне проекта.
Однако мне хочется большего. Так как я пишу в основном на Django и использую Virtualenv было бы здорово уметь запускать терминал в корне проекта, сразу с нужной средой.
Далее
Очередная заметка типа how-to. Что бы в следующий раз не лазить по интернету и искать
как выполнить эту же задачу, запишу лог проделанной работы сейчас.
Требуется поднять свой MTA для рассылки писем клиентам. Вот как это делается на ubuntu:
Сначала остановим стандартный sendmail и удалим его, что бы не возникло конфликтов в будущем.
$ sudo service sendmail stop
* Stopping Mail Transport Agent (MTA) sendmail
sudo apt-get remove sendmail
Устанавливаем exim4
sudo apt-get install exim4-config exim4
Далее
На algoprog.kz используется немного пропатченая версия ejudge.
Тестировал на версиях 2.3.16 и 2.3.17. Патч добавляет такие функции в еjudge-contests-cmd:
- dump-languages - получить языки контеста
- get-contest-status - получить статус контеста
- get-contest-sched - время старта
- get-contest-duration - длительность
- get-contest-description - три предыдущих вместе + название контеста
- submit-run-v2 - сабмит задачи не по short_name а по id
Дальше...
Как узнать размер папки из коммандной строки?
~/work$ ls -l
total 36
drwxr-xr-x 4 german german 4096 2011-01-12 17:15 android
drwxr-xr-x 5 german german 4096 2011-06-02 17:26 ant
drwxr-xr-x 13 german german 4096 2011-06-14 12:41 django
drwxr-xr-x 7 german german 4096 2011-04-14 16:59 envs
drwxr-xr-x 14 german german 4096 2011-05-24 13:30 irbisenv
drwxr-xr-x 8 german german 4096 2011-05-19 12:05 jee
drwxr-xr-x 5 german german 4096 2011-05-07 14:51 olymp
drwxr-xr-x 2 german german 4096 2011-06-03 14:56 python
drwxr-xr-x 14 german german 4096 2011-05-08 17:28 sandbox
Если так, то размера папки мы не узнаем. Всегда пишется одно и то же: 4096.
Вот одно из решений:
~/work$ du -sh django/
1.3G django/
Когда файлов много это дело занимает несколько секунд.