Pandas — это основная библиотека для работы с данными. Вот несколько приёмов, которые я использую, чтобы быстрее и проще выполнять повторяющиеся задачи по работе с данными.
Technical Support Specialist
PostgreSQL, что в логе твоем?
Наверняка, многие из вас пользуются explain.tensor.ru - нашим сервисом визуализации PostgreSQL-планов или уже даже развернули его на своей площадке. Но визуализация конкретного плана - это лишь небольшая помощь разработчику, поэтому в "Тензоре" мы создали сервис, который позволяет увидеть сразу многие аспекты работы сервера: медленные или гигантские запросы, возникающие блокировки и ошибки, частоту и результаты проходов [auto]VACUUM/ANALYZE
.
И сегодня мы, наконец, готовы представить вам демо-режим этого сервиса, куда вы самостоятельно можете загрузить лог своего PostgreSQL-сервера и наглядно увидеть, чем он у вас занимается.
SQL-инъекции' union select null,null,null --
Согласно OWASP Top-10, SQL-инъекции считаются наиболее опасными уязвимостями. Успешная атака с их использованием может не только привести к компрометации данных, таких, как: пароли, данные кредитной карты или личная информация пользователя, но и, при определенных условиях, самого сервера. В этой статье мы рассмотрим предпосылки к появлению SQL-инъекций, ознакомимся с их видами и составим список рекомендаций для защиты веб-приложений от подобных недостатков.
Единый математический язык для физики и инженерного искусства в 21 веке
Конец 18-го и 19-й век были временем колоссального прогресса в математике. Величайшие умы тысячелетия вводили все новые математические системы и языки, такие как алгебры Клиффорда и Грассмана. Хотя эти алгебры вызвали значительный интерес, в то время они воспринимались как подспорье более прямолинейной и более общеприменимой векторной алгебры Гиббса. Это было фактически концом поисков объединяющего математического языка и началом распространения новых алгебраических систем, создаваемых по мере необходимости; например, спинорная алгебра, матричная и тензорная алгебры, дифференциальные формы и т. д.
В этой статье мы реализуем возрождение алгебр Клифорда и Грассмана в виде структуры, известной как геометрическая алгебра (ГА). Это понятие было впервые введено в середине 1960-х годов американским физиком и математиком Дэвидом Хестенсом. Прошло 40 лет, но есть признаки того, что его утверждение о том, что ГА является универсальным языком для физики и математики, теперь начинает принимать все более явственные очертания. Во всем мире растет число групп, которые применяют ГА к целому ряду проблем из многих научных областей, обеспечивая чрезвычайно мощную математическую структуру, в которой могут быть выражены самые передовые концепции квантовой механики, теории относительности, электромагнетизма и т. д. При этом, утверждается, что ГА также достаточно проста для преподавания школьникам! В этой статье мы рассмотрим развитие и недавний прогресс ГА и обсудим, действительно ли она является объединяющим языком для физики и математики 21-го века. Примеры, которые мы будем использовать для иллюстрации, будут взяты из ряда областей физики и техники.
Устраиваем DevOps без полномочий: Даже «DevOps-инженер» может помочь
DevOps — это история про культуру, коллаборацию и общение, но многие не очень представляют, как будучи скромным исполнителем или тимлидом, повлиять на целый энтерпрайз и сдвинуть организацию в сторону DevOps.
На DevOops 2020 Moscow Барух Садогурский и Леонид Игольник рассказали, какими методами можно воспользоваться для влияния на стейкхолдеров, что кому говорить, как мотивировать и как работать с возражениями. Пожалуй, за исключением парапсихологических практик и гипноза (которые не стоит раскрывать неокрепшим умам), на этом докладе спикеры показали все способы влиять, не имея полномочий на благо наступления повсеместного DevOps в индустрии.
Под катом — расшифровка доклада, а также видео с конференции. Далее повествование ведется от лица спикеров.
Практическое руководство по разработке бэкенд-сервиса на Python
TL;DR: Вот репка на GitHub с приложением, а кто любит (настоящие) лонгриды — прошу под кат.
Почему я ненавижу virtualenv и pip
Небольшой мод превращает «Теслу» в станцию видеонаблюдения
Программа Surveillance Detection Scout обнаружила знакомого человека и предлагает кадры из архива с его лицом
Правительства многих стран разворачивают системы слежки за населением через сеть видеокамер. Но граждане могут использовать этот инструмент и в своих целях.
Исследователь безопасности Трумэн Кейн (Truman Kain) на хакерской конференции DEF CON представил любопытный мод для автомобиля Tesla под названием Surveillance Detection Scout (слайды презентации, демо). С его помощью автомобиль превращается в настоящую платформу видеонаблюдения на колёсах. Он распознаёт номера машин на дороге и лица людей в реальном времени.
Настройка Unit-тестов в смешанных проектах Swift + Objective-C
Деплоим ML проект, используя Flask как REST API, и делаем доступным через приложение на Flutter
Введение
Машинное обучение уже везде и, пожалуй, почти невозможно найти софт, не использующий его прямо или косвенно. Давайте создадим небольшое приложение, способное загружать изображения на сервер для последующего распознавания с помощью ML. А после сделаем их доступными через мобильное приложение с текстовым поиском по содержимому.
Мы будем использовать Flask для нашего REST API, Flutter для мобильного приложения и Keras для машинного обучения. В качестве базы данных для хранения информации о содержимом изображений используем MongoDB, а для получения информации возьмём уже натренированную модель ResNet50. При необходимости мы сможем заменить модель, используя методы save_model() и load_model(), доступные в Keras. Последний потребует около 100 Мб при первоначальной загрузке модели. Почитать о других доступных моделях можно в документации.
Испытание для компании: задаем правильные вопросы на собеседовании
Технологии микроэлектроники на пальцах: «закона Мура», маркетинговые ходы и почему нанометры нынче не те. Часть 1
Возможное фото 10 нм IceLake. Источник
Странные вещи творятся на процессорном рынке. Мировой лидер в лице фирмы Intel пятый год бьется в попытках перейти на 10 нм техпроцесс. Изначально заявляли о переходе на 10 нм в 2015-м году, потом в 2016-м, 2017-м… На дворе 2019-й, а 10-нм от Intel в серии так и нет. Ну как нет, есть отдельные опытные/инженерные образцы, но высокий выход годных — проблема. Реальный переход ожидается не раньше 2022 года уже.
Собственно, это и стало причиной дефицита процессоров Intel на рынке. Для его преодоления компания расширяет производство модифицированных 14 нм процессоров (те же Lake только в профиль) и даже возвращается к 22 нм. Казалось бы, регресс налицо. А в это время корейский Samsung, тайваньский TSMC и примкнувший к ним AMD с платформой ZEN 2 рапортуют о вводе в серию аж 7 нм и вот-вот перейдут на 5 нм. Достали из пыльного шкафа «закон Мура» и объявили его живее всех живых. Скоро будет и 3 нм, и 2 нм, и даже 1 нм (sic!) — pourquoi pas?!
Что же произошло? Неужто
Disclaimer: Данную статью я нашёл совершенно случайно и был крайне поражён, насколько грамотно и подробно в ней раскрываются проблемы современной микроэлектроники, в частности, смерть закона Мура и маркетинг. Когда-то давно и сам баловался написанием статей про изготовление чипов, а в серии статей «Взгляд Изнутри» даже заглядывал внутрь оных, т.е. тема мне крайне интересна. Естественно, я бы хотел, чтобы сам автор оригинальной статьи опубликовал её на Хабре, но в связи с занятостью он разрешил мне перенести её сюда. К сожалению, правила Хабра не разрешают прямую копи-пасту, поэтому я добавил ссылки на источники, картинки и немножко отсебятины и постарался чуть-чуть выправить текст. Да, и статьи (1 и 2) по данной теме от amartology знаю и уважаю.
Модифицируем Bluetooth-стек для улучшения звука на наушниках без кодеков AAC, aptX и LDAC
Некоторые пользователи беспроводных наушников отмечают низкое качество звука и недостаток высоких частот при использовании стандартного Bluetooth-кодека SBC, который поддерживают все аудиоустройства. Частой рекомендацией для улучшения звука является покупка устройств и наушников с поддержкой кодеков aptX и LDAC. Эти кодеки требуют лицензионных отчислений, поэтому устройства с их поддержкой стоят дороже.
Оказывается, низкое качество SBC обусловлено искусственными ограничениями Bluetooth-стеков и настроек наушников, и это ограничение можно обойти на любых существующих устройствах, путём программных изменений смартфона или компьютера.
Используйте __main__.py
Зачем нужен __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 и способен проявить себя.
Аудио через Bluetooth: максимально подробно о профилях, кодеках и устройствах
This article is also available in English
Из-за массового выпуска смартфонов без аудиоразъема 3.5 мм беспроводные Bluetooth-наушники для многих стали основным способом прослушивания музыки и общения в режиме гарнитуры.
Производители беспроводных устройств не всегда пишут подробные характеристики товара, а статьи о Bluetooth-аудио в интернете противоречивы, местами некорректны, не рассказывают о всех особенностях, и часто копируют одну и ту же не соответствующую действительности информацию.
Попробуем разобраться с протоколом, возможностями Bluetooth-стеков ОС, наушников и колонок, Bluetooth-кодеков для музыки и речи, выясним, что влияет на качество передаваемого звука и задержку, научимся собирать и декодировать информацию о поддерживаемых кодеках и других возможностях устройств.
TL;DR:
- SBC — нормальный кодек
- У наушников есть свой эквалайзер и пост-процессинг на каждый кодек отдельно
- aptX не настолько хорош, как о нём говорят рекламные анонсы
- LDAC — маркетинговое фуфло
- Качество звука в режиме разговора всё ещё низкое
- В браузер можно встроить аудиоэнкодеры на C, скомпилировав в WebAssembly через emscripten, и они не будут особо тормозить.
Побег из Крипто Про. Режиссерская версия, СМЭВ-edition
Эта статья посвящена тому, как перестать использовать Крипто Про и перейти на Bouncy Castle в девелоперском/тестовом окружении.
В начале статьи будет больше про СМЭВ и его клиент, в конце — больше про конвертирование ключей с готовой копипастой, чтобы можно было начать прямо сейчас.
Картинка для привлечения внимания:
Про бэкапы, черную пятницу и коммуникации между людьми: как мы накосячили и научились больше так не делать
13 октября мы провели вторую конференцию сообщества Uptime. В этот раз дата проведения выпала на пятницу 13-е, поэтому основная тема — аварии, и как с ними справляться. Это первый из серии постов про доклады с прошедшей конференции.
У меня есть три страшные истории о том, как по нашей вине все сломалось, как мы это чинили, и что мы делаем теперь, чтобы это не повторилось.
Мозг как компьютер: плохо справляется с математикой, и хорошо – со всем остальным
Конечно же, мозг эволюционировал не для того, чтобы заниматься арифметикой. Поэтому у него это получается плохо. Но он прекрасно справляется с обработкой постоянного потока информации, идущего от нашего окружения. И он реагирует на неё – иногда быстрее, чем мы можем это осознать. И неважно, сколько энергии будет потреблять обычный компьютер – он с трудом будет справляться с тем, что легко даётся мозгу – например, с пониманием языка или с бегом по лестнице.
Исследуем базы данных с помощью T-SQL
В этой статье я поделюсь базовым набором скриптов, раскапывающим информацию о метаданных с помощью системных функций, хранимых процедур, таблиц, dmv. Вместе они раскрывают все секреты баз данных на нужном экземпляре – их размер, расположение файлов, их дизайн, включая столбцы, типы данных, значения по умолчанию, ключи и индексы.
Если вы когда-нибудь пытались получить часть этой информации, с помощью GUI, я думаю вы будете приятно удивлены количеством той информации, которая, с помощью этих скриптов, получается мнгновенно.
Как и с любыми скриптами, сначала проверьте их в тестовом окружении, прежде чем запускать в продакшене. Я бы рекомендовал вам погонять их на тестовых базах MS, таких как AdventureWorks или pubs.
Ну, хватит слов, давайте я покажу скрипты!
Эпигенетические часы и другие биомаркеры старения
Что такое биомаркер старения и зачем он нужен?
Все мы знаем кого-то, кто “прекрасно сохранился” для своего возраста, и кого-то, кто “стар не по годам”:
Собственно, биомаркеры старения нам как раз и нужны для того, чтобы можно было объективно сказать: да, вам 50, но здоровье у вас на уровне 35-летней. А вот вам, молодой человек, стоило бы повнимательней отнестись к своему здоровью — ваш биологический возраст на 10 лет превышает хронологический, а это чревато 48%-ым повышением риска смерти.
При чём тут старение и вероятность смерти? А при том, что у людей, как и у большинства млекопитающих, старение сопровождается экспоненциальным риском смертности:
И если в 30 лет годовая вероятность умереть у вас составляет 1 шанс на тысячу, то к 80 она повышается в 100 раз. Именно это возрастное повышение вероятности умереть геронтологи и называют старением. И нет, стареет далеко не “всё живое”. Есть виды, которые с возрастом наоборот “молодеют” — их вероятность смерти падает, а плодовитость повышается:
Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность