Pull to refresh
47
0
Сергей @onegreyonewhite

Специалист

Send message

Немного про кино или как делать интерактивные визуализации в python

Reading time5 min
Views70K


Введение


В этой заметке я хочу рассказать о том, как можно достаточно легко строить интерактивные графики в Jupyter Notebook'e с помощью библиотеки plotly. Более того, для их построения не нужно поднимать свой сервер и писать код на javascript. Еще один большой плюс предлагаемого подхода — визуализации будут работать и в NBViewer'e, т.е. можно будет легко поделиться своими результатами с коллегами. Вот, например, мой код для этой заметки.


Для примеров я взяла скаченные в апреле данные о фильмах (год выпуска, оценки на КиноПоиске и IMDb, жанры и т.д.). Я выгрузила данные по всем фильмам, у которых было хотя бы 100 оценок — всего 36417 фильмов. Про то, как скачать и распарсить данные КиноПоиска, я рассказывала в предыдущем посте.


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

Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели

Reading time14 min
Views1.4M
Всем привет. На днях возникла идея написать статьи про основы компьютерных сетей, разобрать работу самых важных протоколов и как строятся сети простым языком. Заинтересовавшихся приглашаю под кат.


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

Отличительные признаки «скороспелого» ИТ-директора

Reading time5 min
Views23K

На которые стоит обратить внимание, подбирая себе руководителя ИТ-службы




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

В данной статье я собрал отличительные признаки «скороспелых» ИТ-директоров и постарался сформулировать их как можно доступнее. Надеюсь, что они помогут не разбирающимся в информационных технологиях специалистам по кадрам и генеральным директорам фильтровать кандидатов на должность руководителя ИТ-службы. Буду рад, если сообщество Хабрахабра дополнит меня или исправит ошибки в суждениях. Но на этом вступительную часть заканчиваю и перехожу к сути:
Читать дальше →

GPS трекер на Qt, карта и трек

Reading time2 min
Views22K

Решил попрактиковаться в программирование под Android на Qt. В качестве темы выбрал GPS трекер.
Набор функций этого трекера:


  • снимать измерения с GPS приемника;
  • экспортировать трек в GPX (GPS eXchange Format);
  • выводить трек на карту;
  • выводить время в пути, длину пути, среднюю скорость.

Под катом будет приведен пример работы с картой в QtQuick.


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

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

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

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

Библиотека f для функционального программирования в Питоне

Reading time15 min
Views23K

Привет, коллеги!


Я расскажу о библиотеке для Питона с лаконичным названием f. Это небольшой пакет с функциями и классами для решения задач в функциональном стиле.


— Что, еще одна функциональная либа для Питона? Автор, ты в курсе, что есть fn.py и вообще этих функциональных поделок миллион?


— Да, в курсе.


Причины появления библиотеки

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

Пособие по Ansible

Reading time29 min
Views691K

управление конфигурацией оркестра


Это практическое пособие познакомит вас c Ansible. Вам понадобится виртуальная или реальная машина, которая будет выступать в роли узла для Ansible. Окружение для Vagrant идет в комплекте с этим пособием.


Ansible — это программное решение для удаленного управления конфигурациями. Оно позволяет настраивать удаленные машины. Главное его отличие от других подобных систем в том, что Ansible использует существующую инфраструктуру SSH, в то время как другие (chef, puppet, и пр.) требуют установки специального PKI-окружения.


Пособие покрывает такие темы:


  1. Установка Ansible и Vagrant
  2. Файл инвенторизации
  3. Модули shell, copy, сбор фактов, переменные
  4. Запуск на группу хостов
  5. Плейбуки
  6. Пример: поднимаем кластер, устанавливаем и настраиваем Apache и балансировщик нагрузок HAproxy
  7. Обработка ошибок, откат
  8. Шаблоны конфигурации
  9. Роли

Ansible использует так называемый push mode: конфигурация «проталкивается» (push) с главной машины. Другие CM-системы обычно поступают наоборот – узлы «тянут» (pull) конфигурацию с главной машины.


Этот режим интересен потому что вам не нужно иметь публично доступную главную машину для удаленной настройки узлов; это узлы должны быть доступны (позже мы увидим, что скрытые узлы также могут получать конфигурацию).

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

Python: строим распределенную систему c PySyncObj

Reading time5 min
Views16K
Представьте, что у вас есть класс:
class MyCounter(object):
    def __init__(self):
        self.__counter = 0
    def incCounter(self):
        self.__counter += 1
    def getCounter(self):
        return self.__counter

И вы хотите сделать его распределённым. Просто наследуете его от SyncObj (передав ему список серверов, с которыми нужно синхронизироваться) и отмечаете декоратором @replicated все методы, которые изменяют внутреннее состояние класса:
class MyCounter(SyncObj):
    def __init__(self):
        super(MyCounter, self).__init__('serverA:4321', ['serverB:4321', 'serverC:4321'])
        self.__counter = 0
    @replicated
    def incCounter(self):
        self.__counter += 1
    def getCounter(self):
        return self.__counter

PySyncObj автоматически обеспечит репликацию вашего класса между серверами, отказоустойчивость (всё будет работать до тех пор, пока живо больше половины серверов), а также (при необходимости) асинхронный дамп содержимого на диск.
На базе PySyncObj можно строить различные распределенные системы, например распределенный мьютекс, децентрализованные базы данных, биллинговые системы и другие подобные штуки. Все те, где на первом месте стоит надёжность и отказоустойчивость.
Читать дальше →

Asterisk: ngrep, sipgrep, sngrep, protocol diagram

Reading time2 min
Views26K
Это небольшая заметка о паре утилит, которые использую время от времени для работы с астериском (для отладки телефонии и просмотра SIP пакетов). Многие коллеги не знают о более простых утилитах, которые могли бы сэкономить минутку-другую рабочего времени.

Далее речь пойдет о ngrep, sipgrep, sngrep, js-sequence-diagrams
Читать дальше →

DevOps — автоматизируй всё

Reading time8 min
Views83K
Целью статьи является дать основные представления о DevOps и практиках, используемых при этой методологии. Тут не будет сложных терминов, конкретных продуктов и road map внедрения DevOps, но, надеюсь, будет интересно ознакомиться.


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

Как я программирую на Python

Reading time1 min
Views40K
Часто с началом нового проекта программист не в состоянии увидеть полную картину — он не знает с чего начать, где получить информацию, сколько ее получить, при этом есть шанс засесть за документацией надолго пока не пропадет желание что-либо делать. Я относительно часто делаю проекты «для души» в ранее незнакомых областях, например, программировал микроконтроллеры, делал свой segway, проектировал на ПЛИС свой микропроцессор, делал плагины под Counter-Strike, софт к купюроприемникам и другие проекты, в которых на старте был абсолютным нулем.



А недавно...

Консалтинговые ИТ-проекты в стиле Agile?

Reading time4 min
Views9.8K
Наверное, рассказывать о том, что такое Agile, уже никому не нужно. И особенно про Agile в проектах, где есть постановка задачи и разработка софта. Про это всё хорошо рассказано много раз. Другое дело – когда это консалтинговые проекты, где речь, как нас всех учили, идёт о «процессах, людях, технологиях». В таких проектах мы не просто ставим задачу разработчикам, а они выдают правильный и быстрый результат. Мы ещё и проводим организационные изменения, проектируем процессы, много работаем с людьми, передаём им знания.

image

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

DevOps — новый уровень взаимодействия групп разработки и эксплуатации

Reading time6 min
Views16K
Создание приложений — комплексный процесс, который включает в себя несколько элементов: написание кода, тестирование, устранение ошибок, проверку и, наконец, запуск в эксплуатацию. Можно сказать, что в этом процессе участвуют три независимых «государства» — разработчики, тестировщики и сотрудники отдела эксплуатации. Каждая из этих групп выполняет собственные задачи и пользуется разными критериями оценки эффективности своей работы. Для разработчиков — это скорость написания и количество реализованных в программном коде функций, для тестировщиков — число выявленных ошибок, для отдела эксплуатации — стабильность функционирования систем и минимальное количество инцидентов. Подобная модель работы нередко приводит к конфликту интересов: первые стараются как можно быстрее написать код и отдать его на проверку, вторые готовы проверять и тестировать сколь угодно долго, чтобы выявить все баги, а третий с трудом принимает код, поскольку любые изменения влекут за собой потенциальные риски для всей ИТ-инфраструктуры. В итоге весь процесс создания приложений растягивается надолго, что с учетом сложной экономической ситуации совершенно недопустимо, ведь бизнес должен быть максимально гибким и клиентоориентированным, а выпуск новых продуктов и услуг своевременным.


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

Установка облачной системы Eucalyptus 4.0

Reading time2 min
Views4K
Я хочу рассказать об опыте установки Eucalyptus 4.0. Это последняя версия AWS совместимой облачной системы от компании Eucalyptus. Вместе с большим количеством изменений и улучшений компания поменяла подход к демо-инсталляции. От ISO решено было перейти к инсталляции с использованием Chef рецептов. Это позволило свести систему инсталляции готового для тестирования и расширения решения к одной командной строке.
Читать дальше →

Запись входящих звонков

Reading time5 min
Views28K
Несколько месяцев назад мой знакомый попросил помочь решить вопрос с записью входящих звонков. Все необходимое или было в наличии, или обещал предоставить.

image

Если интересно, мой опыт реализации на python вместе с кодом под катом.
Читать дальше →

Что значит уставный капитал для компании

Reading time4 min
Views36K
У компании есть уставный капитал, об этом знают сейчас даже малые дети. Однако даже далеко не каждый взрослый сможет рассказать, зачем компании нужен этот капитал, как его платить и как эти средства могут использоваться.

Законодательство наше стремительно развивается, и не так давно процедура регистрации ООО была облегчена. Теперь уставный капитал можно оплатить уже после регистрации. Надо сказать, что до этих изменений оплата уставного капитала тоже не была большой проблемой, однако теперь фаундеры просто стали «забывать» оплачивать уставный капитал. Чем чревата такая забывчивость? Понятно, что проблемами, но какими? Давайте разберемся.

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

Сервер приложений 1С на Linux

Reading time13 min
Views227K
Двигатель прогрессаВ последнее время, всё чаще и чаще меня начинает душить жаба.
Большая, зелёная, она угнездилась где-то внутри и формирует категорическое нежелание платить за что либо, даже если это не мои личные деньги! Не платить вообще, или же по максимуму минимизировать затраты там, где это возможно.
И если ко всему прочему, необходимо организовать работу с 1С в малой или средней компании, при ограниченном бюджете, то напрашивается желание собрать сервер из того что есть и накатить на него что-нибудь бесплатное.
Это всё к тому, что совсем необязательно покупать для 1С-сервера, лицензии от MS Windows Server+Terminal Cals и MS SQL сервер. Также необязательно рассматривать различные утилиты бэкапа и прочего софта реализующего все фишки работы терминального сервера 1С.

Сравнение платного и бесплатного софта (без учета железа) взято по большей части отсюда, по примеру данной статьи и на данный момент выглядит так:
Наименование Стандартное лицензирование (руб.) Вариант Linux + Postgres SQL (руб.)
Лицензии Windows
Windows Server 2012 Std. 45012 0
MS Windows Terminal Services Client Access License 2012 Single Language 1-device NoLevel OLP 102960 (20x78) 0
Лицензии 1С
1С: Предприятие 8.3.Лицензия на сервер (x86-64) 86400 86400
1С: Предприятие 8.3 Клиентская лицензия на 20 рабочих мест 78000 78000
Лицензии SQL
Лицензия на сервер MS SQL Server Standard 2012 Runtime для пользователей 1С: Предприятие 8 13381 0
Клиентский доступ на 20 рабочих мест к MS SQL Server 2012 Runtime для 1С: Предприятие 8 117748 0
Итого 443501 164400
Экономия 0 279101

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

Нанимайте личность, а не набор навыков. Мои самые важные вопросы в собеседовании

Reading time4 min
Views76K

Привет, Хабр!


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


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


У всех этих источников есть общая черта: ни один не сделал из меня более крутого собеседующего, и ничто не улучшило качество рекрутинга (это, конечно, не численная оценка, а мое личное ощущение). Ну, может, не все так плохо. Конечно, я изучил что-то новое и полезное, и стал задумываться о процессе собеседования глубже. Что, в итоге, очень хорошо.


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

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

Руководство: Как посчитать выгоды от миграции в «облако»

Reading time7 min
Views13K


Disclaimer: Более подробный анализ и детальный разбор формул представлен в нашей тематической книге.

Тема экономического обоснования перехода в облака остается актуальной несмотря на то, что и в специализированной литературе, и в интернет-СМИ о ней обычно пишут редко и скупо. С одной стороны, сама по себе модель технико-экономических расчетов довольно проста и сводится к обыкновенной калькуляции единовременных и эксплуатационных затрат.

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

Поэтому облачные провайдеры стараются избегать грубых расчетов («на глаз») в конкретных проектах, а в рекламных целях используют довольно ущербные с точки зрения полноты данных примеры, иллюстрирующие «эффективность» использования облачных решений. В этом материале мы разберем рабочие модели для расчета экономической эффективности и приведем примеры подобных расчетов.
Читать дальше →

Установка и настройка Django на «боевом» сервере с CentOS 5

Reading time6 min
Views12K
Я делаю на Django Энциклопедию языков программирования, о которой уже писал на Хабре. За время работы сайта выяснилось, что нужен свой выделенный сервер для большей производительности и стабильности. Пока что взял дешевый сервер с 1.8 ГГц процессором и 512 Мб памяти.

В этой статье я расскажу об установке и настройке на этом сервере Django с mod_python для Apache, с кэшированием memcached и lighttpd для статических файлов.
Читать дальше →

Information

Rating
4,761-st
Location
Sacramento, California, США
Date of birth
Registered
Activity