Search
Write a publication
Pull to refresh
27
0
Андрей Журавлёв @Gen1us2k

Разработчик

Send message

Ускорение тестирования Django-проектов

Reading time6 min
Views5.1K
Вопросу тестирования Django-приложений уделено много внимания в различных статьях, в том числе и на Хабре. Почти в каждой из них хотя бы пара предложений посвящена способам и хакам для ускорения прохождения тестов, и поэтому сказать что-то принципиально новое здесь непросто.

В проекте панели управления хостингом, разработкой которой я занимаюсь значительную часть времени своей работы в NetAngels, насчитывается 120 таблиц и при тестировании загружается порядка 500 объектов из fixtures. Нельзя сказать, что это пугающе много, однако создание всех таблиц, добавление индексов и загрузка объектов при каждом запуске теста довольно сильно напрягают, особенно, если запускается всего один или пара тестов.

Под катом довольно кратко перечислено несколько способов ускорения тестирования, предложенные ранее, а в конце приведено подробное описание еще одного полезного рецепта, который для меня теперь, надеюсь, уже окончательно снял проблему скорости выполнения тестов.
Читать дальше →

Тестирование проектов Django

Reading time5 min
Views58K
В предыдущем посте мы бегло рассмотрели некоторые приемы тестирования кода на питоне. Все это применимо также и к Django-проектам, безусловно, но есть достаточное количество подводных камней и просто интересных штук, о которых я попробую рассказать.

Краткое содержание поста:
  1. тестирование веб-сайтов — это сложно и непонятно
  2. юнит-тесты в django
  3. тестовая БД и как с ней бороться
  4. smoke testing
  5. покрытие кода (code coverage)
Читать дальше →

SignalR в помощь, или как оживить web

Reading time7 min
Views107K

Введение


Во многих web проектах присутствуют элементы, значение которых необходимо часто менять. Это могут быть счётчики, индикаторы, уведомления и подобные элементы. Показывать ли актуальные значения после обновления страницы или же можно реализовать автообновление всех этих данных? Для нас ответ очевиден: если есть возможность динамически менять элементы, то для обновления страниц не остается места.
Читать дальше →

Раскрываем магию MySQL или о строгости и мягкости MySQL

Reading time15 min
Views140K
Очень часто в интернете встречаюсь со статьями, в которых приводят кучу примеров с якобы странным поведением MySQL по сравнению с другими БД. Чтобы стало понятно, о чём я говорю, приведу несколько примеров:
1. Деление на ноль возвращает NULL вместо ошибки
2. Выход за диапазон допустимых значений неявно приводит число к допустимому значению, а не к ошибке и откату транзакции
3. Вставка неверного типа данных также приводит к неявному преобразованию и успешному выполнению операции
Таких примеров я могу привести огромное число, но цель статьи не сделать очередное собрание высосанных из пальца примеров, а объяснить, почему происходит то или иное действие. Вся эта мистика MySQL давно описана в документации и легко объяснима, в чём вы сможете убедиться сами, прочитав статью до конца.
Для меня эта первая статья на хабре, поэтому я старался писать дотошно подробно. Уверен, что она будет полезна всем, кто работает с MySQL. Большую помощь в написании статьи оказала подготовка к сдаче на сертификат разработчика MySQL, а точнее книга «MySQL Certification Study Guide».
Итак, мой друг, начнём!
Читать дальше →

А сложно ли работать программистом?

Reading time4 min
Views152K


Этот вопрос мне часто задают вокруг. Задают родственники, друзья, дети друзей и вообще незнакомые люди. У всех своих цели — кто-то хочет сменить род деятельности, кто-то только выбирает куда пойти учиться, а кто-то желает в первую очередь убедить себя в том, что «вот еще и этим бездельникам ни за что деньги платят». Что же ответить на этот вопрос? Честно говоря, первым делом, конечно, хочется выпятить грудь колесом и двинуть речь о том, что, дескать, окромя нечеловеческого ума и 10 лет глубокой математической подготовки нужно еще иметь природный талант и пахать круглосуточно… Но где-то на третьей минуте этого увлекательного текста включаются мозги и здоровый скептицизм, требующий на время замолчать и немного подумать.

А и правда — сложно ли?
Читать дальше →

Полезные хаки и сниппеты для .htaccess

Reading time7 min
Views470K


Это перевод очень интересной лично для меня статьи, которым я хочу поделиться с уважаемым хабрасообществом. Некоторые из приведенных рецептов я уже встречал на Хабре, но разрозненно и далеко не все из нижеприведенного.

О предназначении файла .htaccess знает каждый веб-разработчик. На базовом уровне он позволяет управлять доступом к каталогам сайта. Но добавляя в него различные дополнительные фрагменты кода, с ним можно сделать и много других интересных вещей.

Если же вам нужны базовые сведения о предназначении данного файла, то вы можете получить из нашей статьи введение в .htaccess (перевод данной статьи не делал, так как там основы, их достаточно в русскоязычном сегменте Сети, но если будет проявлен интерес, то можно и ее перевести для полноты картины — прим. переводчика), в которой достаточно подробно раскрыты все аспекты его применения.
Узнать больше

Факты в puppet

Reading time2 min
Views12K
Зачастую мы сталкиваемся с проблемой что стандартных фактов которые поставляются вместе с puppet не всегда хватает. Решение этой проблемы может быть достигнуто путем добавления новых фактов. Вы можете добавлять свои факты, написанные на Ruby, на puppet сервер. Затем сервер, используя синхронизацию плагинов, распространит их на все клиенты.
Читать дальше →

Google открыл регистрацию на второй курс продвинутого поиска

Reading time1 min
Views19K


Если вы хотели бы уметь находить ответы на вопросы типа «Какое историческое кафе вдохновило стихотворение лауреата Нобелевской премии?» или «Какие из победителей последних трёх чемпионатов мира среди бариста не использовали бобы из своей страны?», то Google приготовил для вас онлайн-курс продвинутого поиска. (Причём это уже второй.)

При поиске ответов на вопросы, которые нельзя найти с помощью одного запроса, поиск может быстро превратиться в целое исследование. Как пишет Дэн Рассел, занимающий в Google прекрасную должность технического убер-руководителя по качеству поиска и счастью пользователей, новый курс продвинутого поиска поможет получить более глубокое понимание того, как стать лучшим исследователем.
Читать дальше →

Пишем расширение для google chrome

Reading time11 min
Views31K
Написать расширение для google chrome несложно. Но при написании первого раширения могут возникнуть (и возникают) вопросы. Большинство мануалов по написанию первого расширения расчитаны на использования манифеста первой версии, поддержка которого в скором будущем прекратится.

В этой статье будет рассмотрено:
  • Как составлять манифест v.2
  • Как работать с удаленными ресурсами
  • Как работать с cookies
  • Как работать с local storage
  • Как работать с уведомлениями

Читать дальше →

Взгляд на процесс разработки

Reading time4 min
Views15K
image
В этом небольшом рассуждении я хочу поделиться мыслями о том, как, на мой взгляд, может выглядеть процесс разработки. При этом не имеет значения область, в которой налаживается процесс. Он достаточно универсальный, и может подойти для организации самых разных работ. Но акцент все же будет сделан на разработку программного обеспечения.
Читать дальше →

Эмиграция в Польшу как студент либо как фрилансер

Reading time11 min
Views195K
Прокомментировав хорошую статью IT-эмиграция в самое сердце Европы, в Словакию я получил сразу же много писем по внутренней почте хабра с вопросами по этому поводу, и с просьбами рассказать подробнее. Увидев такой ажиотаж, решил что не будет лишним попробовать расписать подробно для широкой аудитории.
Так как я переезжал вместе с девушкой, которая ехала сюда учиться на магистратуру, то у меня есть возможность описать оба способа переезда, вместе с подводными камнями с которыми мы сталкивались. Таким образом статья разделена на 2 части — переезд фрилансера, и переезд на учебу.
Читать их полностью

Создание отказоустойчивого шлюза на основе Mikrotik RouterOS

Reading time6 min
Views113K
Стояла задача обеспечить отказоустойчивость работы сетевого маршрутизатора, который должен был поддерживать несколько локальных сетей, три канала в интернет от разных провайдеров, DMZ и десяток VPN соединений для удаленных пользователей.

Под отказоустойчивостью подразумевалась мгновенная замена оборудования в случае выхода из строя. Я остановил выбор на Mikrotik RouterOS, так как имел положительный опыт эксплуатации данной ОС. Так же на выбор повлияло удобство настройки и администрирования благодаря утилите Winbox.

Данный пример отказоустойчивости работает в боевых условиях несколько лет и себя оправдал. За время эксплуатации конфигурация несколько раз переделывалась, но вариант, который ниже, в моих условиях оказался оптимальным. Сейчас выключение одного из роутеров не влияет на работу, они полностью взаимозаменяемы.
Читать дальше →

Работа и жизнь гика с проблемами концентрации внимания

Reading time8 min
Views221K
Каждый — гениален. Но если вы будете судить рыбу по ее способности лазать по деревьям,
она всю жизнь проживет с верой в свою глупость.

Альберт Эйнштейн

Лень — это привычка отдыхать до того, как ты устанешь.

Жюль Ренар


Проблемы с концентрацией внимания? Внешнее воздействие сбивает с толку? Кажется, что все кругом рушится? Не получается запоминать вещи? Выход есть. Чтобы все было нормально, надо только чуть-чуть помочь. Надо принять себя и научиться с этим жить.

Решительно сократить количество проблем можно, придерживаясь следующих рекомендаций:
  1. В голове держать не больше трех-пяти вещей за раз, объединив действия в большие смысловые блоки.
  2. Раз и навсегда выбрать решение по ежедневному набору мелочей: вносить дела к календарь, проверять утюг и т.п.
  3. Разложить все вещи по своим местам и поддерживать заведенный порядок.
  4. Дублировать необходимые и часто используемые вещи; разложить их по всем углам.
  5. Умело пользоваться календарем, мобильником и другими инструментами интернет-века.
  6. И самое главное: НЕ ОТВЛЕКАТЬСЯ ПО МЕЛОЧАМ!
Интересно? Читаем дальше!

Что нам стоит Git настроить!

Reading time3 min
Views107K

Дарова, хабр! (ничего оригинальнее не придумал)

Сомневаюсь что эта заметка тянет на полноценный пост, но я все же оставлю ее здесь. О чем же пойдет речь?

Все мы слышали о Git. Все мы знаем что он — хорош. Но лишь немногие пытаются что-то с ним делать, как-то его протвикерить. Сразу говорю, тут не будет ничего паранормального, только немного работы с файлом .gitconfig. Да-да, именно с тем файлом, который так трепетно пылится у вас в домашней директории.

Так, мне уже немного надоело писать этот, по сути, бессмысленный вступительный текст, так что давайте уже начнем что-то делать.
Читать дальше →

Разбор простого криптографического keygenme

Reading time4 min
Views33K
Привет, хабрахабр.

Листая одним декабрьским вечером различные хабы, я заметил, что нигде давненько не бывало статей о реверсинге. А разборов crackme/keygenme – и подавно. И вдруг меня осенило: почему бы не написать свой туториал?



Тех, кого интересует разбор простенького криптографического keygenme и что же в итоге получилось, прошу под кат.

Читать дальше →

Шпаргалка по верстке для больших и маленьких

Reading time3 min
Views101K
Приветствую!

Хочу представить вашему вниманию небольшую шпаргалку, в которой собраны решения некоторых из часто встречающихся проблем, а также кое-какие малоизвестные, на мой взгляд, факты.

Статья рассчитана скорее на новичков и на людей, имеющих косвенное отношение к верстке, но которым по долгу службы часто приходится иметь с ней дело. Возможно, даже гуру верстки найдут в ней что-нибудь новое для себя, если давно не совершенствовали свои навыки.
Читать дальше →

Уроки написания утилитки на $1 000 000

Reading time4 min
Views198K


Осенью 2008 года мы потратили две-три недели свободного от основной работы времени, чтобы написать маленькую утилитку для бэкапа баз данных (MS SQL Server и потом MySQL). Сегодня она приносит нам около $230 000 в год и можно с уверенностью говорить, что суммарно мы заработаем на ней больше $1 000 000.

Под катом я расскажу, как это получилось и какие уроки мы из этого извлекли. Вполне возможно, что нам просто глупо повезло и опыт этот целиком неверен и теории не соответствует и только навредит вашему начинанию — читайте на свой страх и риск.
Читать дальше →

10 дистрибутивов Linux специального назначения

Reading time2 min
Views224K
Прелесть Linux в том, что можно сделать дистрибутив под любые запросы. Требуется лишь время и желание. Многие популярные дистрибутивы Linux — результат работы отдельных энтузиастов или групп, недовольных имеющимся набором опций. Вот некоторые из дистрибутивов Linux специального назначения.

1. Parted Magic OS: дистрибутив для восстановления дисков и работы с разделами, который поддерживает более десяти файловых систем и включает различные утилиты для «переноса, копирования, создания, удаления, расширения и сжатия дисковых разделов. Клонирование дисков и осуществление полного бэкапа. Тестирование дисков на возможность сбоя в будущем. Поиск сбойных секторов. Тестирование производительности компьютера. Безопасная полная очистка диска без возможности восстановления. Доступ к незагружаемым HDD для восстановления важных данных».


Читать дальше →

Information

Rating
Does not participate
Registered
Activity