Рубрика «Программирование» - 30

Представьте, что вы создали пустую, приватную корзину (их ещё называют «бакетами» — от «bucket») AWS S3 в выбранном вами регионе. Каким будет счёт за услуги AWS на следующее утро?

Как пустой S3 бакет может вас обанкротить - 1

Читать полностью »

Rust в ядре Linux: лекарство или яд? Споры о будущем - 1

В мире разработки программного обеспечения, особенно в области системного программирования, языки C и Rust занимают особое место. C, как проверенный временем язык, десятилетиями служил основой для создания операционных систем, включая Linux. Однако с появлением Rust, который позиционируется как более безопасный и современный ЯП, начались жаркие споры о том, стоит ли переписывать части ядра Linux на Rust или оставить всё как есть. Дискуссия вышла на новый уровень, когда разработчики Linux начали активно сопротивляться внедрению Rust. Кристоф Хеллвиг даже сравнил нововведение с «раковой опухолью». Что стоит за этим противостоянием, и почему Rust вызывает такие полярные мнения?
Читать полностью »

Почему именно в Chrome под Windows на сайтах не работают эмодзи флагов - 1


Предположим, вы захотели приукрасить в UI своего сайта опцию выбора страны/языка симпатичными эмодзи флагов. Превосходно! Это создаст дополнительный визуальный ориентир, который поможет пользователям быстро находить нужную страну, да и в целом это просто красиво.

Более того, вы даже можете легко реализовать динамическое определение иконок на основе кода региона:

// Смещение для корректировки кода ASCII каждого символа в строке кода ISO страны для определения соответствующего флага.
const EMOJI_CHARACTER_OFFSET = 127397;

const getEmojiForCountryCode = (countryCode: string) =>
  String.fromCodePoint(
    ...countryCode
      .toUpperCase()
      .split('')
      .map((char) => char.charCodeAt(0) + EMOJI_CHARACTER_OFFSET),
  );

// "en-US"
const currentLanguageCode = navigator.language;
// "US"
const currentCountryCode = currentLanguageCode.split("-")[1];
// "🇺🇸"
getEmojiForCountryCode(currentCountryCode);
// "🇫🇷"
getEmojiForCountryCode("FR");
// "🇸🇪"
getEmojiForCountryCode("SE");

Всё идёт шикарно!

Как вдруг…Читать полностью »

Восьмилетние дети теперь могут создавать приложения с помощью искусственного интеллекта. Обзор ИИ-инструмента для программирования Cursor

Восьмилетние дети теперь могут создавать приложения с помощью искусственного интеллекта. Обзор ИИ-инструмента для программирования Cursor

Читать полностью »

Миграция на строгий TypeScript: наш путь и собственное решение - 1

Наш проект имеет долгую историю. И за это время подходы к разработке фронтенда успели несколько раз измениться. В какой-то период в проекте можно было встретить код на JavaScript, CoffeeScript и TypeScript. Плюс сам TypeScript успел обновиться несколько раз за время существования проекта со второй до пятой версии.

Сейчас TypeScript практически вытеснил весь остальной код, но процесс по переписыванию с других языков занял много времени. И чтобы была возможность переиспользовать уже написанный код в TS-модулях, было принято решение отказаться от строгих проверок. Из-за выключенных проверок в коде накопилось большое количество использований any, а также отсутствующих проверок на null. Это, наверное, основные две проблемы, которые не позволяют единовременно пройтись по всей кодовой базе и за раз исправить все ошибки, возникающие при включении строгих проверок.

В общем, если вам знакома эта ситуация, то статья для вас. Меня зовут Максим Овчарик, я ведущий фронтенд-разработчик в Selectel. Под катом расскажу, как мы строили процесс миграции кода на строгий режим TypeScript. Читать полностью »

C# (Си Шарп) — универсальный и востребованный язык программирования, который используется для разработки игр, приложений, веб-сервисов и других IT-продуктов. Его популярность объясняется простотой синтаксиса, мощной экосистемой .NET и активной поддержкой от Microsoft. Если вы хотите изучить C#, выбор подходящих курсов — это первый шаг к успеху. Но среди сотен предложений на рынке сложно понять, какой курс подойдет именно вам.

Эта статья поможет вам разобраться, как выбрать курсы C# в зависимости от уровня подготовки, целей и бюджета. Мы рассмотрим, что важно учитывать при выборе программы, а также приведем примеры лучших курсов для новичков и опытных разработчиков.Читать полностью »

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

В данной статье мы рассмотрим, как интеграция инструментов автоматизированного поиска схожих изображений, цифрового зрения и навигационных системЧитать полностью »

Какую потенциальную проблему видите в коде?

await _applicationService.Create(application);
await _queue.Publish(new ApplicationCreatedEvent(application));

Сначала создается заявка в БД, после событие о создании отправляется в брокер сообщений(MQ) для оповещения другого сервиса о появлении новой заявки.

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

Читать полностью »

Операционная система в 1 000 строках кода (часть 5) - 1


Это завершающая часть проекта по написанию собственно ОС. Здесь мы реализуем дисковый ввод/вывод и файловую систему, а также вкратце подведём итоги и наметим дальнейшие шаги на пути доработки системы.

▍ Навигация по частям

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js