Search
Write a publication
Pull to refresh
-18
0

Admin Oracle, Linux, AIX, Kafka, devops

Send message

Лучшие оптические иллюзии 2021 года

Reading time3 min
Views22K

В сериале «Доктор Хаус» (Сезон 6, серия 3) есть эпизод, где он лечит соседа Уилсона, вредного ветерана, от фантомных болей в ампутированной руке при помощи картонной коробки и зеркала. Есть даже специальный вид терапии: Mirror therapy, изобретенная Вилейануром Рамачандраном (тут реальное видео из реальной терапии).

Японские экспериментаторы Yutaro Sato, Kento Imai и Kenri Kodaka из Nagoya City University пошли дальше. Эксперимент очень прост и каждый может повторить его дома. Теперь у вас есть возможность обмануть свой мозг и испытать на своей шкуре, каково быть человеком-резиной.

Испытуемый кладет руку так, что она закрывается зеркалом и глаза видят только «лизуна» (резиновую слизь). То есть как бы мы подменяем реальную руку другим объектом, а потом подключаем сенсорные ощущения. Экспериментатор пощипывает реальную руку и одновременно пощипывает слизь в том месте, где глаза видят эту слизь вместо настоящей руки. Потом он немного оттягивает реальную кожу на реальной руке, а резиновую слизь тянет и тянет далего за пределы тянучести реальной руки и мозг верещит от необычности происходящего, но потом привыкает.

Оптическая иллюзия «Slime Hand» заняла 7-е место на всемирном конкурсе оптических иллюзий Best Illusion of The Year Contest. Под катом — остальные призёры.

Канал в телеграм Cognitive Illusions, от которого зависнет не только ваш комп/смартфон, но и разум.
Читать дальше →

Big O

Level of difficultyEasy
Reading time5 min
Views252K
бинарный поиск
Примечание. Сокращенный перевод, скорее пересказ своими словами.
UPD: как отметили в комментариях, примеры не идеальны. Автор не ищет лучшее решение задачи, его цель объяснить сложность алгоритмов «на пальцах».


Big O нотация нужна для описания сложности алгоритмов. Для этого используется понятие времени. Тема для многих пугающая, программисты избегающие разговоров о «времени порядка N» обычное дело.

Если вы способны оценить код в терминах Big O, скорее всего вас считают «умным парнем». И скорее всего вы пройдете ваше следующее собеседование. Вас не остановит вопрос можно ли уменьшить сложность какого-нибудь куска кода до n log n против n^2.

Структуры данных


Выбор структуры данных зависит от конкретной задачи: от вида данных и алгоритма их обработки. Разнообразные структуры данных (в .NET или Java или Elixir) создавались под определенные типы алгоритмов.

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

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

Как мы использовали расширенную статистику Postgres и ускорились в 2850 раз

Reading time9 min
Views14K

В этом переводе к старту курса по Fullstack-разработке на Python напоминаем о том, насколько важно знать технологии в деталях, грамотно применять их и планировать работу в целом. Цифра 2850 в заголовке — не преувеличение: ранее занимавший две минуты запрос в базе данных компании Affinity сегодня выполняется за 42 миллисекунды. Подробности, как всегда, под катом. А если вам нужен план развития навыков с большим количеством практики, вы можете обратить внимание на наши курсы.

Читать далее

Метаклассы в Python

Reading time14 min
Views38K

Привет, Хабр! У нас продолжается распродажа в честь черной пятницы. Там вы найдете много занимательных книг.

Возможен вопрос: а что такое метакласс? Если коротко, метакласс относится к  классу точно как класс к объекту.

Метаклассы – не самый популярный аспект языка Python; не сказать, что о них воспоминают в каждой беседе. Тем не менее, они используется в весьма многих статусных проектах: в частности, Django ORM[2], стандартная библиотека абстрактных базовых классов (ABC)[3] и реализации Protocol Buffers [4].

Это сложная фича, позволяющая программисту приспособить под задачу некоторые самые базовые механизмы языка. Именно по причине такой гибкости открываются и возможности для злоупотреблений – но нас это уже не удивляет. С большими возможностями приходит большая ответственность.

Читать далее

Малоресурсное шифрование

Reading time11 min
Views9K

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

Читать далее >>>

Лёгкий блочный шифр Speck, или пылинка от агенства, которого нет

Reading time4 min
Views30K
Устройство на КДПВ шифрует не по алгоритму Speck, но могло бы

В июне 2013 года АНБ опубликовало описание двух лёгких блочных шифров — Simon и Speck [1].

Произошло это в самый разгар скандала со Сноуденом, поэтому новость была встречена с понятным скептицизмом. Особенно потому, что в статье не было результатов криптоанализа, а только описание алгоритма и данные о производительности.

Прошло два года, практических атак ни на Simon, ни на Speck не появилось [2], а преимущества (простота и гибкость) — остались.

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

Что там внутри и зачем он нужен, когда есть AES

Почему инициализировать веса нейронной сети одинаковыми значениями (например, нулями) – это плохая идея

Reading time11 min
Views20K

В популярных фреймворках машинного обучения TensorFlow и PyTorch при инициализации весов нейросети используются случайные числа. В этой статье мы попытаемся разобраться, почему для этих целей не используют ноль или какую-нибудь константу.

Кто хочет быстрый и короткий ответ на этот вопрос, вот он: если инициализировать веса нулями, то нейросеть может не обучаться совсем или обучаться плохо.

Кто хочет более развёрнуто узнать, что значит «плохо», может просто перемотать к заключению в конце статьи.

А тем, кто хочет в деталях разобраться с основами обучения нейронных сетей, добро пожаловать в мир математических формул. Мы детально разберём, из-за чего в механизме обучения может произойти «сбой».

Читать далее

Если мошенники украли деньги с банковской карты — не спешите в полицию

Reading time8 min
Views185K

Мне давно надоели эти банки, но инфопространство постоянно забито историями, как мошенники в очередной раз украли деньги, причём даже без социальной инженерии. 

Народ жалуется на Tinkoff, Альфа-банк и прочие банки, на операторов сотовой связи. Портал banki.ru ввёл драконовские правила, что у него решения судов без оценок в народном рейтинге, на форуме нельзя написать, что itsoft выиграл дело у ВТБ — это реклама itsoft видите ли, то есть видно надо писать одна компания, но не скажем какая выиграла суд у ВТБ.

В статье “Банки не хотят внедрять многофакторную авторизацию и покончить с мошенничеством” есть простые рецепты, которые бы исключили случаи мошенничества хотя бы для тех, кто не разговаривает с мошенниками и не сообщает им коды. Народ хочет аппаратные токены, а банки не дают. 

К написанию данной статьи меня ещё подвиг наш конфликт с хостером Leaseweb. 7 лет мы платили одну цену в месяц за аренду серверов там. А потом она внезапно выросла в 70 раз. Leaseweb решил, что за действия злоумышленников деньги надо списать с нашей корпоративной карты.

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

Читать далее

PVbase: compacted topic в Apache Kafka

Reading time5 min
Views16K

Подумайте о проблеме, которую вы можете решить с помощью Big Data, и задайте себе вопрос: «Что будет, если мы захотим увеличить масштаб в 100 000 раз?» Ответ прост: producer продолжит закачивать сообщения, в итоге на диске закончится место для их хранения.

Log Compaction (сжатие журнала) – стратегия, с помощью которой вы можете решить эту проблему в Apache Kafka – программном брокере сообщений, используемом для ведения журналов событий, чтения данных в непрерывном режиме с периферийных устройств, сбора информации о поведении посетителей на сайте. Большинство систем, использующих Kafka, являются распределёнными и обрабатывают большие объёмы сообщений в реальном времени.

Здесь я постараюсь описать некоторые нюансы работы compacted topic. Если вы хотите разобраться с механизмом log compaction, эта статья для вас.

Читать далее

Python: Логируем как профессионалы

Reading time13 min
Views54K

Часто вижу, что помимо обработки исключений, люди мучаются кое с чем еще, а именно с логированием.

Большинство людей не знают, что писать в логи, поэтому решают логировать все, что угодно, думая, что все подряд – это в любом случае лучше, чем ничего, и, в конечном итоге, просто создают шум. А шум – это информация, которая никак не помогает вашей команде понять, в чем дело и как решить проблему.

Читать далее

Git для новичков (часть 2)

Reading time4 min
Views154K

В прошлой статье, я рассказал, что такое Git, как его установить и выложить свой код на GitHub. Сегодня мы поговорим про работу в команде над одним проектом. И как это устроено в Git.

В данной статье, вся работа с Git будет через командную строку.

Читать далее

Git для новичков (часть 1)

Reading time5 min
Views734K

Git - это консольная утилита, для отслеживания и ведения истории изменения файлов, в вашем проекте. Чаще всего его используют для кода, но можно и для других файлов. Например, для картинок - полезно для дизайнеров.

С помощью Git-a вы можете откатить свой проект до более старой версии, сравнивать, анализировать или сливать свои изменения в репозиторий.

Читать далее

Спорт, как хобби для здоровья, с точки зрения инженера

Reading time14 min
Views79K
image
Картинка из гугла для привлечения внимания.

На GT все чаще обсуждаются вопросы функционального здоровья. В этой статье я хочу привести анализ различных видов активности и связанных с ними адаптаций. Для себя я выбрал основным критерием оптимизации качество жизни в долгосрочной перспективе в сочетании с максимальным удовольствием в текущий момент. Тем не менее, я постараюсь рассмотреть плюсы и минусы различных спортивных (физкультурных) концепций максимально разносторонне и развеять некоторые мифы.

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

Для тех, кому лень читать: наш выбор — качалочка и плавание. Бег, игры и велик — по желанию.
Читать дальше →

Простой способ получения ”Flicker-Off”: «отключение» ШИМ мерцания подсветки LCD мониторов и телевизоров

Reading time20 min
Views79K
''Свобода* лучше, чем несвобода*''©
*от мерцания подсветки

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

Одной из причин этого может быть мерцание LED светодиодов подсветки монитора, вызванное ШИМ регулированием их яркости.

КДПВ

На habr.com уже было несколько статей, посвященных как описанию этого явления, например Пульсация экранов телевизоров и Увидеть пульсацию, так и методам борьбы с ним, например за счет увеличения частоты ШИМ подсветки Разгон подсветки монитора, или даже полной переделке подсветки (ссылки внутри статьи Как оценить пульсацию светодиодных ламп).

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

Однако иногда можно добиться вполне удовлетворительного результата, не вставая с дивана компьютерного кресла, ограничившись лишь подстройкой монитора, буквально «отключив» мерцание его подсветки (ну, или по крайней мере существенно его уменьшив). Так сказать, получить «Flicker-Off».

Подробности под катом:
Читать дальше →

Профилирование программ

Reading time4 min
Views6.5K

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

Читать далее

Еще раз о передатчиках и приемниках 433 МГц

Reading time10 min
Views213K
Простейший комплект из приемника и передатчика ISM-диапазона 433 МГц завоевал заслуженную популярность в среде любителей электроники. Комплекты дешевы (даже в «Чипе-Дипе» их можно купить рублей за 300, а на Ali, говорят, вообще за полтинник), просты и надежны. Кроме того (о чем вы, возможно, не подозреваете), это самый дальнодействующий и проникающий способ беспроводного обмена данными — сигнал на частоте 433 МГц куда лучше проходит через препятствия и действует на более далеком расстоянии, чем в популярном диапазоне 2,4 ГГц (433 МГц полностью задерживаются стенкой в полметра бетона, а Wi-Fi умирает уже на 10 сантиметрах). Допускаю, что недавно появившиеся модули MBee-868, будучи снабженными соответствующей (направленной) антенной, «стреляют» дальше, но они как минимум на порядок дороже, сложнее в подключении, требуют управления энергосбережением и предварительной настройки. И вдобавок частота 868 МГц вдвое хуже проходит через препятствия (хотя, конечно, несравненно лучше частоты 2,4 ГГц).



О приемниках-передатчиках 433 МГц написано очень много (в том числе и на хабре, конечно). Однако, правильно включать в схему этот комплект по какой-то странной причине, кажется, не умеет никто. Когда я в который раз прочел вот тут, что комплект «принимал на 8-ми метрах в пределах прямой видимости, 9-ый метр осилить не удалось», мое терпение лопнуло. Какие еще 8 метров?! В 40-50 я бы поверил, хотя в реальности, наверное, дальность еще больше.
Читать дальше →

Открытый проект беспроводной системы сбора данных на модулях 433 МГЦ

Reading time18 min
Views15K

И еще раз о передатчиках и приемниках 433 МГц. Попробуем как можно проще и дешевле подключить их к ATMEGA8, добиться дальности более 2 км и сделать крипто-защищенную беспроводную сеть-шлюз к 1-Wire сетям сенсоров DS18S20. Для этого привлечем оверсэмплинг, ортогональные сигналы и помощь MATLAB Simulink.

Техническое описание

Подборка бесплатных курсов для тех, кто делает первые шаги в Data Science

Level of difficultyEasy
Reading time3 min
Views80K

Курсы упорядочены по степени необходимости, начиная с базовых знаний, без которых будет тяжело даваться дальнейшее изучение (линейная алгебра, статистика, базовое знание python и т.д.), переходя к более сложным. Старался избавиться от избыточности, оставляя только самые ценные, на мой взгляд, курсы. Эти бесплатные курсы легко заменят вам платные.

Читать далее

Docker: по ту сторону Hello World

Reading time8 min
Views21K

В мире программирования существуют технологии, must have для каждого разработчика, к числу которых относится и Docker. Подразумевается, что это просто, как таблица умножения, и известно всем. О том, зачем в 2021 году в 100500й раз заводить разговор про докер — статья Сергея Кушнарева, руководителя отдела разработки ZeBrains.

С одной стороны — про него все знают. С другой — если тебя устраивают небольшие веб-проекты, особенно на какой-то конкретной CMS, то докер очень часто оказывается тем самым «первым лишним», и все сводится к инструкции «возьми готовый докер-файл, запусти в терминале docker run и будет тебе счастье». А когда понимаешь, что этого уже недостаточно — натыкаешься на статьи, написанные по тому же принципу «скачайте-запустите-получите». Кому этого мало — читайте дальше.

Читать далее

Information

Rating
Does not participate
Registered
Activity