Pull to refresh
1
0
Дмитрий Лаврентьев @TreyLav

User

Send message

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

Reading time29 min
Views74K
Визуалы – это люди, которые, воспринимают большую часть информации с помощью зрения. Визуалы составляют примерно 60% населения нашей планеты (автор статьи, Анна Виталь, также входит в их число). Вы можете спросить: как же нам удается общаться с вами с помощью изображений? Все достаточно просто – для этой цели мы используем хорошо известные визуальные символы и аналогии. Ниже представлены некоторые из таких зрительных аналогий, начиная с наиболее простых и заканчивая самыми сложными.

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

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

Reading time5 min
Views71K


Введение


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


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


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

Фотограф-любитель случайно снял возвращение Falcon 9

Reading time3 min
Views21K

Первая ступень (в ветках дерева) и вторая ступень ракеты Falcon 9

6 мая 2016 года в 1:21 ночи ракета-носитель Falcon 9 компании SpaceX стартовала с космодрома на мысе Канаверал, после чего вывела японский спутник связи на геопереходную орбиту. Но самое интересное началось через 2 минуты 41 секунду, когда первая ступень ракеты отделилась и направилась в сторону морской баржи под названием “Of Course I Still Love You”, на которую произвела зрелищную ночную посадку.

Незадолго до этого американский программист и фотограф Зак Гретер (Zach Grether) вылез из палатки на острове Хантинг в Южной Каролине, чтобы заняться любимым делом — съёмкой ночного неба. В 1:10 он выбрал подходящее дерево для фона и направил свою беззеркальную 42-мегапиксельную Sony a7R II на Млечный путь. Неожиданно среди звёзд по небу пронёсся огненный болид. Это была ракета Falcon 9.
Анимация, трафик

Process Monitor или как заставить ПО работать под пользователем

Reading time2 min
Views29K
Сегодня я попробую разобраться с проблемой корректной работы софта под правами пользователем на примере ПО (Prima Expert Digital Microscope) для цифрового микроскопа от АО «ЛОМО».

Устройство в сборе
Читать дальше →

PyOOCalc — Библиотека для генерации отчетов, счетов Libre/Open Office Calc на Python

Reading time3 min
Views21K
Порой возникают задачи, когда необходимо формировать отчеты и прочие документы. В моей практике данная задача возникала не раз.

Проекты, в которых возникала данная задача:

  • складской учет
  • учет объектов недвижимости
  • документооборот

Первый мой опыт был с MS Office, но позже возникла необходимость в разработке кросс-платформенных решений, посему выбор пал на OpenOffice. Т.к. в большинстве случаев нужно было формировать таблицы, то был выбран OpenOffice Calc.
Читать дальше →

Полный перевод Unix-коанов на русский язык

Reading time16 min
Views76K


Представляю на ваш суд ещё один перевод коанов о Мастере Фу на русский язык. В данный сборник вошли все коаны, на данный момент опубликованные на сайте Эрика Реймонда. Надо сказать, что сам Эрик личность весьма неординарная, но упоминания в данной статье стоящая. Помимо холиваров в списках рассылки всевозможных проектов за его авторством также несколько серьёзных трудов о Unix — в том числе и о сообществе, без которого экосистема современных открытых проектов не была бы возможной (полный список книг). Идея перевести коаны в очередной раз пришла мне в голову во время чтения одного из таких трудов, а именно «The Art of Unix Programming», поскольку многое из скрытого смысла коанов становится ясно только после прочтения очередной главы оттуда.

Ну и конечно же, дисклеймер: все комментарии и специфика переложения есть плод воображения вашего покорного слуги.
Я публикую этот перевод в надежде на то, что он может кому-то понравиться, но не предоставляю на него никаких гарантий, в том числе соответствия канонам перевода или пригодности для цитирования где бы то ни было.

Итак

PYCON RUSSIA-2015: видео и презентации докладов

Reading time4 min
Views16K
18-19 сентября в Екатеринбурге прошла третья международная конференция python-разработчиков PyCon Russia. 21 доклад, два мастер-класса, Lightning Talks — все это PyCon-2015. Под катом — отчет о прошедшей конференции, много видео и презентации докладов.

0_1217f0_23d019c7_orig.jpg
Питонисты собрались из 25 городов, среди которых: Сан-Франциско, Париж, Прага, Бонн, Таллин, Минск, Киев, Москва, Санкт-Петербург, Казань, Уфа

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

PythonDigest — выпуск номер 100 и другие замечательные новости

Reading time8 min
Views12K
Python жив! С такого громкого заявления хочется начать статью.

На этой неделе вышел 100-тый Python Digest. По такому случаю мы решили подвести итоги работы над дайджестом и рассказать о тенденциях, выявленных в процессе сбора новостей по языку, которому собственно и посвящен дайджест.



В конце 2014 года мы подводили итоги за год. В этот раз мы рассмотрим тенденции за неполные 11 месяцев 2015-года.

Но перед тем как перейдем к тенденциям — расскажем что сделали за (почти) год.

Интересующихся подробностями милости просим под кат.
Подробности

Библиотека Python 3 для подключения к ЕСИА — esia-connector

Reading time5 min
Views16K
Все началось с того, что Минкомсвязи разрешило использовать портал госуслуг для идентификации и аутентификации пользователей на негосударственных веб-узлах. Это реализуется с помощью службы ЕСИА (Единая Система Идентификации и Аутентификации — esia.gosuslugi.ru). Заказчик нашего проекта входил в число первых 5 участников, которые подали заявки на интеграцию с ЕСИА, что выразилось для нас задачей эту интеграцию поддержать.

В свободном доступе мы не нашли открытого бесплатного решения подходящего для своего стека технологий, поэтому после разработки, с благословления заказчика, решили поделиться собственным (BSD license).

Итак, представляем вам проект esia-connector, написан на Python 3, использует утилиту openssl, проверялся в работе только в Debian-based системах.

Пакет: pypi.python.org/pypi/esia-connector
Проект: github.com/eigenmethod/esia-connector
Подробнее про использование, недостатки, планы.

TemplateEngine.Docx — OpenSource .NET шаблонизатор docx документов

Reading time7 min
Views49K


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

Хочу поделиться нашим opensource-решением для генерации docx документов, которое позволяет заполнять документы по шаблону, оформление которого можно менять в Word без переписывания кода.

Для начала — немного вводных.

Что нам было нужно от шаблонизатора


  • Шаблон создается в Word и сразу видно, на что будет похож результирующий документ, шаблон без лишнего мусора.
  • Результирующий документ после скачивания содержит все необходимые данные, не подтягивая их с внешних источников.
  • Возможность заполнять списки, таблицы, и иногда еще и таблицы с вложенными в них списками.
  • Шаблон можно доверить секретарю клиента, чтобы он мог сменить логотип, реквизиты компании, или как-либо еще подкорректировать оформление. И все это уже после сдачи проекта, не модифицируя наш код.
Читать дальше →

Подборки судебных решений. Софт и суды

Reading time20 min
Views58K
В данном материале освещаются интересные дела из российской судебной практики, связанные с программным обеспечением: ситуации, когда имел место плагиат исходного кода, когда субъекты предпринимательской деятельности пренебрегали условиями лицензионных соглашений проприетарного ПО и использовали «пиратские» копии программ и некоторые другие. Начну с самого интересного:
Читать дальше →

Повышаем безопасность закрытых ssh-ключей

Reading time8 min
Views65K
Вы когда-нибудь интересовались механизмом работы ssh-ключей? Или тем, насколько безопасно они хранятся?

Я использую ssh каждый день много раз — когда запускаю git fetch или git push, когда развертываю код или логинюсь на сервере. Не так давно я осознал, что для меня ssh стал магией, которой я привык пользоваться без понимация принципов ее работы. Мне это не сильно понравилось — я люблю разбираться в инструментах, которые использую. Поэтому я провел небольшое исследование и делюсь с вами результатами.

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

Итак, если вам доводилось прибегать к аутентификации по ключу, то у вас, скорее всего, есть файл ~/.ssh/id_rsa или ~/.ssh/id_dsa в домашнем каталоге. Это закрытый (он же приватный) RSA/DSA ключ, а ~/.ssh/id_rsa.pub или ~/.ssh/id_dsa.pub — открытый (он же публичный) ключ. На сервере, на котором вы хотите залогиниться, должна быть копия открытого ключа в ~/.ssh/authorized_keys. Когда вы пытаетесь залогиниться, ssh-клиент подтвержает, что у вас есть закрытый ключ, используя цифровую подпись; сервер проверяет, что подпись действительна и в ~/.ssh/authorized_keys есть открытый ключ, и вы получаете доступ.

Что же хранится внутри закрытого ключа?

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

Уведомления о завершении консольных команд

Reading time1 min
Views24K
Undistract-Me — простая, но чрезвычайно полезная в хозяйстве утилита, которая делает одну вещь — выводит уведомление, когда длинная команда (по умолчанию 10 секунд, но можно настроить) завершила свое исполнение.



Также показывает название этой команды и время, которое она заняла. Должно работать со всеми окружениями рабочего стола.
Особенно хороша, когда вы, например, решили чего-нибудь скомпилировать, и не хотите все время пялиться в черный экран или проверять каждую минуту работает ли оно еще. Теперь во время пересборки ядра вы сможете наслаждаться своими любимыми видео с кошечками!
Читать дальше →

MMORPG без лишних деталей: год спустя

Reading time2 min
Views20K
Здравствуй, сообщество.

Прошёл год, с моего рассказал о нашей независимой браузерке: MMORPG без лишних деталей. За этот год произошло много разных событий, которые тебе, сообщество, не интересны — мало ли кто что в своей игрушке делает. Поэтому рассказывать о них я не буду.

Расскажу лучше о трёх вещах, которые тебя точно заинтересуют: о нашей статистике, оригинальном генераторе текста и общедоступном API.
Читать дальше →

Bottle и плагины

Reading time4 min
Views18K

Введение


Bottle — это мини-фреймворк для Python, позволяющий писать веб-приложения с высокой скоростью.

Вот только слово «мини» добавляет ограничения, например, здесь нет быстрого способа создать административную панель. Если нужна работа с БД, то ее надо подключать отдельно. Таким образом, bottle — это инструмент для написания линейных web-приложений, которые не требуют слишком сильного взаимодействия между элементами приложения.

Если вам надо написать handler, который будет принимать ссылку на файл, а потом скачивать его в s3 с какой-то обработкой, то для проверки функционала bottle отлично подойдет.

Для работы с bottle достаточно описывать сами обработчики, например:

from bottle import route, run, template
@route('/hello/<name>')
def index(name):
    return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)

(Пример из документации.)

При написании более смысловых функций (например, телефонная книга с сохранением в БД), очень быстро возникает необходимость работы то с БД, то с кэшем, то с сессиями. Это порождает необходимость пихать функционал работы с БД в сам обработчик, затем выносить в отдельные модули, чтобы не дублировать код. А после этого код CRUDL для разных объектов переписываем в виде что-то типа мета-функций.

Но можно пойти и по другому пути: начать использовать bottle plugin. О механизме плагинов и пойдет речь в этой публикации.
Читать дальше →

Построение графиков в LaTeX/PGFPlots

Reading time13 min
Views104K
image

Данная статья посвящена описанию работы с пакетом PGFPlots, разработанного для популярной настольной издательской системы LaTeX. Однако, если вы даже не знакомы с последней, это не повод расстраиваться и бросать чтение этой статьи, ведь, возможно, те замечательные примеры, которые будут далее приведены, и необычайная мощность и удобство PGFPlots вдохновят вас на изучение LaTeX.
Читать дальше →

Chart Wars: Диаграммы наносят ответный удар

Reading time4 min
Views31K
Что может быть хуже круговой диаграммы?
Две круговые диаграммы! Эдвард Тафти
Все мы уже не раз видели, что может пойти не так с визуализацией данных. Сегодня обсудим несколько важных принципов, лежащих в основе качественной графики, и что гораздо интересней, узнаем, что произойдет, если эти правила НЕ соблюдать.



Структура статьи
  1. Восприятие измерений
  2. Соотношение чернила-данные
  3. Фактор обмана
  4. Парадокс Симпсона
  5. Джон Сноу всё-таки что-то знает — пример классики визуализации
  6. Что еще посмотреть-почитать
  7. Круговая диаграмма в реальной жизни

(*осторожно трафик*)
Читать дальше →

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

Reading time15 min
Views294K
В последние годы REST (REpresentational State Transfer) стала стандартной архитектурой при дизайне веб-сервисов и веб-API.

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

Что такое REST?


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

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

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

Размышления о стандартной библиотеке JavaScript. Core.js

Reading time64 min
Views105K
Один пацан писал все на JavaScript, и клиент, и сервер, говорил что нравится, удобно, читабельно. Потом его в дурку забрали, конечно.
— С просторов интернета

К чему это я? Занятная штука — JavaScript. Основа современного web и на фронтэнде альтернатив как таковых не имеет.

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

Ванильная стандартная библиотека JavaScript, в целом, неплоха. Это не только стандартная библиотека по спецификации языка ECMA-262 актуальных версий — от 3 до черновика 6. Часть API вынесена в отдельные спецификации, например, API интернационализации ECMA-402. Многие возможности, без которых сложно представить JavaScript, например, setTimeout, относятся к web-стандартам. Консоль не стандартизована вовсе — приходится полагаться на стандарт де-факто.

Вот только не такая уж она и стандартная — везде разная. Есть старые IE, в которых из коробки мы получаем стандартную библиотеку ES3 90-бородатого года даже без Array#forEach, Function#bind, Object.create и консоли, и есть, например, Node.js, на которой многие уже вовсю используют возможности грядущего ES6.

Хочется иметь универсальную, действительно стандартную библиотеку, как на сервере, так и в любом браузере, максимально соответствующую современным стандартам, а также реализующую необходимый функционал, что (пока?) не стандартизован. Статья посвящена библиотеке core.js — реализация моих соображений по поводу стандартной библиотеки JavaScript. Кроме того, эта статья еще и шпаргалка по современной стандартизованной стандартной библиотеке JavaScript и заметки о её перспективах.

Содержание, или что получим на выходе:


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

Вышла новая версия reCaptcha API 2.0

Reading time3 min
Views132K
На днях, занимаясь очередным внедрением reCaptcha для одного из проектов, столкнувшись с небольшой проблемой в области отображения нескольких защитных изображений на 1 странице с помощью AJAX я в очередной раз пошел на страницу официальной документации «reCaptcha» и обнаружил, что документация существенно отличается от предыдущих версий.
Воспользовавшись поиском стало ясным — в мир вышла «recaptcha 2.0» с обновленным API и визуализацией а так же рядом других «плюшек», о чем я и расскажу в данной статье.
Читать дальше →

Information

Rating
Does not participate
Location
Великий Новгород (Новгород), Новгородская обл., Россия
Date of birth
Registered
Activity