Сегодня мы разберем хитроумный и нетривиальный алгоритм поиска подстроки в строке. Он основан не на сравнении символов, а на сравнении чисел. Я уже писал, что основная моя цель это не написать простой разбор алгоритмов, а посмотреть их эффективность, какие-то интересные места и сравнить их производительность между собой.
И сегодня есть что посмотреть.
Инженер VoIP
Linux-смартфоны, на которые стоит обратить внимание в 2022 году
Да, настал уже 2022 год, причем праздники еще продолжаются, но многие из нас строят разного рода планы. Они могут касаться как масштабных и очень значительных целей, вроде смены работы или старта собственного бизнеса, так и менее важных, но все же имеющих значение. Ну например — выбор смартфона, основного или дополнительного.
Сейчас ассортимент мобильных устройств очень большой, причем чаще всего говорят о девайсах от известных производителей. Но есть и не особо распространенные модели, на которые стоит обратить внимание, особенно IT-специалисту. О них сегодня и поговорим, правда, не о всех, а только тех, что работают на базе Linux. Кстати, часть моделей — не просто с Linux на борту, но еще и с физической клавиатурой.
Полку Linux-телефонов прибыло: встречаем Volla Phone 22, смартфон с Ubuntu Touch на борту
О телефонах с Linux мы рассказывали несколько раз. Один из самых известных — это PinePhone и его «старший брат» PinePhone Pro. Есть и другие — вот целая подборка с описанием разных моделей, на которые стоит обратить внимание. Ну а теперь появился еще один интересный девайс — речь идет о Volla Phone 22 с 6,3-дюймовым дисплеем, процессором MediaTek Helio G85, 4 ГБ ОЗУ и 128 ГБ основной памяти. Подробности — под катом.
Автодискаверинг и автопостановка на мониторинг или как попивать кофе вместо подготовки ответов пользователям
Современная ИТ-инфраструктура – это живая экосистема, которая пребывает в динамическом состоянии. Она расширяется, меняется, обрастает новыми элементами и связями. Это полноценный организм, за которым нужно следить и ухаживать, не забывая при этом учитывать все его изменения.
Представим ситуацию: решили вы повысить производительность информационной системы. Команда девелоперов для этой цели развернула новые ноды, добавила элементы ИС, зарелизила изменения, система работает эффективнее, и, казалось бы, все счастливы. Да только от радости забыли поставить новые элементы на мониторинг. Так и будете вы спокойно пить кофе, любуясь зелеными огоньками на экране рядом с каждым компонентом системы, пока разъяренные пользователи не cымитируют DDoS атаку на внешний интерфейс вашего хелпдеска, когда один из новых элементов откажет.
Язык кибернетики. На пути к нашему Я
Язык представляет собой как бы второе зеркало, в котором отражается весь мир, и в том числе каждый индивидуум, и в котором каждый индивидуум может увидеть (вернее, не может не увидеть!) самого себя. Так возникает понятие Я. //В.Турчин
Броуновское движение простых чисел
Вы знакомы с броуновским движением: в упрощенном виде его можно рассчитывать так: мы перемещаемся на одну клеточку, а вот направление выбираем случайным образом. Броуновское движение возможно в пространстве произвольных размерностей, для числа размерностей 1 и 2 блуждания почти всегда рано или поздно возвращаются в исходную точку, а для более высоких размерностей это уже не выполняется.
Но что, если мы будем прыгать не на одну клетку, а на очередную разницу между простыми числами - вначале 1 (3-2), потом 2 (5-3), снова 2 (7-5), потом 4 (11-7) итд. А вот направление мы будем 'вращать', например, для плоскости это будет вверх-вправо-вниз-влево? Сразу скажу, будет очень красиво.
Как выстроить систему планирования в жизни для достижения цели
Всем привет! Меня зовут Владимир Тутынин, я методолог продуктового подхода и сегодня расскажу о своем методе планирования. Вы увидите, какие шаги я выполняю и какими инструментами пользуюсь для достижения результата.
Нам понадобятся две программы:
1. Evernote – это система заметок, которые хранятся в блокнотах и помечаются метками. Очень похожа на Confluence.
2. Trello – это доска задач с определенными правилами, на которой мы отображаем движение задачи по этапам.
Представим, что наше движение к достижению цели – это движение ракеты. Сначала мы находимся на высоте 0 метров, далее 10 000м, через минуту 20 000м, далее 30 000м и 40 000м. Эти отметки мы будем использовать как ориентиры и начнем наш маршрут в «космос».
Формирование меток
Заходим в Evernote и создаем 4 метки так, как показано на рисунке. Этими метками мы будем ориентироваться в пространстве заметок. В скобках после названия метки показано количество заметок, имеющих такую метку. Например, у меня есть 36 заметок с меткой «20.000м Цели».
Что такое PKI? Главное об инфраструктуре открытых ключей
Представьте, что вы системный администратор в Home Depot. Уже собираясь домой, вы замечаете, что ваша сеть только что одобрила подключение нового кондиционера. Ничего особенного, верно? На следующее утро вы просыпаетесь и обнаруживаете, что терабайты данных, включая логины, пароли и информацию о кредитных картах клиентов, были переданы хакерам. Что ж, именно это и произошло в 2014 году, когда группа хакеров под видом безобидной системы отопления, вентиляции и кондиционирования осуществила атаку, которая обошлась Home Depot более чем в 17,5 миллионов долларов, и всё из-за неправильно настроенного PKI.
Умный дом на основе API Telegram
Как реализовать рабочую IoT систему на API Telegram, создавать устройства, предусмотрев масштабируемость и развитие проекта.
Домашняя масляная майнинг-ферма
Это история одного моего хобби-проекта - создания встроенной в интерьер майнинг-фермы с видеокартами в масле, которая своим теплом отапливает лоджию.
Модификации сортировки пузырьком
Написав предыдущую статью о сортировке подсчётом beSort - меня не отпустило. Я решил поковыряться в базовых алгоритмах и залип на модификациях пузырьковой сортировки, ну а статья о том - что из этого получилось.
Лора на батарейках (мечта каждого мужчины)
Как-то мне понадобилось разработать систему автоматизации для загородного хозяйства — для меня это дело привычное, там вроде бы нет ничего сложного — центральный модуль, удалённые датчики и актуаторы, какой-то алгоритм управления и т. д., всё как обычно. Поскольку речь шла о загородном хозяйстве с его значительными расстояниями между объектами, то первым кандидатом на обеспечение беспроводной связи в системе стала всеми горячо любимая и широко используемая технология LoRa.
Всё вроде бы шло по плану, но при ближайшем рассмотрении вдруг возникла проблема в самом неожиданном месте — для различных беспроводных датчиков понадобились батарейные LoRa модули — и вдруг оказалось, что нормальных батарейных долгоживущих модулей, которые могли бы обеспечить автономную работу LoRa сенсоров в течение нескольких лет, просто нет в продаже.
Можно было бы сделать свои батарейные LoRa модули (благо прототипы есть и прекрасно работают), но не хотелось тратить время на изобретение велосипеда, а просто купить что-то готовое, и я заказал с Aliexpress несколько плат-кандидатов для тестирования.
Одна из таких плат — LoRa Radio Node, отчёт о её разборе (по косточкам) и тестировании я и предлагаю вашему вниманию.
Выкачиваем почтовый архив. Бэкап Gmail и других ящиков на локальный диск
Почтовый ящик с письмами — это личная собственность человека. Никто не имеет права доступа к архиву, кроме владельца.
Забота о своём почтовом архиве тем более актуальна в нынешних условиях, когда любой внешний сервис может закрыться, обанкротиться или просто откажется вас обслуживать. Гораздо спокойнее хранить архив у себя — сделать резервную копию в надёжном домашнем хранилище.
Как я делаю дрон из Raspberry Pi и ESP32 (или мои первые шаги в робототехнике)
Всем привет, меня зовут Антон, и как вы могли уже догадаться из названия, решил я рассказать о своих попытках вкатиться в робототехнику, а в частности о своем дроне из Raspberry Pi и ESP32.
Хранение кода в SCM
Смотри, ты устроился работать в большую компанию, где много команд, каждая разрабатывает свой продукт, часть из них создаёт микросервисы вокруг ядра, часть создаёт свои отдельные полноценные продукты. И, допустим, вся разработка до сих пор не использует централизованное хранение кода, работает без CI/CD и без наработок DevOps. Твоей первой задачей поставили организовать подход к хранению исходного кода в рамках всей компании. По секрету скажу, большие компании любят, когда используется единый подход, индивидуализм для бизнес-конвейеров всегда означает сложность управления сроками разработки, поставки и т.д. Задача, которая кажется простой на первый взгляд, всегда обрастает сложностями в нюансах.
Ты настроен на волну NotOps и в этой статье я постараюсь ответить на вопросы:
Кривые и что это такое
Всем привет!
Итак, тема статьи - кривые, их разбор, собственные примеры и как их можно использовать в геймдев.
Сейчас плохо, но все может быть еще хуже
Разбираю ключевые идеи неизданной на русском книги «Внутри коллапса Венесуэлы» Уильяма Ноймана.
В своей книге автор рассказывает о жизни в Венесуэле, в которой огромные запасы нефти сочетаются с нищетой населения и полным отсутствием перспектив, и о причинах экономического коллапса этой страны.
Электрическая модель транспортной задачи
Идея использовать электрические цепи при решении транспортной задачи (в дальнейшем ТрЗ) появилась, когда узнал, чем на кафедре программирования мучают студентов. Было это лет 10 – 15 тому. Ход мысли (человека знакомого с электротехникой). Пути? Даже из наименования совершенно ясно, что это цепочки между производителями и потребителями. В простейшем случае – на основе резисторов, сопротивления которых должны соответствовать стоимости транспортировки Сij единицы товара по дороге между i–тым производителем и j–тым потребителем. Не очень долго пришлось задуматься над типом источников. Помогло несколько вещей. Во-первых, формулировка исходных уравнений ТрЗ совпадает с первым законом Кирхгофа, который касается баланса входящих и выходящих в узел токов. Во-вторых, что же могло соответствовать решению задачи кроме значения тока? Его произведение на величину сопротивления резистора как раз и отразит (в вольтах) затраты на перевозку продукции по данной дороге. Источниками, величина тока которых не должна изменяться при подключении разных дорог (цепей с разными сопротивлениями резисторов), могли быть только «идеальные» источники тока – вот и претенденты на модели производителей и потребителей.
Простота идеи позволила реализовать модель с первой попытки, но занимался ею в режиме «хобби». Ошибка состояла в том, что я видел основной результат использования модели в наглядности действий, выполняемых в соответствии с используемыми известными алгоритмами решения ТрЗ. Ну, какой же преподаватель согласится с советом что-либо менять ради какой-то наглядности, да и видит ли он ее, привыкнув излагать по-своему. Но публикацию допустили.
И только после выхода на пенсию, когда совсем заела аптечная текучка, смог уделить ей (транспортной задаче) больше времени. И тогда … Прежде всего, открылось множество разнообразных направлений использования ТрЗ, близких по существу, но, почему-то, не допускающих единых подходов, решений и т.п. По сравнению с предыдущим достаточно многое обобщил, дополнил, главное, разработал новы алгоритмы и, мне кажется, нащупал подход, который позволяет решить транспортную и близкие к ней задачи по-иному и более просто, чем сейчас. Надеюсь, кого-нибудь это заинтересует несмотря на аккомпанемент (у нас) звуковых сигналов воздушной тревоги.
Строковые алгоритмы на практике. Часть 2 — Алгоритм Бойера — Мура
В прошлый раз мы с вами разобрали Алгоритм Кнута — Морриса — Пратта, сегодня мы разберем не менее интересный, а на мой личный взгляд, даже наиболее любопытный и изящный алгоритм поиска подстрок в тексте, который подкупает своей гениальной простотой.
Строковые алгоритмы на практике. Часть 1 — Алгоритм Кнута — Морриса — Пратта
Начал я на днях читать книгу про обработку строк и буквально с первых страниц, прихлебывая чаечек я начал поражаться тому, что за пять лет работы программистом я смотрел на строки только как на последовательность букв и ничего большее. Про то, что строки можно анализировать, чтобы как-то с ними продуктивно работать я вообще не задумывался.
Ну и я решил проверить на практике, так ли эти алгоритмы быстры и хороши как в книге описывается. Не то чтобы я имею повод сомневаться в авторе, но ведь всегда лучше один раз увидеть, чем сто раз прочитать в книге.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность