Пользователь
Docker контейнеры для web-разработчика под OS X
3 мин
24KВсю свою текущую разработку я веду, используя docker контейнеры, и если под Linux такой подход не вызывает никаких проблем, то под OS X некоторые моменты могут отнять невероятное количество сил и времени.
Об одном из таких моментов я и хочу рассказать.
Об одном из таких моментов я и хочу рассказать.
+31
Как накормить мозг программиста… или feed your brain
12 мин
372KВведение
Из всех наслаждений, отпущенных человеку в жизни,
самое изысканное — шевелить мозгами.
(Борис Акунин)
Известно, что при работе за компьютером мозг программиста затрачивает больше энергии, чем мозг других людей. Программист, как работник умственного труда, должен следить за своим питанием и здоровьем, чтобы поддерживать свой мозг в состоянии высокой работоспособности. К тому же, программист должен быть в отличной интеллектуальной форме, развивать в себе высокую творческую активность и задумываться о предотвращении возрастных ухудшений памяти.
В ранней юности, когда, погружаясь глубоко в проект, я часто забывал о еде и бывало, что моей единственной пищей за день был батон с кефиром. Теперь с годами я понимаю, как тогда травмировал мозг, не давая ему нужные для работы вещества и энергию.
В данной публикации мы рассмотрим, как правильно питаться для жизнеобеспечения мозга и как его разогнать ноотропами (в случае
+113
Почему у нас нет боссов и офиса, и почему мы работаем 4 дня в неделю
4 мин
159KПеревод
В 2008 мы с партнёром закончили обучение по специальности «компьютерная инженерия» в университете в Аргентине.
На старших курсах мы проходили стажировку в таких компаниях, как HP, IBM, Intel. Именно тогда мы заметили недостаток в их работе. Мы не могли понять, почему люди без технических знаний говорят программистам, что им делать, и кроме того, проверяют, как именно они это делают.
Поэтому, когда мы делали Project eMT, сравнительный поисковик для Латинской Америки, мы решили работать по-другому: без менеджеров проектов. Через шесть лет у нас в команде было 34 инженера из Чили, Бразилии, Мексики и Колумбии, и мы всё ещё работаем без использования традиционных структур и рабочего графика, а наш ежегодный рост составляет 204%.
+79
Современный торнадо, часть 2: блокирующие операции
5 мин
16KТуториал
Улучшаем наш распределённый хостинг картинок. В этой части мы поговорим о конфигурировании приложения и подключим защиту от csrf. Затем, на примере создания миниатюр картинок, научимся работать с блокирующими задачами, запускать корутины параллельно и обрабатывать возникающие в них исключения.
+30
Многопоточное приложение под Tornado
5 мин
38KВ документации к неблокирующему вебсерверу Торнадо красиво расписано как здорово он справляется с нагрузкой, и вообще является венцом творения человечества в области неблокирующих серверов. Отчасти это верно. Но при построении сложных приложений за рамками «еще одного чата» выявляется много неочевидных и тонких моментов, о которых желательно знать до вояжа по граблям. Под «катом» разработчики клуба интелектуальных игр Трельяж готовы поделиться своими мыслями о подводных камнях.
+62
Проекты на WordPress: советы по оптимизации
9 мин
52KТуториал
Сегодня Wordpress является одной из самых популярных CMS. Задуманная изначально как движок для блогов, сегодня она используется для самых разных типов сайтов, в частности, для новостных порталов и интернет-СМИ. На Wordpress работают корпоративные веб-сайты, образовательные и развлекательные порталы.
Wordpress используют многие наши клиенты, которые довольно часто обращаются к нам с вопросами по настройке этой CMS.
Подробных инструкций по установке и настройке Wordpress в Интернете опубликовано немало. В этой статье мы бы хотели затронуть вопросы, которым в большинстве публикаций о Wordpress не уделяется достаточно внимания. Мы расскажем о том, как оптимизировать работу сайтов на Wordpress, а также дадим ряд рекомендаций по повышению уровня безопасности и стабильности работы. Во всех примерах используется Ubuntu 12.04.
+38
10 анти-паттернов навигации в Android
4 мин
81KПеревод
В данной статье мы рассмотрим 10 анти-паттернов навигации в Android, которые допускают многие новички (и не только) в создании интерфейсов Android-приложений.
+98
Рабочее место Попкорн: Как стать Супер-продуктивным работая на себя
6 мин
91KКоллеги, представляю вам перевод статьи про Супер-продуктивность, которая меня сильно зацепила. Надеюсь, что перевод будет вам полезен для организации своего рабочего времени.
Я познакомился с этой идеей где-то на Hacker News несколько недель назад и адаптировал концепцию для моего собственного образа жизни, и это изменило мой подход к работе.
Супер-продуктивность — как начать работать больше, чем когда-либо
+75
Фильтры захвата для сетевых анализаторов (tcpdump, Wireshark, Paketyzer)
18 мин
204KТуториал
1. Фильтры захвата
Анализаторы трафика являются полезным и эффективным инструментом в жизни администратора сети, они позволяют «увидеть» то что на самом деле передается в сети, чем упрощают диагностику разнообразных проблем или же изучение принципов работы тех или иных протоколов и технологий.
Однако в сети зачастую передается достаточно много разнообразных блоков данных, и если заставить вывести на экран все, что проходит через сетевой интерфейс, выделить то, что действительно необходимо, бывает проблематично.
Для решения этой проблемы в анализаторах трафика реализованы фильтры, которые разделены на два типа: фильтры захвата и фильтры отображения. Сегодня пойдет речь о первом типе фильтров – о фильтрах захвата.
Фильтры захвата, это разновидность фильтров, позволяющая ограничить захват кадров только теми, которые необходимы для анализа, уменьшив, таким образом, нагрузку на вычислительные ресурсы компьютера, а также упростив процесс анализа трафика.
+63
Понимаем декораторы в Python'e, шаг за шагом. Шаг 1
6 мин
439KПеревод
На Хабре множество раз обсуждалась тема декораторов, однако, на мой взгляд, данная статья (выросшая из одного вопроса на stackoverflow) описывает данную тему наиболее понятно и, что немаловажно, является «пошаговым руководством» по использованию декораторов, позволяющим новичку овладеть этой техникой сразу на достойном уровне.
Итак, что же такое «декоратор»?
Впереди достаточно длинная статья, так что, если кто-то спешит — вот пример того, как работают декораторы:
def makebold(fn):
def wrapped():
return "<b>" + fn() + "</b>"
return wrapped
def makeitalic(fn):
def wrapped():
return "<i>" + fn() + "</i>"
return wrapped
@makebold
@makeitalic
def hello():
return "hello habr"
print hello() ## выведет <b><i>hello habr</i></b>
+93
Руководство по магическим методам в Питоне
28 мин
604KТуториал
Перевод
Это перевод 1.17 версии руководства от Rafe Kettler.
Что такое магические методы? Они всё в объектно-ориентированном Питоне. Это специальные методы, с помощью которых вы можете добавить в ваши классы «магию». Они всегда обрамлены двумя нижними подчеркиваниями (например,
Содержание
- Вступление
- Конструирование и инициализация
- Переопределение операторов на произвольных классах
- Представление своих классов
- Контроль доступа к атрибутам
- Создание произвольных последовательностей
- Отражение
- Вызываемые объекты
- Менеджеры контекста
- Абстрактные базовые классы
- Построение дескрипторов
- Копирование
- Использование модуля pickle на своих объектах
- Заключение
- Приложение 1: Как вызывать магические методы
- Приложение 2: Изменения в Питоне 3
Вступление
Что такое магические методы? Они всё в объектно-ориентированном Питоне. Это специальные методы, с помощью которых вы можете добавить в ваши классы «магию». Они всегда обрамлены двумя нижними подчеркиваниями (например,
__init__
или __lt__
). Ещё, они не так хорошо документированны, как хотелось бы. Все магические методы описаны в документации, но весьма беспорядочно и почти безо всякой организации. Поэтому, чтобы исправить то, что я воспринимаю как недостаток документации Питона, я собираюсь предоставить больше информации о магических методах, написанной на понятном языке и обильно снабжённой примерами. Надеюсь, это руководство вам понравится. Используйте его как обучающий материал, памятку или полное описание. Я просто постарался как можно понятнее описать магические методы.+135
AWS Insight: RDS Parameter Groups — что это и зачем
9 мин
2.6KПривет!
Сегодня я расскажу о параметр группах AWS RDS. Как вы знаете, RDS предоставляет нам простую точку входа в БД. Ни к диску, ни в саму ОС и настройкам БД у нас нет доступа. Так же мы ограничены правами некоего суперпользователя, но это не root всё равно.
RDS Parameter Groups позволяют создать нужную конфигурацию вашей базы данных. Сегодня я на примере покажу как разрешить возможность создания хранимых процедур в RDS под MySQL. При создании сервера создаётся дефолтная параметр группа. В ней же можно и посмотреть список доступных параметров:
Сегодня я расскажу о параметр группах AWS RDS. Как вы знаете, RDS предоставляет нам простую точку входа в БД. Ни к диску, ни в саму ОС и настройкам БД у нас нет доступа. Так же мы ограничены правами некоего суперпользователя, но это не root всё равно.
RDS Parameter Groups позволяют создать нужную конфигурацию вашей базы данных. Сегодня я на примере покажу как разрешить возможность создания хранимых процедур в RDS под MySQL. При создании сервера создаётся дефолтная параметр группа. В ней же можно и посмотреть список доступных параметров:
$ rds-describe-db-parameters default.mysql5.1
+5
Укрощаем трёхглавого дракона или как работает аутентификация в Bacula
2 мин
18KПриветствую, Хабравчане.
Bacula — кроссплатформенное клиент-серверное программное обеспечение, позволяющее управлять резервным копированием, восстановлением, и проверкой данных по сети для компьютеров и операционных систем различных типов. (Wikipedia)
Вообще с бакулой я связался совершенно случайно. Я всегда предпочитал самописные скрипты для бэкапов и мониторинг их выполнения nagios-ом, т.к. все специализированные средства (Bacula, Amanda, и т.п.) казались мне архитектурно слишком сложными, которые сами, в силу своей сложности, требуют того, чтобы их бэкапили. Но однажды, политикой сверху, нас посадили на ARCserve. Поигравшись немного с этим монстром я вернулся к Bacula и понял, что Bacula — это верх изящества и простоты.
Bacula — кроссплатформенное клиент-серверное программное обеспечение, позволяющее управлять резервным копированием, восстановлением, и проверкой данных по сети для компьютеров и операционных систем различных типов. (Wikipedia)
Вообще с бакулой я связался совершенно случайно. Я всегда предпочитал самописные скрипты для бэкапов и мониторинг их выполнения nagios-ом, т.к. все специализированные средства (Bacula, Amanda, и т.п.) казались мне архитектурно слишком сложными, которые сами, в силу своей сложности, требуют того, чтобы их бэкапили. Но однажды, политикой сверху, нас посадили на ARCserve. Поигравшись немного с этим монстром я вернулся к Bacula и понял, что Bacula — это верх изящества и простоты.
+18
Puppet под нагрузкой
6 мин
33KPuppet — довольно удобный инструмент для управления конфигурациями. По сути, это система, которая позволяет автоматизировать настройку и управление большим парком машин и сервисов.
Базовой информации о самой системе много, в том числе и на Хабре: здесь, здесь и здесь. Мы же постарались собрать в одной статье несколько «рецептов» использования Puppet под действительно большими нагрузками — в «боевых условиях» Badoo.
О чём пойдет речь:
Базовой информации о самой системе много, в том числе и на Хабре: здесь, здесь и здесь. Мы же постарались собрать в одной статье несколько «рецептов» использования Puppet под действительно большими нагрузками — в «боевых условиях» Badoo.
О чём пойдет речь:
- Puppet: ликбез;
- кластеризация, масштабирование;
- асинхронный Storeconfigs;
- сбор отчётов;
- анализ полученных данных.
+62
Настройка SMS уведомлений в zabbix
10 мин
59KТуториал
Вопрос SMS уведомлений в zabbix уже освещался на Хабре и проблема решалась с использованием СМС-шлюзов. Также упоминали про Отправку SMS c помощью Delphi. Я же хочу рассказать, как настроить SMS уведомления используя USB модем.
Итак, что имеем:
1) довольно обширная ИТ-инфраструктура
2) система мониторинга Zabbix 2.0.3 (актуальная версия на момент написания статьи) функционирующая под Fedora 14 x64
3) 3G USB модем ZTE MF100 от национального украинского оператора Киевстар.
4) Prepaid симка, которая шла в комплекте с модемом.
Также для модема была куплена корпоративная 3G симка, но её использовать не получится, так как с 3G-карточек невозможно позвонить и отправлять смс, а это нам не подходит.Итак, положил на карточку небольшую сумму «для опытов», втыкнул модем в USB и
Итак, что имеем:
1) довольно обширная ИТ-инфраструктура
2) система мониторинга Zabbix 2.0.3 (актуальная версия на момент написания статьи) функционирующая под Fedora 14 x64
3) 3G USB модем ZTE MF100 от национального украинского оператора Киевстар.
4) Prepaid симка, которая шла в комплекте с модемом.
Также для модема была куплена корпоративная 3G симка, но её использовать не получится, так как с 3G-карточек невозможно позвонить и отправлять смс, а это нам не подходит.Итак, положил на карточку небольшую сумму «для опытов», втыкнул модем в USB и
+11
Need For Speed или простой тюнинг виртуальных машин
4 мин
36KRecovery Mode
Довольно часто на семинарах или при аудите существующей у заказчика виртуальной среды мне приходилось слышать упреки: «Виртуализация тормозит», «Мы попробовали перевести сервер в виртуальную среду, и он встал», «Виртуальные серверы работают медленнее физических». При этом девять из десяти таких проблем с «торможением» виртуальных серверов решались простой оптимизацией устройств в составе виртуальной машины.
Большое количество вопросов, как повысить быстродействие виртуальной среды, побудило меня к написанию небольшого FAQ по оптимизации виртуальных машин на основе VMware vSphere – платформы используемой большинством наших корпоративных клиентов. При этом хочется отметить, что для решений на основе Hyper-V и Xen Server корректный выбор устройств также способен ускорить работу виртуальных серверов.
Большое количество вопросов, как повысить быстродействие виртуальной среды, побудило меня к написанию небольшого FAQ по оптимизации виртуальных машин на основе VMware vSphere – платформы используемой большинством наших корпоративных клиентов. При этом хочется отметить, что для решений на основе Hyper-V и Xen Server корректный выбор устройств также способен ускорить работу виртуальных серверов.
+18
Единая авторизация (SSO) средствами JASIG CAS. Часть 2
12 мин
10KПриветствую, уважаемые хабро-читатели. Перед вами продолжение серии статей про JASIG CAS. В этой части я расскажу, как собрать артефакт CAS и начать с ним работать. Прежде, чем читать дальше, я надеюсь, вы прочитали первую часть.
+1
Эффективное резервное копирование в Amazon Web Services — рецепты
9 мин
10KВсем привет!
Сегодня поговорим о техниках настройки резервного копирования файлов и MySQL/InnoDB/XtraDB в приложениях, развернутых в облаке, на примере Amazon Web Services.
В ходе разработки облачного сервиса Битрикс24 мы попробовали несколько схем резервного копирования, наткнулись на некоторые подводные камни архитектуры амазона и ограничения софта — однако все постепенно разложилось по полочкам и зажужжало :-)
Также внимательно рассмотрим вопрос инкрементального бэкапирования достаточно больших объемов данных (сотни гигабайт и больше), рейдов и конфигураций с InnoDB/XtraDB.
Но прежде всего в деталях разберемся в технологиях хранения данных, предлагаемых нам амазоном.
Сегодня поговорим о техниках настройки резервного копирования файлов и MySQL/InnoDB/XtraDB в приложениях, развернутых в облаке, на примере Amazon Web Services.
В ходе разработки облачного сервиса Битрикс24 мы попробовали несколько схем резервного копирования, наткнулись на некоторые подводные камни архитектуры амазона и ограничения софта — однако все постепенно разложилось по полочкам и зажужжало :-)
Также внимательно рассмотрим вопрос инкрементального бэкапирования достаточно больших объемов данных (сотни гигабайт и больше), рейдов и конфигураций с InnoDB/XtraDB.
Но прежде всего в деталях разберемся в технологиях хранения данных, предлагаемых нам амазоном.
+44
Из чрута — на поверхность: как, почему и что делать?
2 мин
26KОсновано на реальных событиях.
Представьте себе, что у вас есть крупный проект, для которого необходимо собирать софт. А ещё у вас есть желание замутить сборочную ферму, на которой ваши подчинённые будут собирать нужный софт. А ещё это всё происходит под Linux-ом, и каждому надо организовать «чистое» окружение с минимумом затрат. Как это сделать?
В зале подняли руки несколько человек и воскликнули «chroot!». Вы согласились, что это просто, быстро и каждый получает полностью ресурсы хостовой машины. Все заапплодировали, решение принято.
А через неделю после интеграции этого решения и после увольнения сотрудника «икс» вы просыпаетесь — а на сервере девственно чистый жёсткий диск. Злодей уничтожил труды разработчиков, работа встала.
Почему же он сумел удалить всё, если был в «защищённом» «запертом» чруте?
Представьте себе, что у вас есть крупный проект, для которого необходимо собирать софт. А ещё у вас есть желание замутить сборочную ферму, на которой ваши подчинённые будут собирать нужный софт. А ещё это всё происходит под Linux-ом, и каждому надо организовать «чистое» окружение с минимумом затрат. Как это сделать?
В зале подняли руки несколько человек и воскликнули «chroot!». Вы согласились, что это просто, быстро и каждый получает полностью ресурсы хостовой машины. Все заапплодировали, решение принято.
А через неделю после интеграции этого решения и после увольнения сотрудника «икс» вы просыпаетесь — а на сервере девственно чистый жёсткий диск. Злодей уничтожил труды разработчиков, работа встала.
Почему же он сумел удалить всё, если был в «защищённом» «запертом» чруте?
+47
Информация
- В рейтинге
- Не участвует
- Откуда
- Киев, Киевская обл., Украина
- Зарегистрирован
- Активность