Как стать автором
Обновить
661.67
Рейтинг

Программирование *

Искусство создания компьютерных программ

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Загружаемые изображения для Jetpack Compose с использованием Glide, Coil и Fresco

Блог компании OTUS Программирование *Разработка под Android *
Перевод

Новый современный набор инструментов пользовательского интерфейса Jetpack Compose был анонсирован компанией Google более года назад, и, наконец, в июле была выпущена стабильная версия 1.0. Также многие компании, такие как Twitter, lyft, Square, уже адаптировали Jetpack Compose на своих производственных уровнях, потому что он очень интуитивный, мощный и упрощает всю структуру пользовательского интерфейса, если правильно его использовать. Эта новая парадигма структуры пользовательского интерфейса поменяет в дальнейшем очень многое, также нам придется приложить еще немало усилий для миграции предыдущих вещей, связанных с пользовательским интерфейсом, таких как загрузка изображений из Url. 

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 76
Комментарии 0

Возможности функций, возвращающих другие функции в JavaScript

Блог компании OTUS JavaScript *Программирование *
Перевод

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

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

Читать далее
Всего голосов 7: ↑3 и ↓4 -1
Просмотры 1.3K
Комментарии 2

Российская конференция для разработчиков от Microsoft: Day of the DEVs

Блог компании Microsoft Информационная безопасность *Программирование *Microsoft Azure Конференции

Вы давно ждали и мы сделали крупное российское онлайн-мероприятие для разработчиков от Microsoft в России: Day of the DEVs.

12 октября систематизируем знания в 5 основных направлениях: Hybrid/Multi cloud, Security, OSS, Data&AI для приложений, Продуктивность разработчиков. Ниже подробное описание и ссылка на регистрацию. Выберите интересующий вас трек, зовите коллег и регистрируйтесь!

Подробности и регистрация.

Читать далее
Рейтинг 0
Просмотры 249
Комментарии 0

Архитектура как кот VS Архитектура как кол

Блог компании Работа.ру Программирование *Проектирование и рефакторинг *

Знаете что я больше всего ненавижу? Я люто ненавижу рамки. Ограничения, которые не дают развить мою идею. Вам знакомы эти чувства? Если да, то приглашаю в подкат поговорить.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 1.3K
Комментарии 0

Генераторы на корутинах C++

Блог компании ISPsystem Программирование *C++ *
Tutorial

Я уже пару лет как развлекаюсь написанием различных программ на C++ с использованием корутин. Но до сего момента это были асинхронные приложения. Я активно использовал co_await, но ни разу еще мне не понадобился co_yield. И вот, после трех дней вынужденного ничегонеделанья в больнице, я решил этот пробел восполнить и попробовать написать собственный генератор. А заодно и получше разобраться с promise_type и coroutine_handle

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 1.9K
Комментарии 2

Книга «Эффективный C. Профессиональное программирование»

Блог компании Издательский дом «Питер» Программирование *C *Профессиональная литература
image Привет, Хаброжители! Мир работает на коде, написанном на C, но в большинстве учебных заведений программированию учат на Python или Java. Книга «Эффективный С для профессионалов» восполняет этот пробел и предлагает современный взгляд на C. Здесь рассмотрен C17, а также потенциальные возможности C2x. Издание неизбежно станет классикой, с его помощью вы научитесь писать профессиональные и надежные программы на C, которые лягут в основу устойчивых систем и решат реальные задачи.
Читать дальше →
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 2.4K
Комментарии 6

PlantUML — инструмент продуктового разработчика

Блог компании QIWI Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *UML Design *

Я дико люблю ковыряться в чужом коде. Это одна из моих любимых специализаций. То есть я просто беру чужой код, анализирую его, читаю. Как я читал его раньше: я переводил код в русский язык. Описывал, что происходит по флоу кода, и пытался понять, что там происходит. Эти записи я в дальнейшем использовал как для написания статей в Confluence, так и для общего понимания происходящего.

С одной стороны, решение работающее. С другой, буквально через неделю-две я уже начинал сомневаться, достаточно точно ли я «перевел» с кода на русский язык? И тогда вспомнил про UML-диаграммы. И вместо того, чтобы записывать текст, стал визуализировать его и исписал неимоверное количество тетрадей. 

Но в какой-то момент подумал, что хорошо бы перевести все это в электронный вид, чтобы какой-то инкремент оставался. Не фоткать же, например, для документации, свою тетрадь с каракулями. Так я нашел инструмент PlantUML — opensource-решение, которое использует графическую библиотеку graphviz, превращающее код в наглядные схемы.

Давайте вспомним, что такое Unified Modeling Language. Чаще всего в университете UML используется для описания диаграммы классов.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 1.7K
Комментарии 10

Энтерпрайзные проекты убили профессию разработчика

Блог компании Haulmont Программирование *Управление продуктом *
Перевод


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


На эту статью меня вдохновил комментарий на HackerNews, который я больше не могу найти. Суть его была такая: “В то время, как архитектура слишком проработана, код недоработан”. Если кто-то опознает автора, я с радостью проставлю его авторство.


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

Читать дальше →
Всего голосов 13: ↑10 и ↓3 +7
Просмотры 3.4K
Комментарии 12

Код ME310: Почему новый продукт для нас разрабатывают студенты МФТИ, Мюнстера и Стэнфорда?

Программирование *Карьера в IT-индустрии IT-компании

Привет, Хабр! Я хочу рассказать о нашем новом проекте, который только что был успешно запущен совместно с тремя ведущими вузами мира — Московским Физико-Техническим Институтом, Стэнфордским Университетом и Вестфальском Университете г. Мюнстера. Речь идет о платформе быстрого поиска и найма ИТ-специалистов — oneclickhiring.io — которая начнет работать в следующем году. А сегодня над концепцией платформы трудятся 12 магистрантов разных национальностей, специальностей, пола и культурной принадлежности. И в этом посте вы узнаете, почему мы выбрали такой путь для развития проекта, что такое МЕ310, зачем это нужно студентам, и какой должна получиться платформа в итоге.

Когда весь мир дружно сменил офисы на удаленную работу, в нашей отрасли произошел глобальный, можно сказать даже тектонический сдвиг. Например, в России мы наблюдаем почти 70% увеличение заработной платы ИТ-специалистов за прошлый год. Это происходит потому, что многие переключились на оказание услуг зарубежным заказчикам, продолжая при этом жить в России. Этот феномен называют разными словами, например наш CEO Павел Подкорытов говорит, что произошла “отмена географического рабства” и разрушились “зарплатные горы”. Это значит, что сегодня ситуация, когда разработчик одной и той же квалификации получает в Мехико $1 тысячу долларов, а в Сан-Франциско — 15 тысяч, стала невозможной. Люди стали искать новые возможности, и вместе с этим появилась потребность в сервисах для ИТ-шников, находящихся на другом конце света. 

Поиск подходящих исполнителей для различных ИТ-проектов стал типовой задачей для большинства сервисных компаний. Например, нам в Napoleon IT уже не первый год приходится подбирать нужных специалистов для различных внедрений, разработок, интеграций и так далее. Чтобы делать это эффективно, еще несколько лет назад вместе с экспертами из ИТМО и Московской школы управления Сколково мы разработали методику оценки специалистов и компаний. 

Читать далее
Рейтинг 0
Просмотры 787
Комментарии 1

Как я писал Биномиальную кучу

Программирование *C++ *Алгоритмы *
Из песочницы

Я сейчас изучаю продвинутые структуры данных и в один прекрасный вечер я решил собирать алгоритмы и структуры данных к себе на гитхаб (и до сих пор это делаю). Захотел я сделать так, чтобы сделать всё шаблонным, если что-то мне резко понадобится, то я смог за считанные секунды добавить себе шаблонный класс структуры данных или шаблонную функцию алгоритма и использовать. Звучит замечательно, особенно на контесты с codeforces.

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

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Просмотры 806
Комментарии 2

Как автоматизировано защитить Mikrotik от несанкционированного доступа через API, порт 8728

Программирование *API *
Из песочницы
Если вы используете на своём маршрутизаторе службу HotSpot и управляете сетью с помощью удаленного сервера, через API, то эта статья будет вам интересна.

Обычно, для запрета доступа через определенные порты, открывают меню IP → Services и отключают нужный порт, путем выделения нужной строки, двойным кликом и нажатия кнопки «Disable». Как показано на рисунках ниже.
Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 1.6K
Комментарии 4

Чек-лист хороших инженерных практик в компаниях

Блог компании Хекслет Программирование *Тестирование веб-сервисов *DevOps *

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

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

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

Читать далее
Всего голосов 13: ↑11 и ↓2 +9
Просмотры 3.9K
Комментарии 3

Веб-безопасность 201

Блог компании Конференции Олега Бунина (Онтико) Информационная безопасность *Разработка веб-сайтов *Программирование *Конференции

Сегодня — вторая часть теории, которую рассказал эксперт по информационной безопасности и преподаватель Иван Юшкевич (https://twitter.com/w34kp455) провел мастер-класс по безопасности на конференции РИТ++ на платформе hacktory.ai.

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

Сегодня рассказ будет о CSRF, XSS и XXE.

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 1.4K
Комментарии 3

Как написать FizzBuzz на собеседовании

Ненормальное программирование *Программирование *Rust *

Здравствуй, Хабр.


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

Читать дальше →
Всего голосов 142: ↑129 и ↓13 +116
Просмотры 27K
Комментарии 136

MPIRE — быстрая альтернатива multiprocessing

Блог компании SkillFactory Open source *Python *Программирование *Параллельное программирование *
Перевод
Tutorial

MPIRE комбинирует функции, подобные map из multiprocessing.Pool, с преимуществами копирования при записи общих объектов multiprocessing.Process. В пакете также есть простые в работе функции состояния рабочего процесса, информирования о нём и индикатора выполнения. Сокращённым переводом документации делимся к старту курса по Fullstack-разработке на Python.

Читать далее
Всего голосов 18: ↑16 и ↓2 +14
Просмотры 1.6K
Комментарии 2

Почти детективная история одной «кровавой» ошибки

Блог компании Timeweb Программирование *Промышленное программирование *Программирование микроконтроллеров *Производство и разработка электроники *
Tutorial


Дополнение статьи «Размещение кучи FreeRTOS в разделе CCMRAM для STM32», и в продолжение серии статей про различные полезности для STM32 (1, 2 и 3), хочу обратить внимание на одну особенность работы с CCM RAM памятью, которая может быть причиной совершенно не очевидных ошибок в работе устройств, одна из которых выпила у автора достаточно много крови, так что с чистой совестью её действительно можно назвать «кровавой».

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

Вот только костыль не помог. Помогало только физическое выключения питания, а программная перезагрузка микроконтроллера не помогала! Более того, даже перезагрузка с помощью кнопки RESET иногда не срабатывала! Устройство перезагружалось, но неправильное поведение устройства никуда не исчезало и в итоге все равно приходилось отключать питание физически.

Читать дальше →
Всего голосов 26: ↑24 и ↓2 +22
Просмотры 5.4K
Комментарии 19

Под капотом Ruby. GVL

Ruby *Программирование *Системное программирование *C *Параллельное программирование *

Давным давно уже уже была написана статья о том что такое GVL (или GIL, кому как привычнее) и как он работает, однако с того времени некоторые вещи поменялись (к примеру, , а так же в Ruby 3.0 завезли Ractor'ы - новую абстракцию для реальной параллельной работы тредов. Мне стало интересно узнать что поменялось в планировщике ruby для реализации множества GVL. В этой статье я попытаюсь понять алгоритм, по которому GVL передается от одного треда к другому, как блокирующее IO позволяет продолжить работать другим тредам, а так же выяснить до сих пор ли операция добавления элемента в массив является атомарной операцией

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 977
Комментарии 0

48 полноценных бесплатных книг для программистов (happy developer's day)

Open source *Программирование *.NET *Читальный зал DevOps *
Tutorial

Привет, Хабр! Немного запоздало (ко дню программиста) делюсь подборкой бесплатных книг по программированию. Все они полезные, уровень скорее профессиональный, хотя и для развития от базового тоже подойдет, но, к сожалению, на английском. Среди тем книг: .NET, Алгоритмы, Android, iOS, Angular, C, C++, C#, JS, Linux, Python. В целом, найдется почти любая тема, которая приходит в голову.

Дисклеймер. Все эти книги взяты с одного ресурса, который существует за счет донейшенов. Получить книги можно без осуществления донейшенов, ресурс полностью бесплатный, пожертвования опциональны. Все книги написаны на основе контента со StackOverflow и являются код-ориентированными. Книги со временем обновляются. По ссылкам -- книги, актуальные на 15.09.2021.

Читать далее
Всего голосов 81: ↑80 и ↓1 +79
Просмотры 35K
Комментарии 38

Пакетный обмен данными по UART

Программирование *C++ *C *Программирование микроконтроллеров *Разработка под Arduino *
Из песочницы

На сегодняшний день существует много способов организовать обмен данными между Desktop-приложением и устройствами на микроконтроллерах: Wi-Fi, Bluetooth, RF, USB, преобразователи интерфейсов и т.д.

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

В случае использования интерфейсов RS-232, RS-485, RS-422 или чистого UART организация пакетного обмена данными ложится на программиста.

В данной статье я хотел бы рассказать о своей реализации обмена данными между устройствами.

Читать далее
Всего голосов 5: ↑2 и ↓3 -1
Просмотры 2.6K
Комментарии 23

Добавляем интернационализацию в приложение на Next.js

Блог компании Alconost Разработка веб-сайтов *JavaScript *Программирование *Локализация продуктов *
Перевод

С 10-й версии в Next.js есть встроенная обработка интернационализированной маршрутизации.

В этой статье мы рассмотрим, как добавить интернационализацию в приложение на Next.js — к концу статьи научитесь делать следующее:

• Добавлять интернационализированную маршрутизацию в приложение на фреймворке Next.js.

• Обрабатывать переключение языковых стандартов («локалей»).

• Добавлять в приложение переведенный текст.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 727
Комментарии 2

Вклад авторов