😈 Осторожно — Regex! 3 эпических сбоя, вызванных регулярками
Регулярные выражения — мощный, гибкий и многофункциональный инструмент для обработки текста и валидации данных. С их помощью можно решать сложные задачи буквально одной строкой кода. Однако неправильно составленное регулярное выражение может превратиться в настоящую бомбу замедленного действия, готовую взорваться при определенных входных данных. Последствия могут быть сложноустранимыми, а иногда катастрофическими — как в этих реальных кейсах.
1️⃣ Сбой Stack Overflow
В 2016 году Stack Overflow испытал 34-минутный перебой в работе. Причиной стало регулярное выражение, используемое для обработки пользовательского ввода:
^[\s\u200c]+|[\s\u200c]+$
(?:(?:\"|'|\]|\}|\\|\d|(?:nan|infinity|true|false|null|undefined|symbol|math)|\`|\-|\+)+[)]*;?((?:\s|-|~|!|{}|\|\||\+)*.*(?:.*=.*)))
Пользователи из России больше не могут скачивать плагины в Android Studio из-за экспортных ограничений
Плагин Flutter/PyCharm Community Edition/ IntelliJ IDEA Community Edition не устанавливается у пользователей из России
Привет, друзья! 👋
Готовим статью «Лучший ноутбук для программирования в 2024 году» и хотим узнать ваше мнение! 👇💻✨
Редактор Hex Editor
Как написано в репозитории:
Для реверс-инженеров, программистов и людей, которые ценят свою сетчатку, работая в 3 часа ночи.
❗️Задача для конкурса в честь дня программиста
Условие:
Даны две строки s и f (начальная и конечная) и словарь D (набор слов).
Нужно определить, можно ли преобразовать s в f, используя только слова из словаря D. При этом каждое преобразование должно менять только один символ, а длина слова должна оставаться неизменной. Если преобразование возможно, нужно найти кратчайшую последовательность таких преобразований и вернуть ее длину. Если преобразование невозможно, вернуть "Преобразование невозможно".
Пример ввода 1:
D = ["cat", "cot", "dot", "dog", "bat", "dag"]
s = "cat"
t = "dog"
D = ["cat", "cot", "bat"]
s = "cat"
t = "dog"
🔔 Полезный репозиторий для программистов
Юзайте как шпаргалку
Предлагаем тебе челлендж: найди список, который тебе нравится, и используй его в следующем проекте.Читать полностью…
⚠️ Что происходит: подборка важных новостей
📰 Time включил актёров и блогеров в список 100 самых важных персон в сфере ИИ
🖥 Новый процессор iPhone 16 будет построен на архитектуре armv9
📱Пользователи из России больше не могут скачивать плагины в Android Studio из-за экспортных ограничений
💻 Исследование: ПК с Windows 11 может показывать разную производительность без явной причины
🔐 За первое полугодие 2024 года в России утекло в сеть 986 млн строк персональных данных пользователей
📹 Runet: YouTube начал вводить технические меры против переноса контента на российские видеохостинги
📱 Telegram обновил раздел FAQ, касающийся нелегального контента, после задержания и выпуска под судебный надзор Дурова
💰 Бывший сотрудник OpenAI привлек $1 млрд на создание «безопасного сверхинтеллекта»
Какие новости пропустили? Расскажите в комментариях.
🚀 Продвинутый TypeScript: 15 приемов для создания надежного кода
От рекурсивных псевдонимов типов до дискриминированных объединений — эти приемы помогут вам писать более эффективный и безопасный код. Здесь разберем основные моменты, а полностью читайте в статье:
☑️ Интерполяция строковых литералов: позволяет динамически создавать новые типы строковых литералов на основе существующих типов.
☑️ Брендирование: позволяет создавать уникальные идентификаторы для предотвращения смешивания типов, даже если они принадлежат к одному и тому же типу данных.
☑️ Условные типы: позволяют извлекать информацию о типах из сложных структур с помощью ключевого слова infer
.
☑️ Шаблонные литералы — комбинация литеральных типов и операторов для манипуляций со строками, которая позволяет создавать мощные ограничения типов на уровне строк.
☑️ Рекурсивные псевдонимы типов (алиасы): позволяют определять типы, которые ссылаются на самих себя.
☑️ Вариативные типы (TypeScript 4.0+): позволяют более гибко манипулировать кортежами.
☑️ Переименование ключей с помощью as
: при работе с объектами типа ключ-значения можно использовать as
для переименования ключей — это позволяет создавать производные типы с измененными именами свойств.
☑️ Константные утверждения в TypeScript: позволяют создавать более конкретные литеральные типы из массивов и объектов.
☑️ Дискриминированные объединения: позволяют создавать типы, которые могут представлять несколько различных вариантов объекта.
☑️ Фильтрация ключей по типам значений: типы ключ-значение можно комбинировать с условными — для фильтрации по типам значений.
☑️ Создание типобезопасных эмиттеров событий с помощью дженериков: типобезопасные эмиттеры событий могут существенно улучшить надежность кода, основанного на событиях.
☑️ Самоссылающиеся типы: позволяют создавать сложные, вложенные структуры данных, сохраняя при этом типобезопасность.
☑️ Непрозрачные типы с использованием unique symbol
: позволяют создавать типы, которые структурно похожи, но рассматриваются типовой системой как разные.
☑️ Последовательности целых чисел на уровне типов: подход, который позволяет создавать более точные типы для операций с массивами, обеспечивая проверку длины массива на этапе компиляции.
☑️ Типобезопасный DeepPartial с использованием рекурсивных условных типов: позволяет работать с частичными данными сложных объектов безопасным способом.
🛠 Сага: эффективный шаблон микросервисной архитектуры
Полную бизнес-транзакцию, как правило, очень сложно описать с помощью одной транзакции в базе данных. Возьмем, к примеру, процесс покупки в онлайн-магазине — с момента нажатия кнопки «Купить» до момента доставки заказа к вашей двери происходит серия шагов:
🔸 Размещение заказа. Пользователь выбирает нужные товары, добавляет их в корзину и начинает процесс оформления заказа. Система сохраняет информацию о видах товаров, их количестве, имени заказчика, адресе и способе доставки.
🔸 Создание счета-фактуры. После размещения заказа создается счет-фактура, который служит основной записью о транзакции и используется для выставления счета и учета.
🔸 Обработка платежа. Инициируется процесс оплаты, пользователь предоставляет данные банковской карты или электронного кошелька. Оплата безопасно обрабатывается, и после успешного завершения заказ подтверждается.
🔸 Отправка товара. После обработки платежа заказ готовится к отправке: создается информация для отслеживания, система уведомляет пользователя об ориентировочной дате доставки.
Каждый из этих шагов включает взаимодействие с различными микросервисами — сервисов заказов, платежным сервисом и сервисом доставки. Для успешного и последовательного выполнения бизнес-транзакции важна безупречная координация всех частей системы. Эта задача кажется очень сложной, но к счастью, есть универсальный и надежный паттерн, который помогает выстроить взаимодействие микросервисов самым оптимальным образом — Сага. О нем и пойдет речь в статье.
🍉 Подборка лучших статей «Библиотеки программиста» за август: сохраняй в заметки, чтобы не пропустить #самыйсок
🎮🚀 Saturated Outer Space: как инди-разработчики перезапускают игру и бросают вызов жанровым стереотипам
🤖🛠️ Секреты эффективного промптинга: 4 способа улучшить качество ответов чат-бота
🎮 Как зарабатывать на играх или зачем изучать игровую аналитику в 2024 году
🏄 6+ главных алгоритмов балансировки нагрузки
🖼️ 5 стратегий рендеринга веб-страниц: как выжать максимум из вашего сайта
🚀 Ускорьте свою базу данных: 7 проверенных методов масштабирования и оптимизации
🐘🧠 Оптимизация использования памяти в PostgreSQL: секреты профессионалов
🏃 Самоучитель по Go для начинающих. Часть 15. Конкурентность. Горутины. Каналы
🆕📜 Что нового в TypeScript 5.5: 4 ключевых улучшения
🎮📖 Библиотека геймдизайнера: 10 must-read книг 2024 года
🤖 6 основных алгоритмов машинного обучения: руководство для начинающих
🏗️ Структуры данных для разработчиков: 10 самых важных
🔍 Детальное сравнение и углубленный анализ производительности Java, Go, C++, Rust: как сборка мусора влияет на производительность и эффективность использования ресурсов
Любопытное исследование, в котором рассматриваются накладные расходы, связанные с использованием языков с автоматической сборкой мусора (Java и Go) по сравнению с языками с ручным управлением памятью (C++ и Rust), в контексте систем репликации конечного автомата (SMR), работающих в облаке.
👉 Читать
Arch.Meetup by Sber: современное управление архитектурой данных – регистрация открыта ✅
Уже 11 сентября в офисе Сбера и онлайн вместе с ИТ-архитекторами, data-инженерами и спикерами из трех IT-компаний поговорим об архитектуре данных и ее роли в управлении данными.
В программе – сразу 3 доклада, нетворкинг с большим архитектурным сообществом, выставка новых продуктов и технологий Сбера и фуршет.
О чем поговорим?
▪️Есть ли Архитектура данных за пределами хранилищ?
▪️Как моделировать данные на Enterprise-уровне?
▪️Как архитектура помогает в вопросах инвентаризации данных?
▪️Что такое Data API и почему мы часто говорим об интегрируемости данных?
👉🏻 Подробная программа и регистрация – по этой ссылке. Успей пройти регистрацию – количество очных мест ограничено.
🏃 Самоучитель по Go для начинающих. Часть 16. Тестирование кода и его виды. Table-driven подход. Параллельные тесты
В статье познакомимся с концепцией тестирования кода и её основными видами, изучим инструменты стандартного пакета testing, научимся запускать и визуализировать тесты. В качестве практического задания напишем и протестируем алгоритм «Решето Эратосфена».
👉 Читать гайд
📌 Остальные части в серии:
1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
9. Структуры и методы. Интерфейсы. Указатели. Основы ООП
10. Введение в ООП. Наследование, абстракция, полиморфизм, инкапсуляция
11. Обработка ошибок. Паника. Восстановление. Логирование
12. Обобщенное программирование. Дженерики
13. Работа с датой и временем. Пакет time
14. Интерфейсы ввода-вывода. Буферизация. Работа с файлами. Пакеты io, bufio, os
15. Конкурентность. Горутины. Каналы
😀 Платные подписки есть? А если найду?!
💬 А у вас есть? На какие сервисы? Поделитесь в комментариях👇
#холивар
💡🎨 Источники вдохновения для UI/UX-дизайнеров и фронтендеров: 50 полезных ресурсов
Ищете идеи для своего следующего проекта? Эта подборка поможет вам найти вдохновение и новые подходы к дизайну. Разберем первые десять, а остальные читайте в статье:
• Websitevice – новая, часто обновляемая галерея с широким спектром примеров веб-дизайна. Удобная фильтрация по категориям.
• One Page Love – коллекция высококачественных одностраничных сайтов и лендингов.
• Landingfolio – большая коллекция красивых лендингов, оптимизированных для маркетинга.
• Lapa Ninja – тщательно отобранные примеры веб-дизайна с полными скриншотами страниц.
• Godly – обширная галерея с анимированными превью сайтов, мобильных и десктопных приложений.
• Siteinspire – объемная коллекция лучших веб-дизайнов с удобной сортировкой.
• Maxibestof – огромная подборка примеров, курируемая опытным дизайнером.
• InspoVault – фокусируется на качестве, а не количестве примеров, в основном в минималистичном и креативном стилях.
• Landing Gallery – специализируется на эффектных лендингах.
• SEE + SAW – галерея с динамичными видеопревью сайтов.
🥇 Итоги конкурса: победитель определён
Надеемся, что все отлично отпраздновали день программиста. А нам за два дня пришло много ответов на нашу задачу.
💬 Поделитесь опытом: на каком ноутбуке вы сейчас работаете и почему он вам нравится (или не нравится)? 🌟
Ждем ваши ответы в комментариях! Самые полезные советы войдут в нашу статью. 📝💡
Спасибо за участие! 🙌
Пивной бар-хоппинг для айтишников
12 сентября в 20:00
Финтех-компания Точка приглашает в пять московских баров в День программиста! Выпьем пива, пройдём квест про технологии и обсудим холиварные темы. Пройди задания, собери пасхалки и получи подарок — пивной бокал с гравировкой.
Подробнее что будет:
● Бесплатное пиво — по стакану в каждом из пяти баров.
● Квест по пяти барам — грохнем прод, поугадываем звуки ностальгии и найдём ошибки джуна с помощью УФ-фонарика.
● Холивары — обсудим наболевшее с инженерами из Точки:
– Свобода выбора в технологиях: рай разработчика, ад тимлида.
– Техдолг — копить или платить.
– Алгоритмы и задания на собеседованиях — кринж или база.
– 7 столпов ML — нужны ли они все.
– Куда исчезли сисадмины.
Ждём разработчиков, продактов, аналитиков и всех, кто работает в IT. Приходите сами и приводите друзей!
Зарегистрироваться и узнать больше про активности.
👨💻 Шпаргалка по проектированию реляционных баз данных
Реляционная база данных — это составленная по реляционной модели база данных, в которой данные, занесенные в таблицы, имеют изначально заданные отношения.
Сами таблицы в такой базе данных также соотносятся друг с другом строго определенным образом. Реляционные базы данных используют целый комплекс инструментов, которые обеспечивают целостность данных, т. е. их точность, полноту и единообразие.
На иллюстрации представлены ключевые моменты, которые следует знать о проектировании реляционных баз данных.
👉 Источник
#инфографика #проектирование_систем
🆒 Дарим наш курс за ответ на задачу
В предверии дня программиста проводим конкурс: решите нашу задачу на тему программирования — рандомно выберем победителя
Привет, друзья! 👋
Мы готовим статью о будущем AI и его влиянии на разработку. Нам важно ваше мнение! ✨
1️⃣ Как вы думаете, AI действительно изменит мир разработки? 🤖
2️⃣ Какие плюсы и минусы использования AI в разработке вы видите? 💡
3️⃣ Есть ли у вас примеры успешного применения AI в ваших проектах? 🛠️
Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Telegram представил обновление Bot API 7.10 с рядом нововведений
Telegram продолжает активно развивать свою платформу, добавляя полезные функции и улучшения.
Что там по Bot API 7.10?
Добавлен новый класс PaidMediaPurchased
и поле purchased_paid_media
в классе Update
, которые позволяют отслеживать обновления о покупке платного медиа.
Теперь можно указывать payload
в sendPaidMedia
, который бот получает обратно в TransactionPartnerUser
и обновлениях о платном медиа.
А что ещё завезли? 👀
Также, как все заметили добавили новый способ взаимодействия с аудиторией — звёздные розыгрыши ⭐️
👉 Подробнее смотрите по ссылке
$1.1M — именно столько заработал американский школьник
Он использовал API ChatGPT и создал удобную оболочку, которая делает взаимодействие с ним еще проще.
В итоге получил: приложение для App Store, которое считает калории по фото. Его скачали более 100 тысяч человек.
Как вам такой подход к бизнесу? Кажется, теперь каждый может заработать свой миллион 🙂
😮 Японцы наняли 10 котов для своих айтишников
Они не просто домашние животные, а полноценные «employees». Среди них есть «главный клерк», «аудитор» и даже «председатель» — кот по имени Футаба.🤔
Коты помогают создать уютную атмосферу в офисе и даже способствуют снижению уровня увольнений. Самые важные сотрудники получают всё необходимое: собственные туалеты, полки и защиту от когтей на стенах.
😁 — Хочу котиков себе на работу
🌚 — У меня свой котик
🥱 — Не нужны котики, так как не сосредоточишься на работе (душнила)
Привет, друзья! 👋
Мы готовим статью о самых странных и уникальных дистрибутивах Linux, и нам нужно ваше мнение! 🤔💬
1️⃣ Какой самый необычный дистрибутив Linux вы когда-либо пробовали? Почему он вас удивил?
2️⃣ Есть ли у вас советы для новичков, которые только начинают работать с Linux? 🐧✨
Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌
Санкт-Петербург, приглашаем в гости в Сбер! 💚
В нашем уютном технохабе пройдёт первый внешний митап для инженеров сопровождения, DevOps-инженеров и разработчиков.
Дата и время: 18 сентября, 18:30–21:00
Локация: ул. Уральская, д.1, Литера Ч.
Поговорим о развёртывании CI/CD-конвейеров, расскажем про реализацию облачных сервисов в Cloud.ru и обменяемся опытом по работе с Jenkins и практике создания комплементарных технологических команд.
Спикеры и темы:
▪️ Коротин Александр, Сбер: «Как десятикратно разогнать скорость поставки в большом Enterprise»
▪️ Алексей Молчанов, Cloud.ru: «Cloud.ru: Operations & SRE»
▪️ Алексей Снятков, Сбер: «Развитие лидеров и построение комплементарной команды»
Регистрируйтесь и приходите на IT Talk by Sber, будет интересно!
🎙️ Подкаст Podlodka: Зачем учить язык С в 2024 году
С — язык, на котором написана значимая часть всего, что нас окружает: от ядра операционной системы до мозгов автомобиля, из колонок которого вы будете слушать этот подкаст. В выпуске вместе с Игорем Жирковым ведущие разбираются с тем, насколько современный C похож на язык, с которым вы познакомились в той самой книге Кернигана и Ритчи, какие особенности делают его одним из самых нетерпимых языков к ошибкам программиста, и стоит ли вообще на нем писать код в 2024 году.
⏳ Таймкоды:
00:00 О чем выпуск
05:00 Чем интересен Си
13:22 Мифы о Си
24:59 История развития языка Си
35:25 Стандарты Си
59:50 Современный Си и его отличия от старого
01:05:27 Топ-3 ошибок, которым подвержен Си
01:12:40 Ключевые фичи Си
01:21:10 Организация кода и модулей
01:26:09 Синтаксис и семантика Си
01:31:10 Неопределенное поведение и его последствия
01:39:24 Семантика и производительность
01:45:02 Оптимизация производительности
01:51:02 Компиляторы и их разнообразие
02:02:20 Экосистема Си
02:08:54 Какие языки могут заменить Си
02:16:05 Нужно ли преподавать Си в вузах
02:28:46 Заключение
▶ Смотреть или слушать полностью
▶ Полная подборка языковых и платформенных выпусков подкаста
#подкасты
🔥 Elasticsearch (и Kibana) снова с открытым исходным кодом! Интересно, можно ли вернуть доверие сообщества так же легко? 🤔
👉 Подробнее
#новости