• Django - как посчитать количество часов, минут, секунд (TimeField)?

    aruseni
    @aruseni
    А, ну так у вас всё просто. Написание решения, подходящего под указанные условия, элементарно.
  • Django - как посчитать количество часов, минут, секунд (TimeField)?

    aruseni
    @aruseni
    Ага, ну, допустим. А если start_t, например, 23:30, а end_t 02:05? И зачем у вас вообще эти поля задаются как TimeField, а не DateTimeField? Что в них хранится на самом деле?
  • Чем плоха конструкция a href="javascript:void(0)"?

    aruseni
    @aruseni
    Если просто биндить click для, например, span (не добавляя tabindex) — то снова получаем очень хороший пример того, как не нужно делать. Пользовательские интерфейсы публично доступных веб-сайтов разрабатываются для широкой аудитории, а потому должны соответствовать стандартам секции 508 (www.w3.org/WAI/GL/508/508-UAAG.html), а также WCAG (www.w3.org/TR/2008/REC-WCAG20-20081211/). В частности, те операции, которые возможно совершить с помощью мыши, должны по возможности также должны быть доступны с клавиатуры: в частности, должна быть возможность выбирать различные элементы с помощью клавиши Tab, и так далее — это имеет смысл не только с точки зрения обычного удобства, но и для тех пользователей, кто по каким-то причинам не может видеть картинку на экране, и использует screen reader'ы для автоматического чтения с экрана. И в этом случае, соответственно, если клавиша Tab не работает правильно, то они могут вообще не понять, где та часть страницы, которую они ищут.
  • Какова важность диплома при приеме на работу?

    aruseni
    @aruseni
    По моему опыту про образование спрашивают приблизительно в 2 местах из 10, и по странному совпадению это обычно оказываются самые худшие 2 места из 10 (самая низкая зарплата, самые странные и нелогичные условия работы, неудобный график и так далее).

    Но из этого правила есть исключение — очень большие компании вроде Google. И ещё один пример — это трудоустройство за границей: вашего потенциального работодателя может совершенно не волновать, заканчивали ли вы школу или университет, но вот само государство может выставлять жёсткие требования к иностранцам, желающим получить рабочую визу.
  • Возможен ли MitM при использовании открытого wifi кафе ?

    aruseni
    @aruseni
    Да, конечно же, я тогда имел в виду «просить у DHCP-сервера новый IP-адрес» и «незанятые IP-адреса закончатся». :)
  • Возможен ли MitM при использовании открытого wifi кафе ?

    aruseni
    @aruseni
    Собственно, да, вы ведь точно не знаете, откуда сертификат. Например, злоумышленник мог воспользоваться ARP-спуфингом (например, вот тут почитайте). Или есть вероятность, что вы вообще подключились к его точке доступа, которая маскируется под точку доступа кафе.

    Ещё один вариант — можно запустить скрипт, который будет менять MAC-адрес машины и просить у DHCP-сервера новый MAC-адрес. Через некоторое время у DHCP-сервера незанятые MAC-адреса закончатся. Что в этом случае происходит? Да ничего, DHCP-сервер просто перестаёт выдавать адреса (он даже не отвечает, что у него нет свободных адресов — он просто игнорирует запрос адреса). А это, соответственно, обозначает, что мы можем запустить у себя другой DHCP-сервер и выдавать вновь подключающимся клиентам что захотим (хоть DNS-серверы подменить, хоть адрес роутера — что угодно). Вот тут об этом написано.
  • Получение опыта в программировании?

    aruseni
    @aruseni
    Я написал тебе такую программу. :)

    На Django.

    При программировании я использовал git. То есть историю версий ты
    можешь посмотреть командой git log (естественно, сначала нужно
    установить git), находясь в директории с программой.

    Теперь опишу установку (для Ubuntu 10.10).

    Скачиваешь файл, распаковываешь его к себе (например, в
    домашний каталог).

    Открываешь консоль, делаешь sudo su.

    apt-get update
    apt-get install python-django
    apt-get install python-setuptools
    apt-get install python-all-dev
    easy_install pisa
    easy_install reportlab
    easy_install html5lib

    Переходишь в каталог с программой и делаешь syncdb — при этом надо
    будет создать суперпользователя, которого можно использовать для входа
    в админку, если она для чего-нибудь понадобится (/admin/).

    cd testcreator
    python manage.py syncdb

    И запускаешь сервер. Вообще, он вполне подходит для обычного
    использования, но для использования несколькими людьми и вообще
    продакшена настоятельно рекомендую обратить внимание в сторону
    gunicorn + nginx.

    python manage.py runserver

    Всё, программа должна быть доступна по следующему адресу.

    http://127.0.0.1:8000/

    Кстати, там используется unobtrusive javascript. То есть если
    JavaScript у пользователя по каким-то причинам выключен, и модные
    анимированные эффекты динамически меняющихся страниц у него не
    отобразить, то программа у него всё равно работает — просто происходит
    дополнительный переход по ссылке.