Как стать автором
Обновить
-4
Мария @MaryRabinovichread⁠-⁠only

Программист. Репетитор по математике.

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

Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

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

Регулярные выражения в Python от простого к сложному




Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

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

О том, как правильно понимать определитель матрицы

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

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

Читать далее

Композитная архитектура: возвращение к монолиту на новом уровне

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

Привет! Меня зовут Максим Рогоза, я работаю корпоративным архитектором в крупнейших компаниях последние 7 лет. В настоящее время занимаюсь стратегическим IT консалтингом в компании Аксеникс, где мне приходится консультировать крупные компании по вопросам построения эффективной IT архитектуры. В рамках этой деятельности я часто сталкиваюсь с задачами трансформации архитектуры информационных систем, и все чаще приходится рассказывать про композитную архитектуру как оптимальное решение для крупных корпоративных систем.

Мой путь в IT начался 26 лет назад, и за это время я наблюдал всю эволюцию архитектурных подходов: от классических монолитов к микросервисам, и теперь - к новому витку развития в виде композитной архитектуры. Особенно интересно наблюдать, как теоретические концепции находят свое практическое применение в реальных проектах, и как компании адаптируют архитектурные решения под свои конкретные задачи.

Читать далее

Нормальные числа: ликбез

Время на прочтение5 мин
Количество просмотров58K
Не так давно попалась мне на глаза великолепная юмористическая статья про файловую систему, хранящую данные в числе Пи. Бурное обсуждение, развернувшееся в комментариях (кажется, не все его участники поняли шутку), натолкнуло меня на мысль, что тему нормальных чисел неплохо бы обсудить более серьёзно, тем более что тема эта благодатна, полна красивых результатов, нерешённых проблем и прочих кошерных вещей. Если желаете с этими вещами ознакомиться — пожалуйте под кат.

image

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

Почему для меня так важен алгоритм CORDIC

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров19K

CORDIC — это алгоритм для вычисления тригонометрических функций вроде
sin, cos, tan и тому подобных на маломощных устройствах без использования модуля обработки операций с плавающей запятой или затратных таблиц поиска. По факту он сводит эти сложные функции до простых операций сложения и битового сдвига.

Перейду сразу к делу и скажу, почему я так сильно люблю этот алгоритм, а затем займёмся изучением принципов его работы. По сути, фактические операции CORDIC весьма просты — как я уже сказал, это сдвиги и сложение — но выполняет он их путём комбинирования векторной арифметики, тригонометрии, доказательств сходимости и продуманных техник компьютерных наук. Лично я считаю, что именно это имеют ввиду, описывая его природу, как «элегантную».
Читать дальше →

Идеи отца современной математики Георга Кантора, которые пугали ученых в конце 19 века

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

Георг Кантор родился в Санкт-Петербурге в 1845 году, но с 11 лет жил в Германии. Там он начал заниматься математикой и сделал свои первые открытия. Несмотря на то, что научное сообщество отказывалось принимать доказательства его концепций, сейчас он известен как создатель теории множеств и отец современной математики. Мы подготовили материал про труды Кантора на основе статьи, опубликованной в интернет-журнале Medium.

Читать далее

Алгоритм Хаффмана на пальцах

Время на прочтение5 мин
Количество просмотров535K
Вы вероятно слышали о Дэвиде Хаффмане и его популярном алгоритме сжатия. Если нет, то поищите информацию в интернете — в этой статье я не буду вас грузить историей или математикой. Сегодня я хочу просто попытаться показать вам практический пример применения алгоритма к символьной строке.
Разархивировать текст статьи

«Когда будет готово?». Декомпозируем задачи и оцениваем сроки без фатальных ошибок

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров18K

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

Спойлер: вы все равно ошибетесь, прогнозируя сроки. Но что можно сделать? Минимизировать шанс на ошибки и сделать их менее фатальными. Я расскажу про рабочие инструменты, которые помогли мне в свое время, — брать их на вооружение или нет, решайте сами. Если вы не знаете, как подступиться к декомпозиции сложного проекта и с чего начать, — эта статья вам в помощь.

Читать далее

За границей Hello World: полный гайд по разработке Telegram ботов с помощью Python и Aiogram 3. Часть 1

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров246K

Нетипичный туториал по разработке Telegram-бота на Python и Aiogram 3. В отличие от большинства гайдов и туториалов про разработку ботов «для новичков», здесь будут рассмотрены все аспекты создания бота, от установки редактора кода до подключения оплаты и развёртывания на сервере. В первой части мы рассмотрим подготовку окружения, файловую структуру бота и напишем первый рабочий код бота.

Читать далее

За границей Hello World: полный гайд по разработке Telegram ботов на Python + Aiogram 3. Часть 2: Меню и OpenAI API

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров106K

Привет, Хабр! Продолжаю серию статей про разработку telegram-ботов на библиотеке aiogram и языке программирования Python. Хочется отметить, что статья не является документацией или учебником. Я просто рассказываю пошагово как разработать полнофункционального бота, стараясь затронуть как можно больше тем.

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

Читать далее

Schema.org своими руками: настраиваем микроразметку без программиста

Время на прочтение11 мин
Количество просмотров100K
Schema.org своими руками: настраиваем микроразметку без программиста

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


Рассказываем о словаре и синтаксисе микроразметки, собрали несколько плагинов и инструментов для создания и проверки разметки, разобрали по шагам один из плагинов.

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

Как получать просмотры, если вы не Илон Макс? Проанализировал новые алгоритмы Хабр, VC и Пикабу

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.3K

Я проанализировал по 500 статей ? из топов VC, Пикабу и Хабра за последний год и сделал выводы для своих материалов. Все выводы можно применять сейчас — я уже их применяю и мои статьи попадают в Популярное и Горячее, уходят в рассылку VC, паблики ВК VC, Хабра и Пикабу.

Читать далее

Храним числа экономно

Время на прочтение7 мин
Количество просмотров15K
Недавно в одном из проектов встала задача: есть набор множеств (Set), которые надо достаточно эффективно хранить в оперативной памяти. Потому что множеств много, а памяти мало. И с этим надо что-то делать.

Так как язык, на котором всё это написано — C#, то есть нюансы. А именно, что стандартный HashSet<int> на хранение одного числа тратит 16 байт, также влияет филл фактор. Есть более эффективные реализации (когда-нибудь и про них напишу), но с другой стороны, можно же тупо хранить в массивах, по 4 байта на число (требуется хранить инты), что достаточно эффективно. Но можно ли уменьшить ещё?

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

Есть набор неотрицательных уникальных интов (32 бита). Требуется хранить их эффективно в оперативной памяти, из операций — создание набора и получение всех элементов. Не нужно получать элементы по индексу, добавлять новые или удалять.

В статье будет много букв и цифр и ни одной картинки (кроме упакованного котика на КДПВ).
Что можно с этим сделать?

Беда «войти в айти» или курсы тестировщика отзывы: Сколько студентов на самом деле находит работу после Skillbox

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров43K

В 2021 году я начал масштабное исследование трудоустройства 400 QA-студентов более десятка различных курсов. Исследование получилось настолько длинным, что превратилось в дюжину хабр-статей с 500'000 просмотрами, а некоторые из его участников успели пройти путь от "какой курс посоветуете?" до "поздравьте, мне предложили позицию сеньора".

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

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

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

Читать далее

Как я склеил картон и продал на маркетплейсах на 50 млн в год

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров302K

В 2020-м мой работодатель начал прижимать меня по условиям, я забрал команду, снял склад и запустил свое производство когтеточек. Казалось бы, ничего сложного: закупаешь клей, картон, и находишь людей, которые 5 000 раз в день готовы повторять одни и ту же операцию. Но есть нюансы.

Читать далее

FAANG rus version: ВОТВАСЯ или ЯВОВА — ТОП российских IT — компаний

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

Есть FAANG, но почему нет популярной аббревиатуры для российских IT компаний? Например, ЯВОВА...

Читать далее

Coroutines в PHP и работа с неблокирующими функциями

Время на прочтение18 мин
Количество просмотров80K
Одним из самых больших нововведений в PHP 5.5 будет поддержка генераторов и корутин (сопрограмм). Генераторы уже достаточно были освещены в документации и в нескольких других постах (например в этом или в этом). Сопрограммы же получили очень мало внимания. Это гораздо более мощный, но и более сложный для понимания и объяснения, инструмент.

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

Генераторы


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

Почему мое производство пельменей умирает

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

В 2018 г. я открыл производство пельменей и полуфабрикатов. Шучу, что у меня 3 класса образования церковной школы, так как мое высшее по специальности “социальная коммуникация” не кажется мне фундаментальным.

6 лет мы продаем 50 позиций пельменей, голубцов и чебуреков в 200 магазинов. В ковид ели много пельменей и у меня было 3 цеха, доходило до тонны в день. А сегодня я провожу аудит, закрыл 1 цех и думаю о закрытии остальных. Если считаете, что бабушкины пельмени лучше магазинных, ставьте лайк и пишите об этом в комментариях.

Читать далее

Тестирование RESTful API на NodeJS с Mocha и Chai

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


Перевод руководства Samuele Zaza. Текст оригинальной статьи можно найти здесь.


Я до сих пор помню восторг от возможности наконец-то писать бекэнд большого проекта на node и я уверен, что многие разделяют мои чувства.


А что дальше? Мы должны быть уверены, что наше приложение ведет себя так, как мы того ожидаем. Один из самых распространенных способов достичь этого — тесты. Тестирование — это безумно полезная вещь, когда мы добавляем новую фичу в приложение: наличие уже установленного и настроенного тестового окружения, которое может быть запущено одной командой, помогает понять, в каком месте новая фига породит новые баги.

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

Тестирование JavaScript кода с Jest для чайников. Часть 1

Время на прочтение7 мин
Количество просмотров105K
Здравствуй, Хабр! Данное руководство является первой частью в запланированном цикле статей про такой замечательный фреймворк для тестирования как Jest. Материал будет полезен новичкам и тем, кто только знакомится с тестированием, и хотел бы изучить этот фреймворк. В первой части мы разберём: как начать работу с jest, как написать простой тест, и какие есть методы для сопоставления проверяемых значение с ожидаемыми. Кому интересно — добро пожаловать под кат!
Читать дальше →
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность