![](http://webcf.waybackmachine.org/web/20210512140546im_/https://habrastorage.org/getpro/habr/avatars/b9f/baf/5f9/b9fbaf5f96ae52973706a0716bd9216e.jpg)
Руководство по моему стилю тестирования на Python
- Перевод
![](https://webcf.waybackmachine.org/web/20210512140546im_/https://habrastorage.org/getpro/habr/upload_files/843/c09/24a/843c0924ad9474f541031bb76af4e01b.png)
В этой статье я попыталась собрать несколько своих техник тестирования на Python. Не стоит воспринимать их как догму, поскольку, думаю, со временем я обновлю свои практики.
В этой статье я попыталась собрать несколько своих техник тестирования на Python. Не стоит воспринимать их как догму, поскольку, думаю, со временем я обновлю свои практики.
Как устроены индексы в MySql, чем отличается индексирование в двух наиболее популярных движках MyISAM и InnoDb, чем первичные ключи отличаются от простого индекса, что такое кластерные индексы и покрывающие индексы, как с помощью них можно ускорить запросы. Вот как мне кажется наиболее интересные темы которые раскрою в этой статье. Тут же постараюсь подробно раскрыть тему с позиции того как работает этот механизм внутри. Буквально на пальцах и с позиции абстракций а не конкретики. В общем чтоб было минимум текста и максимум понятно.
Наличие технического писателя в команде воспринимается либо как нечто само собой разумеющееся, либо как нечто вызывающее вопросы “Ты кто? Ты что тут делаешь?”.
Но когда технический писатель уходит из команды, его отсутствие можно сравнить с отсутствием маленького кусочка в большом и сложном паззле. Без этого кусочка можно обойтись. Но внимательный наблюдатель заметит, что картина команда не полная, в ней явно кого-то не хватает.
А именно не хватает человека, который охотно и каждый день берет на себя всю эту писанину. А без нее никак на проекте.
Почему же такой человек в один прекрасный день может взять и уйти?
В этой статье хочу поделиться своим опытом, без отсылки на умные исследования Гарварда и Стэнфорда. Для себя выделила пять причин. Ими делюсь.
Работая над темой низкоуровневого профилирования, я обнаружил отсутствие подробного руководства по настройке окружения и сбору материала. Всё пришлось делать самому путём проб и ошибок. Итогом стала эта статья, в которой я по шагам описал профилирование кода, горячее место в котором не в силах обнаружить не только какой-нибудь VisualVM, но и титаны вроде async-profiler-а. В качестве примера использован код из ранее упоминавшейся статьи The volatile read surprise.
Нейронные сети помогают нам решать различные задачи в сфере AI и компьютерного зрения. Например, детектирование, классификация, сегментация, распознавание объектов и многие другие. Во многих случаях используются готовые предобученные модели, которые дообучаются по собственным данным разработчика для получения готового отраслевого решения. В этом случае ценность представляет как сам датасет (набор размеченных данных для дообучения), так и полученная модель. Если модель эксплуатируется у Заказчика, распространяется по лицензионной схеме и обладает достаточными для рынка показателями точности, то она сама по себе представляет ценность, так как может быть скопирована и запущена в рамках сторонних решений.
Одной из задач, которая встает на этапе деплоймента готовых решений на базе нейронных сетей – это защита разработанных и предобученных моделей от несанкционированного использования с интеграцией системы лицензирования и лимитированием сроков в варианте срочных лицензий.
Защита нейронной сети может быть физическая и юридическая. Юридическая защита обычно заключается в использовании «водяных знаков», и поможет доказать, что нейронная сеть используется не законно. Физическая защита сводится к блокировке защищенной модели. В данной статье мы рассмотрим физическую защиту на основе ключей SenseLock и фреймворка Intel OpenVINO.
Мы в своих решениях используем оптимизацию моделей и инференс (исполнение моделей) в фреймворке Intel OpenVINO. Это позволяет оптимизировать скорость исполнения нейронных сетей на всей линейке устройств Intel начиная от CPU, встроенной графики iGPU и заканчивая ускорителями VPU на базе Intel Movidius (MyriadX).
Функционал IntelliJ IDEA велик, так что вряд ли найдется много разработчиков, кто использует все ее возможности без исключения. Но у каждого есть свой набор любимых фишек и опций. Около месяца назад во внутреннем чате Максилекта родилась идея пошарить эти фишки внутри компании. Коллеги восприняли ее с таким энтузиазмом, что одного запланированного часа обсуждений на это не хватило - встречу повторили через неделю.
Хотим поделиться с вами самыми интересными идеями (со ссылками на документацию, где подробно описано, как это работает).
Гистограммам не чужды систематические ошибки. Дело в том, что они достаточно условны и могут привести к неправильным выводам о данных. Если вы хотите визуализировать переменную, лучше выбрать другой график.
Часть 1. 4 месяца борьбы за место DS джуна: https://habr.com/ru/post/536014/
ТАКСИ
- "А у вас тоже свой бизнес, а такси так, для души?" - пошутил пассажир на заднем сидении.
До Нового 2020 года оставалось три часа. Праздновать я собирался за рулем, принимая заказы. Никто еще не слышал ни про какую Ухань. А если ты чихнул, не прикрывшись, людей вокруг это совершенно не волновало.
На голове - новогодние оленьи рога, в бардачке - конфеты. Но девять из десяти заказов - это замученные последним рабочим днем люди, и мои конфеты были им абсолютно не интересны.
- "Нет, к счастью, никакого бизнеса у меня нет."
На самом деле, историй из прошлого про бизнес у меня более, чем достаточно. Но это закрытая страница. Мог бы завести разговор, что не так давно решил рискнуть и начал учиться Data Science. Но не стал. За время поездки я вряд ли объясню обычному человеку, что значат эти два слова. Да, честно говоря, тогда и сам еще не до конца понимал.
Желание это было еще не до конца оформлено и существовало только в виде тетрадки (которую я завел несколько лет назад, понятия не имея ни про какой "машин лёрнинг") с размытыми идеями о том, как бы я разрабатывал свой искусственный интеллект, если бы делал его с нуля...
В предыдущей статье Ищем рудное золото на острове Сумбава, Индонезия я рассказывал про поиски золота в Индонезии, где при схожей геологической ситуации золотые жилы зачастую выходят на поверхность, в то время как в Сибири жилы обычно погребены под толщей осадочных пород. Конечно, десятки метров наслоений разных геологических периодов и состава сильно усложняют задачу поиска рудных ископаемых. Кроме того, есть проблема наличия геологических данных, собранных непосредственно на местности — задачи обследования территории теплой Индонезии и морозной болотистой Сибири не сравнимы. А еще следует помнить про специфику России — детальные геологические обследования времен СССР до сих пор засекречены (а после того не проводились, по крайней мере, в сопоставимых масштабах), при этом бумажные карты и данные бурения находятся в архивах, а номера скважин на картах и в отчетах о бурении намеренно изменены и таблицы соответствия хранит министерство обороны… как в сказке про смерть Кащея. Так что в реальности эти данные все равно что и не существуют.
В связи со сложностью задачи, нам потребуются серьезные статистические методы, такие, как полиспектральный анализ. Что интересно, такой анализатор у нас уже есть… в голове. Это легко подтвердить тем, что мы способны различать так называемый «малиновый звон» колоколов — этот эффект не проявляется на спектре, зато отлично виден на биспектре. Большинство людей отличает колокола с малиновым звоном, для этого даже не требуется наличие музыкального слуха. Опытный геолог, занимающийся визуальной дешифровкой космоснимков, способен вручную выделить на них элементы, сопутствующие различным погребенным геологическим структурам. Мы же, как обычно, воспользуемся вычислительными методами и построим 3D геологические модели для автоматизированного анализа.
Почему голосовые помощники так хорошо, но плохо говорят? Основная их проблема - отсутствие логического мышления: по большому счету это просто очень продвинутые попугайчики, которые услышав фразу подбирают к ней наиболее подходящий ответ. Уровень выше - Искусственный интеллект, он может неплохо управлять машиной. Но попробуйте заставить его протереть пыль на полках. Как это ни удивительно, данная задача на порядок сложнее, здесь уже требуется Сильный искусственный интеллект (Artificial General Intelligence): поднять вазу, убрать носки в стиральную машину, все это требует объемных знаний об окружающем мире.
Про Сильный AI очень много разговоров, но мало конкретики: "мы сначала должны постигнуть все секреты нашего мозга", "AI оставит людей без работы" и "он поработит человечество". Нет даже четкого определения, что такое AGI, не говоря уже об инструкциях, как его построить. А между тем, почти все ответы уже найдены и остается только собрать этот пазл. Сейчас мы разберемся, что такое Сильный AI, можно ли выжать его из нейронных сетей, и как его создать правильно.
Минувшей зимой мы впервые опробовали формат хакатона. Из-за ограничений на массовые мероприятия он проходил в формате онлайн, но это никак не сказалось на наших ожиданиях. Нам давно хотелось повысить узнаваемость бренда работодателя за пределами ИБ-рынка — среди разработчиков и других айтишников, которые зачастую не имеют о нас никакого представления. Кроме того, мы хотели понять, можно ли на хакатоне познакомиться с перспективными специалистами, а еще нам было очень интересно узнать внутреннюю кухню профессиональных организаторов таких мероприятий, чтобы научиться проводить их самим.
Если вам давно не дает покоя идея провести хакатон, но трясутся поджилки, и вы не знаете, с чего начать, добро пожаловать под кат. Мы расскажем, как это происходило у нас, как миновать наши грабли, и как ожидания могут разойтись с реальностью, а также можно ли воссоздать атмосферу офлайнового хакатона в режиме онлайн.