Дмитрий Лаврентьев @TreyLav
Пользователь
29 мин
Перевод
Визуалы – это люди, которые, воспринимают большую часть информации с помощью зрения. Визуалы составляют примерно 60% населения нашей планеты (автор статьи, Анна Виталь, также входит в их число). Вы можете спросить: как же нам удается общаться с вами с помощью изображений? Все достаточно просто – для этой цели мы используем хорошо известные визуальные символы и аналогии. Ниже представлены некоторые из таких зрительных аналогий, начиная с наиболее простых и заканчивая самыми сложными.
Немного про кино или как делать интерактивные визуализации в python
5 мин
69KВведение
В этой заметке я хочу рассказать о том, как можно достаточно легко строить интерактивные графики в Jupyter Notebook'e с помощью библиотеки plotly
. Более того, для их построения не нужно поднимать свой сервер и писать код на javascript. Еще один большой плюс предлагаемого подхода — визуализации будут работать и в NBViewer'e, т.е. можно будет легко поделиться своими результатами с коллегами. Вот, например, мой код для этой заметки.
Для примеров я взяла скаченные в апреле данные о фильмах (год выпуска, оценки на КиноПоиске и IMDb, жанры и т.д.). Я выгрузила данные по всем фильмам, у которых было хотя бы 100 оценок — всего 36417 фильмов. Про то, как скачать и распарсить данные КиноПоиска, я рассказывала в предыдущем посте.
+53
Фотограф-любитель случайно снял возвращение Falcon 9
3 мин
21KПервая ступень (в ветках дерева) и вторая ступень ракеты 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.
+30
Process Monitor или как заставить ПО работать под пользователем
2 мин
28KСегодня я попробую разобраться с проблемой корректной работы софта под правами пользователем на примере ПО (Prima Expert Digital Microscope) для цифрового микроскопа от АО «ЛОМО».
+14
PyOOCalc — Библиотека для генерации отчетов, счетов Libre/Open Office Calc на Python
3 мин
19KПорой возникают задачи, когда необходимо формировать отчеты и прочие документы. В моей практике данная задача возникала не раз.
Проекты, в которых возникала данная задача:
Первый мой опыт был с MS Office, но позже возникла необходимость в разработке кросс-платформенных решений, посему выбор пал на OpenOffice. Т.к. в большинстве случаев нужно было формировать таблицы, то был выбран OpenOffice Calc.
Проекты, в которых возникала данная задача:
- складской учет
- учет объектов недвижимости
- документооборот
Первый мой опыт был с MS Office, но позже возникла необходимость в разработке кросс-платформенных решений, посему выбор пал на OpenOffice. Т.к. в большинстве случаев нужно было формировать таблицы, то был выбран OpenOffice Calc.
+10
Полный перевод Unix-коанов на русский язык
16 мин
75KПредставляю на ваш суд ещё один перевод коанов о Мастере Фу на русский язык. В данный сборник вошли все коаны, на данный момент опубликованные на сайте Эрика Реймонда. Надо сказать, что сам Эрик личность весьма неординарная, но упоминания в данной статье стоящая. Помимо холиваров в списках рассылки всевозможных проектов за его авторством также несколько серьёзных трудов о Unix — в том числе и о сообществе, без которого экосистема современных открытых проектов не была бы возможной (полный список книг). Идея перевести коаны в очередной раз пришла мне в голову во время чтения одного из таких трудов, а именно «The Art of Unix Programming», поскольку многое из скрытого смысла коанов становится ясно только после прочтения очередной главы оттуда.
Ну и конечно же, дисклеймер: все комментарии и специфика переложения есть плод воображения вашего покорного слуги.
Я публикую этот перевод в надежде на то, что он может кому-то понравиться, но не предоставляю на него никаких гарантий, в том числе соответствия канонам перевода или пригодности для цитирования где бы то ни было.
+120
PYCON RUSSIA-2015: видео и презентации докладов
4 мин
16K18-19 сентября в Екатеринбурге прошла третья международная конференция python-разработчиков PyCon Russia. 21 доклад, два мастер-класса, Lightning Talks — все это PyCon-2015. Под катом — отчет о прошедшей конференции, много видео и презентации докладов.
Питонисты собрались из 25 городов, среди которых: Сан-Франциско, Париж, Прага, Бонн, Таллин, Минск, Киев, Москва, Санкт-Петербург, Казань, Уфа
+24
PythonDigest — выпуск номер 100 и другие замечательные новости
8 мин
12KPython жив! С такого громкого заявления хочется начать статью.
На этой неделе вышел 100-тый Python Digest. По такому случаю мы решили подвести итоги работы над дайджестом и рассказать о тенденциях, выявленных в процессе сбора новостей по языку, которому собственно и посвящен дайджест.
В конце 2014 года мы подводили итоги за год. В этот раз мы рассмотрим тенденции за неполные 11 месяцев 2015-года.
Но перед тем как перейдем к тенденциям — расскажем что сделали за (почти) год.
Интересующихся подробностями милости просим под кат.
На этой неделе вышел 100-тый Python Digest. По такому случаю мы решили подвести итоги работы над дайджестом и рассказать о тенденциях, выявленных в процессе сбора новостей по языку, которому собственно и посвящен дайджест.
В конце 2014 года мы подводили итоги за год. В этот раз мы рассмотрим тенденции за неполные 11 месяцев 2015-года.
Но перед тем как перейдем к тенденциям — расскажем что сделали за (почти) год.
Интересующихся подробностями милости просим под кат.
+18
Библиотека Python 3 для подключения к ЕСИА — esia-connector
5 мин
15KВсе началось с того, что Минкомсвязи разрешило использовать портал госуслуг для идентификации и аутентификации пользователей на негосударственных веб-узлах. Это реализуется с помощью службы ЕСИА (Единая Система Идентификации и Аутентификации — esia.gosuslugi.ru). Заказчик нашего проекта входил в число первых 5 участников, которые подали заявки на интеграцию с ЕСИА, что выразилось для нас задачей эту интеграцию поддержать.
В свободном доступе мы не нашли открытого бесплатного решения подходящего для своего стека технологий, поэтому после разработки, с благословления заказчика, решили поделиться собственным (BSD license).
Итак, представляем вам проект esia-connector, написан на Python 3, использует утилиту openssl, проверялся в работе только в Debian-based системах.
Пакет: pypi.python.org/pypi/esia-connector
Проект: github.com/eigenmethod/esia-connector
В свободном доступе мы не нашли открытого бесплатного решения подходящего для своего стека технологий, поэтому после разработки, с благословления заказчика, решили поделиться собственным (BSD license).
Итак, представляем вам проект esia-connector, написан на Python 3, использует утилиту openssl, проверялся в работе только в Debian-based системах.
Пакет: pypi.python.org/pypi/esia-connector
Проект: github.com/eigenmethod/esia-connector
+10
TemplateEngine.Docx — OpenSource .NET шаблонизатор docx документов
7 мин
47KВ разработке корпоративных приложений очень часто приходится решать задачу выгрузки данных в документы — от небольших справок до больших отчетов.
Хочу поделиться нашим opensource-решением для генерации docx документов, которое позволяет заполнять документы по шаблону, оформление которого можно менять в Word без переписывания кода.
Для начала — немного вводных.
Что нам было нужно от шаблонизатора
- Шаблон создается в Word и сразу видно, на что будет похож результирующий документ, шаблон без лишнего мусора.
- Результирующий документ после скачивания содержит все необходимые данные, не подтягивая их с внешних источников.
- Возможность заполнять списки, таблицы, и иногда еще и таблицы с вложенными в них списками.
- Шаблон можно доверить секретарю клиента, чтобы он мог сменить логотип, реквизиты компании, или как-либо еще подкорректировать оформление. И все это уже после сдачи проекта, не модифицируя наш код.
+31
Подборки судебных решений. Софт и суды
20 мин
57KВ данном материале освещаются интересные дела из российской судебной практики, связанные с программным обеспечением: ситуации, когда имел место плагиат исходного кода, когда субъекты предпринимательской деятельности пренебрегали условиями лицензионных соглашений проприетарного ПО и использовали «пиратские» копии программ и некоторые другие. Начну с самого интересного:
+33
Повышаем безопасность закрытых ssh-ключей
8 мин
64KПеревод
Вы когда-нибудь интересовались механизмом работы ssh-ключей? Или тем, насколько безопасно они хранятся?
Я использую 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
есть открытый ключ, и вы получаете доступ.Что же хранится внутри закрытого ключа?
+92
Уведомления о завершении консольных команд
1 мин
24KUndistract-Me — простая, но чрезвычайно полезная в хозяйстве утилита, которая делает одну вещь — выводит уведомление, когда длинная команда (по умолчанию 10 секунд, но можно настроить) завершила свое исполнение.
Также показывает название этой команды и время, которое она заняла. Должно работать со всеми окружениями рабочего стола.
Особенно хороша, когда вы, например, решили чего-нибудь скомпилировать, и не хотите все время пялиться в черный экран или проверять каждую минуту работает ли оно еще. Теперь во время пересборки ядра вы сможете наслаждаться своими любимыми видео с кошечками!
Также показывает название этой команды и время, которое она заняла. Должно работать со всеми окружениями рабочего стола.
Особенно хороша, когда вы, например, решили чего-нибудь скомпилировать, и не хотите все время пялиться в черный экран или проверять каждую минуту работает ли оно еще. Теперь во время пересборки ядра вы сможете наслаждаться своими любимыми видео с кошечками!
+46
MMORPG без лишних деталей: год спустя
2 мин
20KЗдравствуй, сообщество.
Прошёл год, с моего рассказал о нашей независимой браузерке: MMORPG без лишних деталей. За этот год произошло много разных событий, которые тебе, сообщество, не интересны — мало ли кто что в своей игрушке делает. Поэтому рассказывать о них я не буду.
Расскажу лучше о трёх вещах, которые тебя точно заинтересуют: о нашей статистике, оригинальном генераторе текста и общедоступном API.
Прошёл год, с моего рассказал о нашей независимой браузерке: MMORPG без лишних деталей. За этот год произошло много разных событий, которые тебе, сообщество, не интересны — мало ли кто что в своей игрушке делает. Поэтому рассказывать о них я не буду.
Расскажу лучше о трёх вещах, которые тебя точно заинтересуют: о нашей статистике, оригинальном генераторе текста и общедоступном API.
+18
Bottle и плагины
4 мин
18KВведение
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. О механизме плагинов и пойдет речь в этой публикации.
+18
Построение графиков в LaTeX/PGFPlots
13 мин
94KДанная статья посвящена описанию работы с пакетом PGFPlots, разработанного для популярной настольной издательской системы LaTeX. Однако, если вы даже не знакомы с последней, это не повод расстраиваться и бросать чтение этой статьи, ведь, возможно, те замечательные примеры, которые будут далее приведены, и необычайная мощность и удобство PGFPlots вдохновят вас на изучение LaTeX.
+53
Chart Wars: Диаграммы наносят ответный удар
4 мин
31KЧто может быть хуже круговой диаграммы?Все мы уже не раз видели, что может пойти не так с визуализацией данных. Сегодня обсудим несколько важных принципов, лежащих в основе качественной графики, и что гораздо интересней, узнаем, что произойдет, если эти правила НЕ соблюдать.
Две круговые диаграммы! Эдвард Тафти
Структура статьи
- Восприятие измерений
- Соотношение чернила-данные
- Фактор обмана
- Парадокс Симпсона
- Джон Сноу всё-таки что-то знает — пример классики визуализации
- Что еще посмотреть-почитать
- Круговая диаграмма в реальной жизни
(*осторожно трафик*)
+50
Проектирование RESTful API с помощью Python и Flask
15 мин
274KТуториал
Перевод
В последние годы REST (REpresentational State Transfer) стала стандартной архитектурой при дизайне веб-сервисов и веб-API.
В этой статье я покажу вам как просто создавать RESTful веб-сервисы используя Python и микрофреймворк Flask.
Характеристика системы REST определяется шестью правилами дизайна:
В этой статье я покажу вам как просто создавать RESTful веб-сервисы используя Python и микрофреймворк Flask.
Что такое REST?
Характеристика системы REST определяется шестью правилами дизайна:
- Клиент-Сервер: Должно быть разделение между сервером, который предлагает сервис и клиентом, который использует ее.
- Stateless: Каждый запрос от клиента должен содержать всю информацию, необходимую серверу для выполнения запроса. Другими словами, сервер не обязан сохранять информацию о состоянии клиента.
- Кэширование: В каждом запросе клиента должно явно содержаться указание о возможности кэширования ответа и получения ответа из существующего кэша.
- Уровневая система: Клиент может взаимодействовать не напрямую с сервером, а с произвольным количеством промежуточных узлов. При этом клиент может не знать о существовании промежуточных узлов, за исключением случаев передачи конфиденциальной информации.
- Унификация: Унифицированный программный интерфейс сервера.
- Код по запросу: Сервера могут поставлять исполняемый код или скрипты для выполнения их на стороне клиентов.
+26
Размышления о стандартной библиотеке JavaScript. Core.js
64 мин
103KОдин пацан писал все на 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 и заметки о её перспективах.
Содержание, или что получим на выходе:
Подходы
-
Часть первая: Костыли
- ECMAScript 5
- ECMAScript 6
- ECMAScript 6: Символы
- ECMAScript 6: Коллекции
- ECMAScript 6: Итераторы
- ECMAScript 6: Обещания
- Mozilla JavaScript: Статические версии методов массива
- Отложенное исполнение: setTimeout, setInterval, setImmediate
- Консоль
-
Часть вторая: Велосипеды
- Классификация данных
- Словари
- Частичное применение
- Форматирование даты
- Объектное API
- Массивы
- Числа
- Экранирование спецсимволов
Заключение
+77
Вышла новая версия reCaptcha API 2.0
3 мин
132K На днях, занимаясь очередным внедрением reCaptcha для одного из проектов, столкнувшись с небольшой проблемой в области отображения нескольких защитных изображений на 1 странице с помощью AJAX я в очередной раз пошел на страницу официальной документации «reCaptcha» и обнаружил, что документация существенно отличается от предыдущих версий.
Воспользовавшись поиском стало ясным — в мир вышла «recaptcha 2.0» с обновленным API и визуализацией а так же рядом других «плюшек», о чем я и расскажу в данной статье.
Воспользовавшись поиском стало ясным — в мир вышла «recaptcha 2.0» с обновленным API и визуализацией а так же рядом других «плюшек», о чем я и расскажу в данной статье.
+24
Информация
- В рейтинге
- Не участвует
- Откуда
- Великий Новгород (Новгород), Новгородская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность