Это заключительная часть перевода статьи. Декораторы, switch для функций, некоторая информация о классах.
User
Python Tips, Tricks, and Hacks (часть 3)
6 min
49KTranslation
В этой части статьи рассматриваются уловки для выбора одного из двух значений на основе логического условия, передача и получение произвольного числа аргументов функций, а также распространенный источник ошибок — тот факт, что дефолтные значения аргументов функции вычисляются только один раз.
+59
ABC: Always Be Coding (не переставай программировать)
5 min
75K
Как получить работу инженера?
Давай на чистоту. Ты хороший кандидат на должность инженера? Как ты сам себя оцениваешь? Много ли компаний, в которых ты бывал на собеседованиях? Каково у тебя отношение пройденных интервью к полученным предложениям о работе? Попробуй воспользоваться следующей формулой (это мое сферическое измерение в вакууме, которое не означает ровным счетом ничего):
# x = количество компаний, в которых ты проходил собеседования
# y = количество предложений о работе, которые ты получил
рейтинг = 100 * log(x) * y / x
Если твой рейтинг < 90, обязательно прочти это. Если > 120, возможно, тебе это не нужно, но, все равно прочти.
+71
Python на Хабре
7 min
454KНекоторое время назад, в силу определенных причин, мне пришла в голову мысль о том, чтобы начать изучать какой-нибудь новый язык программирования. В качестве альтернатив для этого начинания я определил два языка: Java и Python. После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.), я все-таки остановился на Python. Окей, выбор сделан. Что дальше? А дальше я стал искать материал для изучения…
+142
Пишем красивый идиоматический Python
4 min
113K
Иногда сложно найти в Сети правильные, а главное актуальные «best practices» для языка. Документация, конечно же, содержит всю необходимую информацию, но отсеять нужную вещь в абзацах подробного (на то она и документация) описания довольно сложно. Но недавно мне улыбнулся поиск Google, и я наткнулся на очень полезные «паттерны» языка Python от одного из core разработчиков — Raymond Hettinger.
Примечание: Все рекомендации даны в нескольких вариантах: сначала идут самые «плохие» варианты, а дальше предлагается лучшая альтернатива. Актуально для версии языка 2.7, отличия для версии 3.3 читайте в примечаниях к конкретному «паттерну».
+73
Мульти-хостинг django приложений с помощью nginx + uwsgi + virtualenv
6 min
12KTutorial
Задача: развернуть несколько django-проектов, использующих разные версии django и разные версии питона на одном сервере.
Инструкция приводится для ОС Ubuntu 12.04.
Инструкция приводится для ОС Ubuntu 12.04.
+5
Менеджер версий python
5 min
96KTutorial
Иногда полезно держать несколько версий python на одной машине. Допустим для разработки двух проектов нам необходима вторая и третья ветка python. Или вы поддерживаете проект который использует старую версию python.
Обычно для этого мы используем виртуальное окружение virtualenv или же обертку для него virtualenvwrapper. Об этом я рассказывать не буду, так как есть уже много подобных статей, да и в документациях к самим утилитам все очень хорошо объяснено. Достаточно только забить virtualenv или virtualenvwrapper в поисковик.
Но в дополнение к ним я хочу рассказать в этой статье про менеджер версий python. Кому любопытно прошу под кат.
Обычно для этого мы используем виртуальное окружение virtualenv или же обертку для него virtualenvwrapper. Об этом я рассказывать не буду, так как есть уже много подобных статей, да и в документациях к самим утилитам все очень хорошо объяснено. Достаточно только забить virtualenv или virtualenvwrapper в поисковик.
Но в дополнение к ним я хочу рассказать в этой статье про менеджер версий python. Кому любопытно прошу под кат.
+29
Как работает yield
6 min
729KTranslation
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.
Вот исходный вопрос:
Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?
Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist): if self._leftchild and distance - max_dist < self._median: yield self._leftchild if self._rightchild and distance + max_dist >= self._median: yield self._rightchild
Вызывается он так:
result, candidates = list(), [self] while candidates: node = candidates.pop() distance = node._get_dist(obj) if distance <= max_dist and distance >= min_dist: result.extend(node._values) candidates.extend(node._get_child_candidates(distance, min_dist, max_dist)) return result
Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?
** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/
+131
Python Tips, Tricks, and Hacks (часть 2)
6 min
134KTranslation
Содержание
Списки. Свёртка списка (reduce). Прохождение по списку (range, xrange и enumerate). Проверка всех элементов списка на выполнение условия (all и any). Группировка элементов нескольких списков (zip). Еще несколько операторов для работы со списками. Продвинутые логические операции с типом set.
Словари. Создание словаря с помощью именованных аргументов. Преобразование словаря в список и обратно. «Dictionary Comprehensions».
+63
Quickpong — разработка сетевой игры на основе фреймворка Twisted
6 min
17KРазработал и запустил на домене quickpong.com онлайн версию игры Pong. В игре (by design) реализован только режим мультиплейера, то есть игра идет не против искусственного интеллекта, а против другого человека.
Игра представляет из себя клиент-серверное приложение, серверная часть написана на питоновском фреймворке Twisted, клиентская — на флэшовом фреймворке FlashPunk.
Это мой первый опыт разработки асинхронного сетевого приложения, способного обслуживать тысячи одновременных подключений. Далее я расскажу о том, как эта программа работает, с какими проблемами мне пришлось столкнуться при разработке, какие идеи я хотел реализовать и что в итоге осталось нереализованным. Возможно, мой опыт окажется для кого-нибудь полезным.
Игра представляет из себя клиент-серверное приложение, серверная часть написана на питоновском фреймворке Twisted, клиентская — на флэшовом фреймворке FlashPunk.
Это мой первый опыт разработки асинхронного сетевого приложения, способного обслуживать тысячи одновременных подключений. Далее я расскажу о том, как эта программа работает, с какими проблемами мне пришлось столкнуться при разработке, какие идеи я хотел реализовать и что в итоге осталось нереализованным. Возможно, мой опыт окажется для кого-нибудь полезным.
+24
Python: советы, уловки, хаки (часть 1)
8 min
265KTranslation
Предлагаю читателям «Хабрахабра» перевод статьи «Python Tips, Tricks, and Hacks». Статья будет полезна на начальном и среднем этапах изучения Python.
Хотите писать более лаконичный и читаемый код? Вы хотите уместить как можно больше смысла в одно выражение? Считаете, что прочитать о нескольких уловках лучше, чем провести остаток жизни за чтением документации? Вы обратились по адресу. Мы начнем с маленьких уловок, которые вы уже могли встретить, если немного работали с Python. Но я обещаю, что ближе к концу статьи вас ожидает больше безумных вещей.
1. Маленькие уловки. Четыре типа кавычек. Правдивость различных объектов. Проверка на вхождение подстроки. Красивый вывод списка. Целочисленное деление и деление с плавающей точкой. Лямбда-функции.
2. Списки. Генераторы списков и выражения-генераторы.
Хотите писать более лаконичный и читаемый код? Вы хотите уместить как можно больше смысла в одно выражение? Считаете, что прочитать о нескольких уловках лучше, чем провести остаток жизни за чтением документации? Вы обратились по адресу. Мы начнем с маленьких уловок, которые вы уже могли встретить, если немного работали с Python. Но я обещаю, что ближе к концу статьи вас ожидает больше безумных вещей.
Содержание
1. Маленькие уловки. Четыре типа кавычек. Правдивость различных объектов. Проверка на вхождение подстроки. Красивый вывод списка. Целочисленное деление и деление с плавающей точкой. Лямбда-функции.
2. Списки. Генераторы списков и выражения-генераторы.
+90
Что такое VPS и с чем его едят – инфографика о виртуальных серверах
1 min
31KВот такая инфографика по снятию ведра с головы в вопросах хостинга была опубликована в блоге у хостера VPS.ua.
+78
Строим стенд для подготовки к CCIE при помощи IOU Web Interface
3 min
56KTutorial
Данная статья посвящена созданию собственного виртуального стенда для подготовки к лабораторной работе CCIE RS.
Как известно подготовка к экзамену CCIE является своеобразным подвигом в сетевом мире. Для успешной сдачи кандидат должен вложить уйму ресурсов: времени и денег. Помимо оплаты за сам экзамен необходимо, оплатить учебные материалы, оплатить поездку и.т.д. Одной из статей затрат является организация учебного стенда для подготовки. Рассматривая популярную топологию INE из одноименного воркбука, видно, что понадобится 9 роутеров и 4 свитча. Перечислю классические способы реализации в порядке убывания стоимости:
1. Покупка полного стенда домой из старого железа на ebay.
2. Аренда стойки.
3. Смесь виртуальных роутеров из GNS3 и реальных коммутаторов.
4. IOU.
Про плюсы и минусы каждого из методов уже писали на хабре. Остановимся на самом дешевом (что выгодно, если ваш работодатель не оплачивает вам обучение).
Прежде чем поставить задачу и начать её выполнение стоит упомянуть, что использование IOU не законно, если ты не сотрудник Cisco. Даже для обучения.
Задача статьи: организовать учебный стенд используя топологию INE и веб интерфейс для IOU.
Как известно подготовка к экзамену CCIE является своеобразным подвигом в сетевом мире. Для успешной сдачи кандидат должен вложить уйму ресурсов: времени и денег. Помимо оплаты за сам экзамен необходимо, оплатить учебные материалы, оплатить поездку и.т.д. Одной из статей затрат является организация учебного стенда для подготовки. Рассматривая популярную топологию INE из одноименного воркбука, видно, что понадобится 9 роутеров и 4 свитча. Перечислю классические способы реализации в порядке убывания стоимости:
1. Покупка полного стенда домой из старого железа на ebay.
2. Аренда стойки.
3. Смесь виртуальных роутеров из GNS3 и реальных коммутаторов.
4. IOU.
Про плюсы и минусы каждого из методов уже писали на хабре. Остановимся на самом дешевом (что выгодно, если ваш работодатель не оплачивает вам обучение).
Прежде чем поставить задачу и начать её выполнение стоит упомянуть, что использование IOU не законно, если ты не сотрудник Cisco. Даже для обучения.
Задача статьи: организовать учебный стенд используя топологию INE и веб интерфейс для IOU.
+18
Универсальная система мониторинга Zabbix — введение
4 min
438K
И так, встречайте: Zabbix.
+33
Масштабируя Zabbix
11 min
157KTranslation

В этой статье я хочу показать, как я настраивал свою систему, способную обрабатывать реально много данных.
+45
Сварка оптических волокон. Часть 1: кабели и их разделка, оптический инструмент, муфты и кроссы, коннекторы и адаптеры
25 min
606KTutorial

Волокна заряжены в сварочный аппарат
Здравствуйте, читатели Хабра! Все слышали про оптические волокна и кабели. Нет нужды рассказывать, где и для чего используется оптика. Многие из вас сталкиваются с ней по работе, кто-то разрабатывает магистральные сети, кто-то работает с оптическими мультиплексорами. Однако я не встретил рассказа про оптические кабели, муфты, кроссы, про саму технологию сращивания оптических волокон и кабелей. Я — спайщик оптических волокон, и в этом (первом своём) посте хотел бы рассказать и показать вам, как всё это происходит, а также часто буду в своём рассказе отвлекаться на прочие смежные с этим вещи. Опираться буду в основном на свой опыт, так что я вполне допускаю, что кто-то скажет «это не совсем правильно», «вот тут неканонично».
Материала получилось много, поэтому возникла необходимость разбить топик на части.
В этой первой части вы прочтёте про устройство и разделку кабеля, про оптический инструмент, про подготовку волокон к сварке. В других частях, если тема окажется вам интересной, я расскажу про методы и покажу на видео сам процесс сращивания самих оптических волокон, про основы и некоторые нюансы измерений на оптике, коснусь темы сварочных аппаратов и рефлектометров и других измерительных приборов, покажу рабочие места спайщика (крыши, подвалы, чердаки, люки и прочие поля с офисами), расскажу немного про крепёж кабелей, про схемы распайки, про размещение оборудования в телекоммуникационных стойках и ящиках. Это наверняка пригодится тем, кто собирается стать спайщиком. Всё это я сдобрил большим количеством картинок (заранее извиняюсь за paint-качество) и фотографий.
Осторожно, много картинок и текста.
Часть 2 здесь.
+333
Подборка манифестов из мира IT
5 min
33KУ меня есть увлечение — я собираю разные манифесты и призывы из мира IT. На данный момент собрал уже достаточно много, поэтому решил опубликовать их с моими комментариями.
В статье описаны:
В статье описаны:
- Manifesto for Agile Software Development
- Agile Manifesto — IBM version
- MoreAgile Manifesto
- Agile Manifesto 2.1
- Manifesto for Half-Arsed Agile Software Development
- Declaration of Interdependence
- Programming, Motherfucker
- Software Craftsmanship Мanifesto
- DevOps Manifesto
+16
Тяжелый FPV-квадрокоптер — продолжение: APM 2.5 и активный подвес для камеры
5 min
176K
Часть первая — в которой я придумал и построил свой квадрокоптер.
Продолжаю рассказ о своем квадрокоптере. Со времени опубликования первой статьи я налетал немало часов, и проделал множество модификаций на коптере. Обо всех мелких деталях рассказывать — будет долго, да и малоинтересно. Поэтому ограничусь основными изменениями, а именно:
- Новый полетный контроллер — простенькая платка Crius MultiWii SE уступила место новому ArduPilot Mega 2.5, резко улучшив летные характеристики и добавив коптеру некое кол-во продвинутых фич.
- Активный подвес для камеры — GoPro теперь не жестко закреплена, а установлена на стабилизирующем подвесе, который удерживает ее в горизонтальном положении при любом положении коптера.
- Новые моторы — в связи с выросшим весом коптера (а также с внезапной смертью одного из старых моторов) были установлены новые, болеe мощные и значительно более качественные моторы.
- Отдельная FPV-камера — GoPro теперь используется толькo для записи, для полета через видеоочки используется отдельная жестко монтированная камера.
Но обо всем по порядку…
+97
Материалы продвинутого уровня по Питону
5 min
46K
После прочтения Dive into Python или подобной ей и ознакомления с документацией возникает вопрос, а что читать дальше? Можно обратиться к списку книг на python.org. Там есть раздел Advanced Books, но в нем всего лишь 6 книг (седьмая не выходила), и только одну я бы назвал по-настоящему стоящей.
К счастью, у Питона есть очень подробная и качественная документация. Но даже в ней многие темы либо только поверхностно затронуты, либо их очень сложно найти (потому что документация большая, и если не знаешь, куда смотреть, не найдешь).
Ниже собраны сложные материлы про Питон, его устройство и возможности. Все на английском (грех, не знать технический английский). Про Dive into Python я слукавил. Большинство приведенных материалов требуют хорошее знание Питона и наличие опыта программирования на нем.
+130
Курс лекций «Стартап». Питер Тиль. Стенфорд 2012. Занятие 19
18 min
82KTutorial
Translation

Весной 2012 г., Питер Тиль (Peter Thiel), один из основателей PayPal и первый инвестор FaceBook, провел курс в Стенфорде — «Стартап». Перед началом Тиль заявил: «Если я сделаю свою работу правильно, это будет последний предмет, который вам придется изучать».
Один из студентов лекции записывал и выложил транскипт. В данном хабратопике mg1 переводит девятнадцатое занятие, редактор astropilot.
Занятие 1: Вызов будущего
Занятие 2: Снова как в 1999?
Занятие 3: Системы ценностей
Занятие 4: Преимущество последнего хода
Занятие 5: Механика мафии
Занятие 6: Закон Тиля
Занятие 7: Следуйте за деньгами
Занятие 8: Презентация идеи (питч)
Занятие 9: Все готово, а придут ли они?
Занятие 10: После Web 2.0
Занятие 11: Секреты
Занятие 12: Война и мир
Занятие 13: Вы — не лотерейный билет
Занятие 14: Экология как мировоззрение
Занятие 15: Назад в будущее
Занятие 16: Разбираясь в себе
Занятие 17: Глубокие мысли
Занятие 18: Основатель — жертва или бог
Занятие 19: Стагнация или сингулярность?
+65
Information
- Rating
- Does not participate
- Location
- Тбилиси, Грузия, Грузия
- Date of birth
- Registered
- Activity