Как стать автором
Обновить
-4
0
Алексей Калинин @Kaliha

Пользователь

Отправить сообщение

Два с половиной приема при работе с argparse

Время на прочтение5 мин
Количество просмотров33K

Приемы, описанные здесь, есть в официальной документации к модулю argparse (я использую Python 2.7), ничего нового я не изобрел, просто, попользовавшись ими некоторое время, убедился в их мощности. Они позволяют улучшить структуру программы и решить следующие задачи:

  1. Вызов определенной функции в ответ на заданный параметр командной строки с лаконичной диспетчеризацией.
  2. Инкапсуляция обработки и валидации введенных пользователем данных.

Что там еще за пол-приема?
Всего голосов 28: ↑25 и ↓3+22
Комментарии18

Ставим Drupal 7.x + модули + локализацию за несколько минут

Время на прочтение3 мин
Количество просмотров23K
Добрый день!
За последнее время всё чаще и чаще выбор платформы под проекты клиентов падает на всеми любимый Drupal 7. В связи с этим приходится чуть-ли не каждый день повторять одну и туже серию операций подготовки «почвы» под будущий сайт:
1) Загрузка Drupal 7.x на сервер по FTP
2) Созданием базы данных
3) Установка Drupal через www.domain.ru/install.php
4) Установка всех необходимых модулей по их URL
5) Добавление русского языка и обновление всех переводов

Всё это отнимает значительное количество времени и в итоге было решено упростить данный процесс посредством установки Drupal полностью через командную строку.
Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии14

Проектирование RESTful API с помощью Python и Flask

Время на прочтение15 мин
Количество просмотров283K
В последние годы REST (REpresentational State Transfer) стала стандартной архитектурой при дизайне веб-сервисов и веб-API.

В этой статье я покажу вам как просто создавать RESTful веб-сервисы используя Python и микрофреймворк Flask.

Что такое REST?


Характеристика системы REST определяется шестью правилами дизайна:

  • Клиент-Сервер: Должно быть разделение между сервером, который предлагает сервис и клиентом, который использует ее.
  • Stateless: Каждый запрос от клиента должен содержать всю информацию, необходимую серверу для выполнения запроса. Другими словами, сервер не обязан сохранять информацию о состоянии клиента.
  • Кэширование: В каждом запросе клиента должно явно содержаться указание о возможности кэширования ответа и получения ответа из существующего кэша.
  • Уровневая система: Клиент может взаимодействовать не напрямую с сервером, а с произвольным количеством промежуточных узлов. При этом клиент может не знать о существовании промежуточных узлов, за исключением случаев передачи конфиденциальной информации.
  • Унификация: Унифицированный программный интерфейс сервера.
  • Код по запросу: Сервера могут поставлять исполняемый код или скрипты для выполнения их на стороне клиентов.

Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Комментарии32

Сервис мониторинга свободного места на Bash

Время на прочтение9 мин
Количество просмотров18K
Добрый день! Хотелось бы рассказать Вам об очередном велосипедостроении. Просматривая Хабр, я наткнулся на замечательную статью: Bash: запускаем демон с дочерними процессами. После прочтения возникла идея написать что-нибудь полезное, с преферансом и куртизантками, куда же без этого.

Вводная:

ОС: Astra Linux 1.2 (1.3)

Из вводной следуют два вывода:

  1. Нельзя устанавливать не сертифицированное ПО, иначе мы словим лютую попаболь с двух направлений (Заказчик и Руководство).
  2. Т.к. мы настоящие пионеры и не ищем легких путей, то вывод команды df нас не интересует.
Приступим
Всего голосов 45: ↑26 и ↓19+7
Комментарии31

Chef для новичков

Время на прочтение7 мин
Количество просмотров77K
На тему систем централизованного управления конфигурациями на Хабре написано немало статей и, в частности, про Chef есть несколько хороших статей. Однако, количество релизов Chef растет, и я решил немного освежить его описание для читателей Хабра. Статья предназначена как для новичков, так и для тех, кто уже знакомился с системой, но по какой-то причине отложил изучение и хочет все-таки продолжить. А продолжать стоит! Поскольку, Chef полезен и для администрирования нескольких VPS, и для управления большим парком серверов. Особенно, если вам часто приходится заниматься настройкой серверов с нуля, подключением дополнительных нод в кластер и т.д.
Подробности под катом
Всего голосов 37: ↑30 и ↓7+23
Комментарии13

DisLocker. Или находим общий язык с BitLocker в Linux Mint

Время на прочтение3 мин
Количество просмотров25K
DisLocker. Или как найти общий язык с BitLocker в Linux Mint
Первый вопрос, который может возникнуть у читателя, прочитавшего заголовок: «А зачем?». Ведь в Linux Mint можно преспокойно обойтись без проприетарного BitLocker. К тому же главные достоинства этой технологии, к коим можно отнести простоту использования и создания зашифрованных разделов, а также поддержку «из коробки» во всех последних ОС от Microsoft, проявляются лишь в операционных системах из Редмонда. Кроме того, свободного ПО с подобным, или даже кое в чем превосходящим BitLocker функционалом, в nix-системах достаточно — например, TrueCrypt.

Во многом я разделяю эту точку зрения, но, бывают случаи, когда BitLocker необходим, а ОС – Linux Mint.
Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии2

Жизнь разработчика (в картинках)

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

Когда я показываю босу, что окончательно пофиксил баг



Когда проджект-менеджер входит в офис



Читать дальше →
Всего голосов 884: ↑700 и ↓184+516
Комментарии132

Ремонт «залитой» клавиатуры ноутбука

Время на прочтение2 мин
Количество просмотров238K
С диагнозом «пролит суп» нам принесли ноутбук у которого не работало несколько клавиш. Внимательно изучив недра интернета я натолкнулся на несколько статей по ремонту клавиатур и вооружившись инструментом приступил к её восстановлению.



Читать дальше →
Всего голосов 61: ↑51 и ↓10+41
Комментарии34

Python на Хабре

Время на прочтение7 мин
Количество просмотров452K
Некоторое время назад, в силу определенных причин, мне пришла в голову мысль о том, чтобы начать изучать какой-нибудь новый язык программирования. В качестве альтернатив для этого начинания я определил два языка: Java и Python. После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.), я все-таки остановился на Python. Окей, выбор сделан. Что дальше? А дальше я стал искать материал для изучения…
Читать дальше →
Всего голосов 182: ↑162 и ↓20+142
Комментарии65

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №126 (15 — 21 сентября 2014)

Время на прочтение5 мин
Количество просмотров34K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии0

Дайджест интересных новостей и материалов из мира PHP № 48 (7 – 21 сентября 2014)

Время на прочтение3 мин
Количество просмотров21K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 50: ↑48 и ↓2+46
Комментарии25

Пара полезных команд, которые могут пригодиться при DDoS и не только

Время на прочтение3 мин
Количество просмотров82K
В моем случае, в качестве frontend сервера, стоит nginx и формат access-лога имеет вид:

log_format main '$remote_addr — $remote_user [$time_local] "$host" "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" -> $upstream_response_time';

Что на выходе дает что-то вроде такой строки:

188.142.8.61 — - [14/Sep/2014:22:51:03 +0400] «www.mysite.ru» «GET / HTTP/1.1» 200 519 «6wwro6rq35muk.ru» «Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.191602; .NET CLR 3.5.191602; .NET CLR 3.0.191602» "-" -> 0.003

1. tail -f /var/log/nginx/nginx.access.log | cut -d ' ' -f 1 | logtop

Позволяет получить общую картину: распределение уникальных IP, с которых идут запросы, кол-во запросов с одного IP и т.д.
Самое ценное — что все это работает в режиме реального времени и можно мониторить ситуацию, внося какие-либо изменения в конфигурацию (например просто забанить ТОП 20 самых активных IP через iptables или временно ограничить географию запросов в nginx через GeoIP http://nginx.org/ru/docs/http/ngx_http_geoip_module.html).
Читать дальше →
Всего голосов 105: ↑101 и ↓4+97
Комментарии21

Дайджест интересных новостей и материалов из мира PHP № 47 (24 августа – 7 сентября 2014)

Время на прочтение4 мин
Количество просмотров22K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 50: ↑44 и ↓6+38
Комментарии15

CSS GuideLines, часть 1. Синтаксис и форматирование

Время на прочтение8 мин
Количество просмотров43K


Введение


CSS не идеален. Поначалу кажется, что он прост в освоении, но работая над реальным проектом вы столкнетесь со многими проблемами. Мы не можем изменить то, как работает CSS, но мы можем изменить тот код, который мы пишем.
Читать дальше →
Всего голосов 37: ↑22 и ↓15+7
Комментарии36

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №121 (18 — 24 августа 2014)

Время на прочтение6 мин
Количество просмотров37K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →
Всего голосов 67: ↑65 и ↓2+63
Комментарии3

Дайджест интересных новостей и материалов из мира PHP № 46 (3 – 24 августа 2014)

Время на прочтение6 мин
Количество просмотров27K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 85: ↑73 и ↓12+61
Комментарии21

Настройка удаленного интерпретатора на Pycharm для Django

Время на прочтение3 мин
Количество просмотров46K

В этой статье хочу рассказать, а также показать настройку полезного инструмента для удаленной разработки от компании JetBrains встроенное в IDE Pycharm. Такой инструмент есть уже давно, но многие разработчики относятся к этому не серьезно, и для внесения изменений в проект предпочитают разворачивать его локально. Когда намного легче на том-же сервере, сделать копию части проекта и изменять или тестировать на другом порту с помощью встроенных средств удаленного интерпретатора Pycharm. Конечно не во всех ситуациях это хороший вариант, но для правки, и доработки небольших проектов очень даже подходит. А если проект с нуля, то создавая его на удаленном сервере, исчезает потребность в переносе и адаптации его под сервер(хостинг), которые неизбежно ведут к появлению множества багов и несовместимостей.

К тому же такой подход нас избавляет от таких проблем:

• на разных серверах свой Unix и свои приколы, разворачивать локально и подгонять среду под особенности того или иного сервера может занять приличное количество времени;
• разные версии python;
• И если в файле req.txt для Django не указаны все зависимости;
и т.д.
Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии7

Что должен знать «PHP Junior Developer без опыта работы»?

Время на прочтение4 мин
Количество просмотров136K
<update>

Время несётся стремительным домкратом. Эта статья в значительной степени устарела, хоть конструктивные моменты типа «изучайте смежные области» едва ли когда утратят актуальность. Кадровый голод ощущается всё более явно и вносит больше конструктива в процесс найма начинающих разработчиков. Баланс смещается в сторону хороших знаний языка и инструментов от готовности к написанию кода «как-нибудь» но с первого дня.

Не забывайте, что всё это оценочные суждения какого-то анонимуса. У вас нет никаких гарантий, что я разработчик и понимаю, о чём говорю. Собственно, вы даже не можете гарантировать, что этот текст не набран каким-то ежом в уплату за съеденую котлету.

</update>

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

При написании этой статьи:
  • в той или иной мере был контакт с 20+ работодателями
  • выполнено 12 тестовых заданий
  • пройдено 8 собеседований с техническими специалистами
  • получил моральные травмы средней степени тяжести один начинающий PHP-разработчик

Читать дальше →
Всего голосов 88: ↑57 и ↓31+26
Комментарии199

Django на production. uWSGI + nginx. Подробное руководство

Время на прочтение7 мин
Количество просмотров221K
Перед вами руководство по настройке production окружения для Django. Здесь будут описаны необходимые шаги по настройке Django, uWSGI и nginx. Руководство охватывает все три компонента — полный стек серверного ПО для веб-приложений.

Подразумевается, что вы используете Unix-подобную операционную систему и менеджер пакетов, эквивалентный aptitude. Найти эквивалент aptitude почти для любой операционной системы, в том числе и для Mac OS X, для вас не составит никакого труда.

Руководство написно для версий Django 1.4 или выше. Если вы используете более раннюю версию, то вам придется самостоятельно найти wsgi модуль для нее. Также вы заметите, что файловая структура проекта будет немного отличаться от представленной здесь.

Общая идея


Веб-сервер может по запросу отдавать пользователям файлы из своей файловой системы, однако он не может напрямую работать с Djangо приложениями. Веб-серверу нужен интерфейс, который будет запускать Django приложение, передавать ему запрос от пользователя и возвращать ответ.

Для выполнения этих задач был разработан Web Server Gateway Interface — WSGI — стандарт взаимодействия Python программ и веб-сервра.

uWSGI — одна из реализаций WSGI. В этом руководстве мы установим и настроим uWSGI для создания Unix сокета и взаимодействия с веб-сервером по протоколу WSGI.
Читать дальше →
Всего голосов 46: ↑37 и ↓9+28
Комментарии54

Интеграция Ruby в Nginx

Время на прочтение6 мин
Количество просмотров14K


Уже достаточно давно существует всем известная связка Nginx + Lua, в том числе здесь был ряд статей. Но время не стоит на месте. Примерно год назад появилась первая версия модуля, интегрирующего Ruby в Nginx.
Читать дальше →
Всего голосов 23: ↑17 и ↓6+11
Комментарии28
1

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность