Как стать автором
Обновить
258
0

Пользователь

Отправить сообщение

Многомерные графики в Python — от трёхмерных и до шестимерных

Время на прочтение3 мин
Количество просмотров36K

Примеры многомерных графиков

Введение


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


Plotly — это питоновская библиотека с открытым исходным кодом для разнообразной визуализации, которая предлагает гораздо больше настроек, чем известные matplotlib и seaborn. Модуль устанавливается как обычно — pip install plotly. Его мы и будем использовать для рисования графиков.


Давайте подготовим данные


Для визуализации мы используем простые данные об автомобилях от UCI (Калифорнийский университет в Ирвине — прим. перев.), которые представляют собой 26 характеристик для 205 машин (26 столбцов на 205 строк). Для визуализации шести измерений мы возьмём такие шесть параметров.


Здесь показаны только 4 строки из 205

Загрузим данные из CSV с помощью pandas.


import pandas as pd
data = pd.read_csv("cars.csv")

Теперь, подготовившись, начнем с двух измерений.

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

Используйте __main__.py

Время на прочтение2 мин
Количество просмотров99K

Зачем нужен __init__.py знает, наверное, любой питонист, но что насчёт __main__.py? Я видел немало проектов либо рабочих, либо на Github, которые не используют этот магический файл, хотя могли бы сделать свою жизнь проще. На мой взгляд, __main__.py это лучший способ для взаимодействия с питоновскими модулями, состоящими из нескольких файлов.


Но давайте сначала разберёмся: как большинство людей запускают свои скрипты на Python?


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


if __name__ == '__main__':
    main(sys.argv)

Когда вы скармливаете скрипт интерпретатору, магическая глобальная переменная __name__ получает значение __main__. Таким образом мы узнаём, что это не импорт, а именно запуск. Например:


python myapp.py

И это прекрасно работает для одиночного файла.


Проблема


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


.
├── README.me
├── requirements.txt
├── setup.py
└── src
    ├── __init__.py
    ├── client.py
    ├── logic.py
    ├── models.py
    └── run.py

Но пользователю, который склонировал проект из репозитория будет непонятно — какой из этих файлов главный? Неужели run.py? А может client.py? Где же искать знакомую строку if __name__ == '__main__'? Вот здесь-то __main__.py и способен проявить себя.

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

Что нового в разработке Mamba

Время на прочтение2 мин
Количество просмотров7K

Прошло немало времени с тех пор, как мы рассказывали о том, что нового в змеиной стране. Mamba всё еще быстра, поддерживает больше операций Conda и отрастила хвост (бэкенд) посолиднее благодаря изменениям в libsolv.



Ускоряем змею!

А что такое Mamba?


Mamba — это drop-in замена Conda, потрясающего кросс-платформенного менеджера пакетов. На наш взгляд у Conda есть один фатальный недостаток: она слишком медленная, когда много пакетов уже установлено или при одновременной установке нескольких пакетов. Mamba по-прежнему использует Conda почти для всего, кроме разрешения зависимостей. Мы заменили эту часть Conda на альтернативную реализацию под названием libsolv — C библиотеку, которая уже лежит в основе менеджеров пакетов в Linux системах типа dnf в Fedora или zypper в OpenSuse.


Интерфейс командной строки, работа с окружением, формат файла пакета, процесс установки, формат repodata и всё остальное — один-в-один как в Conda и работает на том же питоновском коде, что и Conda. Так что отличие, и правда, только в разрешении зависимостей!

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

Flutter: прокачиваем AppBar & SliverAppBar

Время на прочтение4 мин
Количество просмотров31K

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


Оба виджета позволяют сделать приложение чуточку красивее, что во Flutter, без сомнений, весьма просто.


Я видел много вопросов на StackOverflow и в группах Facebook о том, как можно изменить AppBar и SliverAppBar с точки зрения поведения или дизайна.


Давайте рассмотрим две задачи.

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

6 небольших советов, чтобы подготовить NodeJS к высоким нагрузкам

Время на прочтение2 мин
Количество просмотров11K

Сервис с распознаванием лиц «Look-A-Like» обслуживал тысячи пользователей одновременно

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


В рамках работы в MyHeritage мы разработали сервис doppelgänger для Евровидения 2019 года, с помощью которого, загрузив селфи, можно узнать на кого из участников конкурса вы похожи больше всего.


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

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

Делаем таблицу с бесконечной прокруткой без event listener

Время на прочтение2 мин
Количество просмотров8.8K

Что ж оно так лагает-то?



Если при рендеринге огромной таблицы с какой-нибудь transition анимацией не делать ничего дополнительно, то приложение будет лагать, а пользователь страдать.


И что же делать?

Пришло время заменить GIF на AV1 видео

Время на прочтение7 мин
Количество просмотров25K


Сейчас 2019 год, и нам пора бы принять решение относительно GIF (нет, речь не об этом решении! Здесь мы никогда не договоримся! — тут речь о произношении в английском, для нас это не актуально — прим. перев.). GIFы занимают огромное количество места (обычно по несколько мегабайт!) что, если вы веб-разработчик, полностью противоречит вашим желаниям! Как веб-разработчик, вы хотите минимизировать вещи, которые пользователям нужно скачать, чтобы сайт загружался быстро. По той же причине вы минимизируете JavaScript, оптимизируете PNG, JPEG, а иногда и конвертируете JPEG в WebP. Но что же делать со старичком GIFом?

Тёмные времена наступают

Время на прочтение5 мин
Количество просмотров45K

Или о чем следует помнить при разработке тёмного режима приложения или сайта


2018 год показал: тёмные режимы на подходе. Теперь, когда мы уже на полпути в 2019, мы можем с уверенностью сказать: они здесь, и они везде.


Пример старого монитора «зеленым-по-чёрному»

Начнем с того, что тёмный режим — это совсем не новая концепция. Его используют уже достаточно давно. А когда-то на самом деле давно только его и использовали: мониторы были вида «зеленым-по-чёрному», но только потому, что люминесцентное покрытие внутри излучало зеленоватое свечение при воздействии на него излучения.


Но даже после внедрения цветных мониторов тёмный режим продолжал жить. Почему же так?

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

История одного SQL расследования

Время на прочтение8 мин
Количество просмотров8.2K

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


Предыстория


Чтобы было понятно о чём речь, я расскажу совсем немного о VWO. Это платформа, с помощью которой можно запускать разные таргетированные кампании на своих сайтах: проводить A/B эксперименты, отслеживать посетителей и конверсии, делать анализ воронки продаж, отображать тепловые карты и проигрывать записи визитов.


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


Используя платформу, можно сделать произвольный запрос на большом наборе данных. Вот простенький пример:


Показать все клики на странице "abc.com"
ОТ <даты d1> ДО <даты d2>
для людей, которые
использовали Chrome ИЛИ
(находились в Европе И использовали iPhone)

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


Медленный запрос


Клиент, о котором идет речь, пытался сделать что-то, что интуитивно должно работать быстро:


Покажи все записи сессий
для пользователей посетивших любую страницу
с урлом, где есть "/jobs"

На этом сайте было огромное количество трафика, и мы хранили более миллиона уникальных URL-адресов только для него. И они хотели найти довольно простой шаблон урла, относящегося к их бизнес-модели.


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

Из-за чего тёмно-серый светлее чем серый в CSS

Время на прочтение1 мин
Количество просмотров34K


Вы, наверное, никогда не обращали внимания на такую мелочь, но в вашем браузере есть заранее определённые цвета, которые являются не тем, чем кажутся. Если бы я сказал вам, что названия образцов выше это LightGray, Gray и DarkGray, какому бы из цветов вы сопоставили каждое название?

Ответ под катом

Вышел uvloop — продвинутая реализация цикла событий для asyncio в Python

Время на прочтение1 мин
Количество просмотров45K
В стандартной библиотеке Python 3.4 в своё время появился модуль asyncio, позволивший удобно и быстро писать асинхронный код. А уже к Python 3.5 в синтаксис были добавлены конструкции async/await, окончательно оформившие асинхронность «из коробки» как красивую и гармоничную часть языка.



Хотя asyncio сам по себе и позволяет писать высоконагруженные веб-приложения, оптимизация производительности не была приоритетом при создании модуля.

Один из авторов упомянутого PEP-492 (async/await) Юрий Селиванов (на Хабре — 1st1, его твиттер) взялся за разработку альтернативной реализации цикла событий для asyncio — uvloop. Вчера вышла первая альфа-версия модуля, о чём автор написал развёрнутый пост.

Если вкратце, то uvloop работает примерно в 2 раза быстрее Node.js и практически не уступает программам на Go.
Под катом небольшая выжимка из записи в блоге

Подробности завершения периода беты Stack Overflow на русском языке

Время на прочтение1 мин
Количество просмотров7.7K
Подробный рассказ о том, как Stack Overflow на русском вышел из статуса беты, появился на днях в блоге компании.

К моменту завершения аттестации, статистика была следующей:

  • 115.7 вопросов задают в день
  • 82% вопросов отвечены
  • 1,499 постоянных пользователей и 33,678 пользователей всего
  • 1.7 ответа на вопрос в среднем
  • 42,464 визита в день

Помимо этого:

  • Больше 2,000 участников в месяц присоединяется к сообществу.
  • Сайт наиболее популярен (по убыванию) в: Москве, Киеве, Санкт-Петербурге, Минске и Харькове.
  • Более 3,000 участников в месяц получают правильные ответы.
  • Чтобы получить столько внимания, как на Stack Overflow на русском, вам пришлось бы нанять 23,000 разработчиков на полный рабочий день.

Запуск бета-версии SO на русском состоялся в 2015 году, став результатом поглощения сайта ХэшКод. Таким образом, процесс становления равноправным участником сети Stack Exchange занял у сервиса менее восьми месяцев.
Читать дальше →

Релиз OpenCV 3.0 с поддержкой Python 3

Время на прочтение1 мин
Количество просмотров38K
Вышла третья версия OpenCV (Open Computer Vision Library) — популярной библиотеки алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым исходным кодом.

Релиз включает примерно 1500 патчей, отправленных через github. Упомянуто, что в OpenCV использовано большое количество интеллектуальной собственности Intel (IPPCV), которую компания передала пользователям библиотеки бесплатно, без лицензионных выплат, для коммерческого и некоммерческого использования. Аппаратное ускорение с использованием OpenCL теперь доступно разработчикам через T-API (transparent API). Помимо этого, в третью версию OpenCV добавлено огромное количество новых возможностей, улучшений производительности и стабильности, подробнее обо всём можно почитать по ссылке.

Это первая стабильная версия библиотеки, которая полностью поддерживает Python 3. Для Windows и Python 3.4 бинарники уже можно скачать на сайте lfd.uci.edu. Модуль всё ещё имеет название cv2.
Читать дальше →

Как Mail.Ru защищает россиян от оффшорных игр про фашистов

Время на прочтение1 мин
Количество просмотров46K
Представитель Mail.Ru назвал World of Tanks «кипрской, офшорной» игрой, где «люди на фашистских танках атакуют, расстреливают российские танки». Это заявление директор игрового подразделения компании по маркетингу Михаил Кочергин сделал, выступая 4 февраля на заседании экспертного совета по киберспорту и индустрии развивающих игр в Госдуме.

На вопрос одного из присутствующих, не является ли белорусский разработчик конкурентом Mail.Ru, Кочергин заметил: «Нет это не конкуренты. У нас нету подобной игры, и мы не планируем выпускать». Напомню, что в прошлом году, компания запустила проект tanks.mail.ru, который некоторые пользователи посчитали чем-то похожим на World of Tanks.

Речь Кочергина начинается с 15:43, упоминание World of Tanks с 16:41:


Представитель Mail.Ru так же призвал государство начать регулировать российский рынок видеоигр, например, защитив местных производителей от иностранных: «То, что мы сейчас видим это давление со стороны иностранных компаний. В первую очередь китайских. Которые выходят на российский рынок и очень сильно отжимают российских производителей».

[ источник ]

Upd: Апдейт от пресс-службы Mail.Ru:
Высказанный комментарий абсолютно не отражает позиции Mail.Ru Group. В данном случае сотрудник существенно превысил свои полномочия и высказался на тему, не относящуюся к сфере его компетенций. После обсуждения инцидента мы приняли решение расстаться — больше Михаил Кочергин не работает в компании.

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

Вирус вывел из строя все комплексы видеофиксации в Подмосковье

Время на прочтение2 мин
Количество просмотров103K
Более 100 комплексов фото- и видеофиксации в Подмосковье вывел из строя вирус, сообщает «Газета.Ru». По данным издания, ни одна из установленных ГИБДД камер «Стрелка-СТ» сейчас не работает.

В распоряжении журналистов оказалось письмо от фирмы, занимающейся обслуживанием приборов:

«Исследование показало, что массовое выключение комплексов фотовидеофиксации «Стрелка-СТ» началось в 01.00 9 января 2014 года, и к 11.00 утра данные перестали приходить с более чем 90 точек, исправно работающих накануне, 8 января 2014 года», — отмечается в документе.

К 10 января из строя вышли уже 110 из 144 установленных в Московской области камер. Помимо этого, в письме говорится и о причинах коллапса:

После углубленной диагностики термостатированных компьютеров комплекса «Стрелка-СТ» было установлено:

— в результате намеренного взлома системы была повреждена файловая система блоков обработки и управления комплексов «Стрелка-СТ», что делает невозможным запуск операционной системы Windows XP и специализированного программного обеспечения комплексов;
— повреждены системные журналы операционной системы; на системном диске С:
— найден инородный вредоносный пакетный файл 222.bat, настроенный для автоматического изменения пароля операционной системы и запуска исполняемого файла 1.exe;
— изменены пароли на доступ в операционную систему с правами администратора.

Причиной неработоспособности комплексов является умышленный взлом операционной системы неизвестными лицами.
Читать дальше →

Хабрахабр попал в реестр запрещенных сайтов

Время на прочтение1 мин
Количество просмотров126K
9 октября Роспотребнадзор внес Хабрахабр в реестр запрещенных сайтов, сообщает «Роскомсвобода».



Решение было принято из-за комментария к статье «Роскомнадзор и ЛБИ разработали критерии оценки запрещенной информации в интернете о самоубийствах», в котором хабравчанин shara цитировал ироничную запись о способе самоубийства. Там же приводились ссылки на ЖЖ, «ВКонтакте», «Ответы@ Mail.Ru» и другие ресурсы, где был доступен текст этой записи. Сам комментарий уже удален, его автор находится в «read-only».
Читать дальше →

Воронежец заключил с банком договор, внеся свои правки, и собирается отсудить 24 миллиона рублей

Время на прочтение8 мин
Количество просмотров478K
Наверное, нет человека, которого бы не раздражало, что самые важные пункты в договорах всегда пишутся «мелким шрифтом».

Но, зная об этом, раз за разом многие люди подписывают бумаги, не прочитав их внимательно, и платят комиссии, о которых не догадывались.

42-летний житель Воронежа нашел остроумный способ обратить эту особенность в свою пользу и теперь, пользуясь невнимательностью банкиров, собирается отсудить у них 24 миллиона рублей.
Читать дальше →

«Почта России» наносит ответный удар

Время на прочтение1 мин
Количество просмотров133K
Как сообщается на сайте «Почты России», массированной спам-атаке подвергается сайт Роскомнадзора.

«Спланированной акцией спамеров», по мнению ФГУП, является отправка жалоб на работу почтовой сети. Если ранее сайт Роскомнадзора получал не более десятка таких заявлений в день, то с середины марта в службу ежедневно приходит до 1000 обращений клиентов интернет-магазинов о проблемах с доставкой покупок.

К счастью «Почта России» быстро отреагировала на провокацию и уже готовит заявление в МВД:

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

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

Как, на ваш взгляд, антивирусы должны воспринимать Guard@Mail.Ru и другое подобное ПО?

Время на прочтение1 мин
Количество просмотров69K
В связи с множеством неприятных событий (вот последнее), связанных с Guard@Mail.Ru и подобным ПО, предлагаю провести опрос о предпочитаемой реакции антивируса на эти программы.

В пост настойчиво призываются представители лаборатории Касперского, ESET NOD32 и других компаний, занимающихся разработкой антивирусов.

Upd:
Кстати, выразить своё мнение можно и на Virustotal.
спасибо хабраюзеру numitus

Опрос сразу под катом

Стала известна дата отмены мобильного рабства

Время на прочтение1 мин
Количество просмотров47K
Полгода прошло с момента подготовки законопроекта об отмене «мобильного рабства».

На днях стало известно, что возможность сохранения номера мобильного телефона при смене оператора появится у российских абонентов с 1 декабря 2013 г.

Об этом сообщил Аркадий Дворкович в ходе встречи с премьер-министром. Законопроект уже находится в правительстве, и в течение трех месяцев будет подготовлено пять необходимых подзаконных актов.

«Каждый абонент сможет сохранить номер при переходе к другому оператору, расходы компаний, связанные с ведением баз данных, будут компенсироваться из резерва на оказание универсальных услуг связи», — резюмировал Дворкович.
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность