Search
Write a publication
Pull to refresh
33
0
Марсель Гиззатов @Rivethead

python developer

Send message

GeoIP и Django

Reading time3 min
Views14K
Вебразработчики частенько сталкиваются с классической задачей определения местоположения пользователя по его IP-адресу. Существует множество различных решений, например на основе мировой базы Maxmind Geolite или российской IpgeoBase. Все они обладают достаточно низкуровневыми API, ну оно и понятно: на входе айпишник, на выходе страна, либо город и, если повезёт, ещё какая-нибудь полезная информация.

У всех сайтов с GeoIP, которые мы запускали, есть общая черта: они не только нуждаются в простой геолокации, необходимо также выводить различный контент на сайте в зависимости от месторасположения пользователя. Чтобы упростить для себя эту задачу мы написали небольшую батарейку django-geoip, вдохновившись приложением django-ipgeobase.
Читать дальше →

Python threading или GIL нам почти не помеха

Reading time7 min
Views25K
Наверное всем, кто хоть раз интересовался Python, известно про GIL — его одновременно и сильное и слабое место.
Не мешая однопоточным скриптам работать, он ставит изрядные палки в колеса при многопоточной работе на CPU-bound задачах (когда потоки выполняются, а не висят попеременно в ожидании I/O и т.п.).
Подробности хорошо описаны в переводе двухгодичной давности. Побороть GIL в официальной сборке Python для настоящего распараллеливания потоков мы не можем, но можно пойти другим путем — запретить системе перебрасывать потоки Python между ядрами. В общем пост из серии, «если не нужно, но очень хочется» :)
Если вы знаете про processor/cpu affinity, пользовались ctypes и pywin32, то ничего нового не будет.
Читать дальше →

Гайд по созданию Facebook Welcome Page и других кастомных табов

Reading time8 min
Views49K
Facebook — самая большая социальная сеть и один и самых посещаемых сайтов в мире. В ней можно не только постить веселые статусы и лайкать фотографии, но и
использовать, как мощный маркетинговый инструмент. Все логично — миллиард пользователей, возможность таргетинга на определенную аудиторию, мгновенные объявления, ну и масса других
полезных штук, которые недоступны для оффлайна. На сегодняшний день сложно найти компанию без собственной бизнес-страницы или популярную личность без фан-пейджа. В этой статье постараюсь
подробно разобрать техническую сторону этого вопроса со стороны фронт-енд разработки.
Речь в посте пойдет не о создании самой страницы, потому что это довольно тривиальная процедура, а о пользовательских вкладках, которые можно добавить самостоятельно и наполнить нужным контентом.
Любой, даже начинающий веб-разработчик, может сделать с десяток таких табов за один вечер, зная некоторые принципы и нюансы их создания.
Я имею в виду подавляющее большинство всякого рода welcome-страниц, страниц-анонсов и страниц со всяким информационным текстово-графическим контентом. На страницы посложнее с динамическими элементами, формами и прочим функционалом времени уйдет, конечно, побольше.


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

Мой подход к созданию ТЗ на шаблонные сайты

Reading time6 min
Views20K
eyestopper

Вместо эпиграфа.


Поймал дед золотую рыбку. Она ему говорит:
— Чего тебе, дед?
— Хочу чтоб мой аппарат был длиной до колен.
Взяла рыбка и укоротила деду ноги.
Мораль: ставьте корректно техническое задание.

Добрый день великий и могучий Хабр.
Некоторое время назад было несколько постов о технических заданиях (Как поставить задачу для простого (шаблонного) сайта, Почему мы никогда не составляем ТЗ. А что взамен?, Правила технического задания), которые хотелось бы продолжить и рассказать про мой подход к написанию ТЗ на шаблонные сайты.
Читать дальше →

Пишем электронную музыку. VSTi синтезаторы

Reading time7 min
Views93K


Сейчас обычного компьютера вполне достаточно для создания качественной электронной музыки. Многие пробовали писать свою музыку, интересовались этой темой. Возникло желание поделиться своим опытом. Первая статья из серии будет на важнейшую тему — VSTi синтезаторы.

Что такое VSTi? Зачем нужны VSTi? Почему не хватит одних только семплов для создания качественной музыки?

Во-первых: такого семпла, который звучал так как хочешь, еще нужно найти. А это не так просто. Естественно существуют продакшен-библиотеки с готовыми мелодическими лупами, но в таком случае создание музыки подобно складыванию конструктора лего.

Во-вторых: семплу нельзя так же просто изменять звучание как звуку синтезатора.

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

Семплы, конечно же, используються в ряде VSTi — семплерах и ромплерах, где например может быть засемплировано пианино или гитара. Что не возможно качественно создать одним синтезом. Но занимают много места и не имеют возможности полностью изменять звук как генерированые синты.

Как же можно создавать свое звучание?
Читать дальше →

CAP-теорема простым, доступным языком

Reading time6 min
Views90K
Этот текст является вольным переводом замечательного поста Kaushik Sathupadi на тему распределённых систем и существующих ограничений при их создании.

При разработке распределённых систем вы наверняка часто услышите упоминания об CAP-теореме. Давайте попробуем понять её через ситуацию, которая могла возникнуть в реальной жизни.

Часть №1: Идея нового сервиса — «Позвони, напомню!»


Вчера, когда ваша супруга в очередной раз оценила тот факт, что вы вспомнили о её дне рождения и подарили шикарный подарок, в голове всплыла забавная идея. «Хм, а ведь люди вечно всё забывают». А у вас просто блестящая память! Почему бы не сделать новый сервис, который позволит полностью раскрыться вашему таланту? С каждой мыслью об этой идее вам всё больше и больше она нравится. Вы уже даже придумали рекламу, которую можно было бы напечатать в газете:
«Позвони, напомню» — Никогда не забывайте, даже если вы не помните, что забыли!
Плохо себя чувствуете из-за того, что вы что-то забыли? Не переживайте. Помощь на расстоянии одного телефонного звонка!
Если вам нужно что-то запомнить, просто позвоните и сообщите нам об этом! Допустим, позвоните нам и сообщите телефон вашего босса. Забудьте про него. Когда вам нужно будет вспомнить его, перезвоните, и мы вам обязательно напомним.
Всего 3 рубля за звонок.

Типичное обращение в ваш сервис выглядело бы вот так:
Читать дальше →

Как начать работать с GitHub: быстрый старт

Reading time6 min
Views1.3M


Распределенные системы контроля версий (DVCS) постепенно замещают собой централизованные. Если вы еще не используете одну из них — самое время попробовать.

В статье я постараюсь показать, как можно быстро начать экспериментировать с git, используя сайт github.com.

В статье не будут рассмотрены различия между разными DVCS. Также не будет детально рассматриваться работа с git, по этой теме есть множество хороших источников, которые я приведу в конце статьи.
Читать дальше →

Немного о хэшах и безопасном хранении паролей

Reading time4 min
Views72K
Upd. Если вы знаете, что такое BCrypt, можете дальше не читать. Если вы используете PHP 5.5+ то можете прочитать эту статью. Ниже же я изобрел свой велосипед, рабочий, но с двумя рулями, задний запасной. Молод был, горяч.

Привет, хабр! Сегодня, в процессе разработки системы аутентификации для своего проекта передо мной встал выбор — в каком виде хранить пароли пользователей в базе данных? В голову приходит множество вариантов. Самые очевидные:

  • Хранить пароли в БД в открытом виде.
  • Использовать обычные хэши crc32, md5, sha1
  • Использовать функцию crypt()
  • Использовать статическую «соль», конструкции вида md5(md5($pass))
  • Использовать уникальную «соль» для каждого пользователя.

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

Шпаргалки для тех, кто делает первые шаги

Reading time1 min
Views31K


На картинке фрагмент отличной шпаргалки, где собраны основные электронные компоненты — их внешний вид и обозначения на принципиальных схемах.

Шпаргалка по электронным компонентам (PDF, 168Kb)
Шпаргалка по контроллерам AVR (ч.1) (PDF, 61Kb)
Шпаргалка по контроллерам AVR (ч.2) (PDF, 61Kb)

PS: Там же, на сайте, имеется любопытный блог с описанием эффектных электронных поделок. Культура исполнения на высоте, приведены ссылки на open source прошивки.

HowTo: continuous integration проекта на Django с помощью TeamCity

Reading time8 min
Views14K

Введение


В процессе разработки, создавая новый функционал, всё чаще широкими мазками стал задевать старый код чем разрушал логику его работы. Это заставило всё-таки написать юнит и интеграционные тесты для старого кода и автоматизировать их запуск, т.к. гонять руками все тесты как-то грустно. Как раз вспомнилось недавнее руководство по CI Django в Jenkins и довольно старое по Webtest в Django. В итоге была совершена попытка поднять Дженкинса, но он как-то на моей убунте не взлетел и я грешным делом вспомнил про TeamCity. «Раз уж пишу в PyCharm и нашёл к нему подход, то, наверно, и TeamCity осилю, ведь конторка-то одна!» — подумалось мне… В общем-то я оказался прав, и, пока мне позволяет карма, решил подарить вам ультраполезный (и мегаподробный), в отличие от моего предыдущего, мануал :)

Итого: кому требуется руководство по поднятию интеграционного сервера TeamCity, и тестирование в нём Django проектов c тестами nose и webtest в виртуальном окружении python с автоматическим его (окружения) обновлением — добро пожаловать под кат.

Осторожно! Для работы TeamCity требуется (согласно документации) sun/oracle версия JVM…
Читать дальше →

Собираем данные с помощью Scrapy

Reading time4 min
Views117K
Здесь уже проскакивали вскользь упоминания об этом фреймворке для сбора данных. Инструмент действительно мощный и заслуживает большего внимания. В этом обзоре я расскажу, как

scrapy

  • создать паука, выполняющего GET запросы,
  • извлекать данные из HTML документа,
  • обрабатывать и экспортировать данные.





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

DirectAccess в Windows 7. Часть1

Reading time6 min
Views43K
В своем предыдущем посте я упоминал о двух, с моей точки зрения, наиболее интересных нововведений Windows 7 – BranchCache и DirectAccess. Технология BranchCache была рассмотрена в прошлый раз. Настала очередь DirectAccess. Однако по ходу дела стало понятно, что материал выходит за рамки одного поста. Поэтому для начала я сосредоточусь на рассмотрении особенностей DirectAccess и некоторых вопросах использования IPv6.

Что такое DirectAccess

DirectAccess – технология удаленного доступа к ресурсам корпоративной сети. С потребительской точки зрения суть технологии можно выразить следующим образом: «Как только мой компьютер подключился к Интернету, так сразу я получил доступ и к ресурсам Интернета, и ко всей корпоративной сети». Выражаясь техническим языком, при подключении к Интернету пользовательский компьютер, сконфигурированный в качестве клиента DirectAccess (DA-клиента), автоматически устанавливает туннель до сервера DirectAccess (DA-сервера) и через него получает доступ ко всей корпоративной сети. Отличается ли это чем-то принципиально от традиционных VPN-решений? Давайте рассмотрим особенности DirectAccess и технологическую основу данного решения, после чего, думаю, каждый сам для себя сможет ответить на этот вопрос.
Читать дальше →

Опыт регистрации ИП для ведения бизнеса связанного с ИТ

Reading time3 min
Views31K
Однажды решив зарегистрироваться как ИП я столкнулся к несколькими неожиданными проблемами, о которых в интернете не могу найти практически никакой информации. Знакомая бухгалтер, консультирующая меня, тоже не слышала о подобных проблемах, поэтому решился на написание данного топика, чтобы помочь коллегам не попасть в подобную ситуацию.
Основные пункты «обязательной программы» регистрации много раз разжеваны в интернете, но пройдемся по ним заново, используя собственный опыт. Я специально не буду давать ссылки на программы, формы бланков и постановления, так как они быстро устаревают и смысла выкладывать их я не вижу. К тому же принятое заявление в Тамбове, могут не принять в другой налоговой и т.д.
Еще в моем случае нет наемных работников, это важно для прохождения «квеста».
Читать дальше →

Почему ИТшнику стоит стать ИПшником и почему не стоит регистрировать ООО

Reading time7 min
Views86K
В этой статье даются ответы на нижеследующие вопросы, основываясь на личном опыте и опыте коллег.

1. Почему стоит начать работать «в белую»
2. Почему на начальном этапе ИП лучше ООО
3. Что делать, если партнёров несколько

Если вы – начинающий или уже опытный фрилансер и подумываете о работе «в белую», но ещё точно не определились с вопросами «Стоит ли оно того?» и «ИП или ООО?», вэлком
под кат

Защита от DDOS атаки подручными средствами. Получение доступа к своему серверу

Reading time4 min
Views77K
За последнее время, наш сайт часто подвергается достаточно мощным DDOS атакам, к слову последняя атака была самой крупной за последнее время, размер ботнета по нашим оценкам — около 10 тысяч машин, мощность — 100 Mbits/s.

Атаку заметила даже Лаборатория Касперского, и предложила свою помощь в отражении, за что им спасибо. Правда к тому времени мы самостоятельно нашли решение, которое блокирует атаку. Собственно про это решение и пойдет речь.

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

Атака была типа HTTP Flood. Система на которой у нас работает сайт — Apache под Linux. Мы написали несколько скриптов, которые будут приведены в тексте статьи. В принципе аналогичный подход можно применять и для Windows/IIS.

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

Наносим удар по ddos ботнету своими силами

Reading time7 min
Views35K


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

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

Открыта Российская виртуальная академия Microsoft

Reading time1 min
Views9.2K
В сети Интернет есть немало информации о продуктах и технологиях компании Microsoft. Скорее всего, имея конкретный вопрос, воспользовавшись поисковыми системами, вы без труда отыщете ответ. Но такой подход может не подойти, если вы хотите шаг за шагом, начиная с азов изучить интересующую вас технологию. Около месяца назад по адресу www.msftva.ru была открыта Виртуальная Академия Microsoft на русском языке, позволяющая последовательно изучать продукты технологии в режиме онлайн.
Читать дальше →

Рецепт приготовления 1U сервера в домашних условиях

Reading time8 min
Views45K
Блюдо, о котором пойдет речь в этой статье, довольно-таки незамысловатое, однако на многих интернет-конференциях разгораются нешуточные дискуссии как по поводу правильности его приготовления, так и по поводу целесообразности его употребления.

Это блюдо может быть приготовлено в дорогом ресторане из качественных ингредиентов по уникальным рецептурам поваров из Dell, Fujitsu, HP, IBM и Sun. Да, цена таких серверов будет соответствующей, ведь в нее будет включена не только плата за приготовление, но и
Читать дальше →

О граблях организации ИТ-мероприятий

Reading time10 min
Views4.5K
В данной статье мне бы хотелось поговорить не только о подготовке и проведении презентации, но и об организации мероприятий в целом. У многих из нас хоть раз в жизни возникает необходимость организовать мероприятие того или иного масштаба, будь то встреча, мастер-класс, семинар или презентация. В мою жизнь так называемый ивент-менеджмент прочно вошел с началом трудовой деятельности в ИТ-компании: организовывая мероприятия по 3-5 раз в год (от встреч проектировщиков интерфейсов до семинаров по электронным библиотекам), я составила чек-лист необходимых для этого дел. Хочу поделиться им с хабражителями и помочь нуждающимся не наступить на грабли, часто встречающиеся на этом непростом, но увлекательном поле деятельности.

В сжатом виде он выглядит так:
  • Решить, кто наши докладчики и потенциальные участники, а также что, где и когда первые расскажут вторым
  • Исчерпывающе и понятно написать о событии на своем сайте
  • Анонсировать событие в СМИ и социальных сетях, пригласить клиентов и партнеров
  • Заблаговременно открыть регистрацию участников
  • Заранее получить презентации докладчиков и тезисы выступлений
  • Обеспечить стабильно работающий интернет, звук, свет, ПО и другое оборудование
  • Заснять доклады и дискуссии на видео
  • Организовать досуг участников после мероприятия
  • После события написать письмо с благодарностью участникам и докладчикам
  • Ознакомить с материалами события тех, кто не смог принять в нем участие
  • Составить детализированный отчет о событии
  • Собрать фидбек и учесть все ошибки при организации следующего мероприятия
За подробностями, советами и примерами — под кат.

Заранее спасибо за дополнения! Самые актуальные добавлю в статью с указанием авторства — глядишь, так и составим универсальное пособие для организаторов событий.

Upd: дополнила статью советами из комментариев! Спасибо за помощь AndreiYemelianov, RGaifutdinov, mivanova, ollystar, Cancel, verbinka, mujaji.
Читать дальше →

HTML KickStart — еще один способ быстро создать интерфейс своего веб-приложения

Reading time1 min
Views27K
Не один раз в комментариях замечал что народ негодует по поводу того, что веб-разработчики стали злоупотреблять использованием Bootstrap от Twitter. Признаюсь, я и сам успел закончить несколько небольших веб-приложений с использованием этого набора скриптов и стилей. Я не против использования Bootstrap от Twitter, я против злоупотребления этим когда есть столько хороших альтернатив. Я почти каждый день натыкаюсь на интерфейсы, построенные на Twitter Bootstrap, и это начинает напрягать. Последней каплей для поиска альтернативы стало изменение интерфейса биллинг панели моего хостера на шаблон Bootstrap. В этой записи я хотел бы немного рассказать про одну из альтернатив — HTML KickStart.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity