Как стать автором
Обновить
496.49

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

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

Сначала показывать
Порог рейтинга
Уровень сложности

Из серии: заглянем под капот clang-e2k/llvm-e2k из штатного дистрибутива для Эльбруса

Время на прочтение 12 мин
Количество просмотров 542
Программирование *C++ *Компиляторы *C *Процессоры
Из песочницы

Тема непосредственно самого процессора Эльбрус уже достаточно хорошо раскрыта в различных статьях, в том числе, в статьях, опубликованных на habr.ru. Кроме самого процессора Эльбрус время от времени на просторах рунета можно встретить обсуждения, посвященные вопросу портирования компилятора clang/llvm на Эльбрус. Пожалуй, данная тема еще не получала подробного освещения. Данная заметка призвана заполнить этот «пробел».

Если вкратце, то llvm из e2k-дистрибутива портируется на базе оптимизирующего компилятора LCC. Ну а тем, кому нужно больше подробностей, то добро пожаловать «под кат».

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

Новости

Быстрый старт с Zsh и Powerlevel10k: двигаемся к терминалу мечты

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 727
Программирование *
Туториал

Привет, Хабр!

Меня зовут Рожнев Андрей, участник профессионального сообщества NTA.

Делюсь личным опытом по настройке терминала в Unix‑подобных ОС (macOS, Fedora, Ubuntu и так далее).

Когда я только залетал в отрасль софтверной разработки, первое, что меня напрягло — конечно же терминал и его неотвратимость. По итогу же оказалось, что терминал — это твой верный друг и соратник на тернистом, но таком интересном пути в мир IT. Один из вариантов полюбить терминал — потратить какое‑то время, немного разобраться в теме и настроить всё это дело под себя любимого.

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

Повторяй за мной или двигаем виртуальной камерой like a pro

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 997
Python *Программирование *Компьютерная анимация *CGI (графика) *

DVD – как много в этой аббревиатуре! Уверен, что вы наверняка помните такое явление, как ларьки и палатки с дисками, исчезнувшие только к началу 2010-х годов (по крайней мере так было в столице). В один из таких ларьков в конце 2009-го заглянул десятилетний я, внимание которого тут же привлекла коробка с надписью «3D Studio Max 2010»... Аниматором я, увы, так и не стал, однако интерес к области визуальных эффектов сохранился надолго.

В поисках обучающих материалов с англо-русским словарём наперевес в один прекрасный день я забрёл на Videocopilot. В одном из уроков автор с помощью неведомой волшебной софтины под названием Boujou показал, как отследить движение камеры в отснятом материале для его дальнейшего совмещения с трёхмерной графикой, что в подростковом мозгу произвело эффект разорвавшейся бомбы. Много позже, курсе на втором-третьем, меня всё чаще посещала навязчивая мысль – а как это вообще работает?

В данной статье мне бы хотелось рассмотреть математический аппарат, при-меняемый в данном классе задач, а также сдобрить её щепоткой практики. Приятного чтения!

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

Как начать тестировать backend и не сойти с ума

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 1.4K
Блог компании Usetech Программирование *SQL *Git *Тестирование веб-сервисов *
Обзор

Дисклеймер: B первую очередь материал будет интересен тем, кто уже значительное время занимается тестированием пользовательского интерфейса и не знает, как подойти к тестированию backend части приложения. Я не претендую на истину: всё, что сказано ниже, является моим субъективным мнением и пережитым опытом.

Введение

Рынок IT специалистов начал стремительно развиваться в последние пару лет. Требования ко всем специальностям, которые задействованы в разработке программного обеспечения, растут со скоростью развития применяемых технологий. Требования выросли и к специалистам по тестированию. Например, если ещё в 2019 году для того, чтобы устроится тестировщиком в международную IT компанию достаточно было иметь год опыта тестирования чего-нибудь, прочитать «Тестирование dot com» Савина, уметь писать тест-кейсы, знать такие слова как «GIT», «SQL» и «Redmine», то в 2021 году ситуация стала радикально меняться. Осознание того факта, что пятилетний опыт ручного тестирования frontend части различных приложений недостаточен для конкурирования на рынке, привёл меня к выгоранию и побудил к решительным действиям. Я осознал, чтобы не остаться на обочине всей IT индустрии необходимо соответствовать современным критериям хорошего специалиста по тестированию. А именно, попытаться понять, как тестировать серверную часть приложений.

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

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 4

Истории

Scala Digest. Выпуск 5

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 573
Блог компании TINKOFF Программирование *Scala *
Дайджест

Привет, Хабр! Мы — Рома, Настя и Карина — бэкенд-разработчики Тинькофф, пишем код на Scala и горим желанием его популяризировать.

Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. Свою мотивацию черпаем из желания развиваться и делиться полученными знаниями. Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Читать пятый выпуск
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 0

«Наташ, вставай!» или как научить GitHub присылать вам SMS

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 1.4K
Блог компании МТС Программирование *API *GitHub *Сотовая связь
Кейс

Привет, Хабр! В одной из прошлых своих статей я уже писал про API для работы с SMS-сообщениями от компании МТТ (входит в экосистему МТС). На этом можно было бы и остановиться, если бы не одно «но». Не так давно вышла в свет платформа МТС Exolve за авторством всё той же компании МТТ. Методы для работы с SMS у MTT Telecom API и MTC Exolve очень похожи, за исключением одного: чтобы «покрутить в руках» MTC Exolve, не нужно заключать договор.

Cегодня мы  «поймаем двух зайцев»: посмотрим, как работает GitHub Actions и научимся отправлять SMS с помощью МТС Exolve.

Читать далее
Всего голосов 25: ↑24 и ↓1 +23
Комментарии 2

Как превратить DevOps-пайплайн в DevSecOps-пайплайн. Обзор концепции Shift Left

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 1.2K
Блог компании Yandex Cloud & Yandex Infrastructure Информационная безопасность *Системное администрирование *Программирование *DevOps *
Обзор

Привет, Хабр! Меня зовут Алексей Колосков, я DevOps/Cloud-инженер в Hilbert Team. Вместе с моим коллегой Михаилом Кажемским в этой статье мы расскажем об особенностях DevSecOps-пайплайна и концепции Shift Left. Вы узнаете об основных этапах DevSecOps-пайплайна, автоматизированных проверках безопасности при разработке ПО, бесплатных и опенсорс-инструментах. Также найдёте советы, которые помогут раньше обнаруживать уязвимости и улучшать безопасность приложения. 

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

Читать дальше
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 0

Попробуем выиграть 300 мс при загрузке Википедии

Время на прочтение 7 мин
Количество просмотров 1.2K
Высокая производительность *JavaScript *Программирование *Проектирование и рефакторинг *Браузеры
Перевод

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

Нервозное перещёлкивание (rage clicking)

Повышенный отток пользователей и снижение показателей конверсии

Потерю позиций в поисковой выдаче

Более трёх лет мобильная версия Википедии сбоила из-за фрагмента кода на JavaScript, выполнение которого могло занимать более 600 мс при загрузке страницы на маломощных устройствах. В результате работать со страницей становилось попросту невозможно.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 14

Простое должно быть простым: Палки в разметку

Уровень сложности Средний
Время на прочтение 15 мин
Количество просмотров 1.5K
Программирование *
Кейс

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

А как быть тем, кто заходит в сияющий мир CSS лишь изредка - по необходимости?

(А еще под раздачу попадут React-либы MUI и AntD!)

Читать далее
Всего голосов 3: ↑1 и ↓2 -1
Комментарии 26

Как сделать автодеплой ui-kit на npm с помощью ci/cd gitlab

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 1.1K
JavaScript *Программирование *Git *Node.JS *
Из песочницы

Как я сделал удобный автодеплой ui-kit на npm с помощью pipeline's gitlab.

Что удалось сделать?

Автоматическое обновление версии пакета при пуше изменений.

Автоматический деплой новой версии на npm.

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 6

Книга «JavaScript с нуля до профи»

Время на прочтение 14 мин
Количество просмотров 5.6K
Блог компании Издательский дом «Питер» Разработка веб-сайтов *JavaScript *Программирование *Профессиональная литература *
imageПривет, Хаброжители!

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

В «JavaScript с нуля до профи» основное внимание уделяется ключевым концепциям программирования и манипуляциям с объектной моделью документа для решения распространенных проблем в профессиональных веб-приложениях. К ним относятся проверка данных, управление внешним видом веб-страниц и работа с асинхронным и многопоточным кодом.

Обучайтесь на основе проектов, дополняющих теоретические блоки и серии примеров кода, которые могут быть использованы в качестве модулей различных приложений, таких как валидаторы входных данных, игры и простые анимации. Обучение дополнено ускоренным курсом по HTML и CSS, чтобы проиллюстрировать, как компоненты JavaScript вписываются в полноценное веб-приложение.

Для кого эта книга
Для комфортного знакомства с книгой не требуется никакого опыта в JavaScript. Конечно, упражнения дадутся немного легче, если вы хотя бы немного умеете программировать. Знакомство с основами HTML и CSS будет вашим преимуществом. Если вы начинающий программист, для нас большая честь поприветствовать вас в мире программирования. Вначале он может показаться сложным, но мы проведем вас через все трудности.
Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 1

Куда подевались все хакеры? Как правильно обсуждать языки программирования

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 8.7K
Блог компании RUVDS.com Программирование *Управление разработкой *Управление проектами *
Мнение
Перевод

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

▍ Что мы на самом деле сравниваем, сравнивая языки программирования?


Придя в гости к другу, я увидел, что на нём надета футболка Golang. Он сказал, что любит Golang, я ответил, что мне нравится футболка, а сам язык чуть меньше. Ему понравилась мысль «обсудить это позже», и после ужина мы уселись на диванах и приступили к разговору. Я хотел поговорить о сборщике мусора (1, 2), о том, что горутины/каналы — это удобная абстракция, но я предпочитаю абстракции BEAM, потому что они позволяют использовать супервайзоры, обсудить очень свободное отношение Golang к корректности, но… он не горел желанием говорить обо всём этом. Мой друг с восторгом рассказывал о том, что ему нравится, что «разработчики на Go знают, что достаточно одного цикла for. Кто-то притащил в мою компанию Scala, и мне очень не нравится смена образа мышления».

Разговор был бесплодным, и мы оба ощущали, что собеседник не ценит то, что было важно другому. Когда люди говорят о языках, которые им нравятся или не нравятся, я группирую аспекты обсуждения на три большие категории, которые назову почва, поверхность и атмосфера:
Читать дальше →
Всего голосов 38: ↑35 и ↓3 +32
Комментарии 3

Чем плохо ООП (иногда)

Время на прочтение 6 мин
Количество просмотров 4.7K
Блог компании Национальная Медиа Группа Программирование *Проектирование и рефакторинг *ООП *
Мнение
Перевод

ООП используется уже давно, оно применяется в большинстве программ. Но всегда ли ООП является правильным путём? Далеко нет.

Что такое ООП?

ООП — это парадигма, при которой код разделён на множество классов, что приводит к настраиваемому доступу и разъединению компонентов. Основные преимущества использования ООП заключаются в следующем:

1. Сокрытие подробностей реализации

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

2. Разъединённые компоненты

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

Читать далее
Всего голосов 32: ↑21 и ↓11 +10
Комментарии 20

Работа Apache Kafka на примерах. Поднимаем Kafka Cluster используя docker-compose

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 3.6K
Программирование *Java *IT-инфраструктура *Apache *
Из песочницы

В этой статье продемонстрирую и объясню работу Kafka, используя как можно меньше определений и больше практики. Мы рассмотрим 3 сценария работы с Kafka. Для последнего сценария мы поднимем Kafka Cluster в Docker и с помощью UI увидим, как происходит общение между сервисами.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 5

Программируй свое здоровье

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 1.9K
Антивирусная защита *Программирование *
Обзор
Recovery mode

Так как я сам новичок в программировании и сидячая многочасовая работа уткнувшись в монитор для меня вообще-то была нетипична, то через совсем короткое время я заметил небольшие изменения в своем здоровье... Появилась мысль, что несмотря на приличный заработок, со временем, придется значительно тратиться на лечение и поддержание своего здоровья. И тогда я задался вопросом: а можно ли организовать свою работу так, чтобы здоровье мое не ухудшалось, а наоборот - улучшалось? Часто, мы все время откладываем "на потом" тему здоровья, поэтому, надеюсь, что моя статья привлечет внимание и поможет вам сохранить его до глубокой старости!

Моя статья будет состоять из двух частей:

Читать далее
Всего голосов 18: ↑12 и ↓6 +6
Комментарии 7

Уязвимость XSS в приложении ASP.NET: разбираем CVE-2023-24322 в CMS mojoPortal

Время на прочтение 9 мин
Количество просмотров 952
Блог компании PVS-Studio Информационная безопасность *Программирование *.NET *C# *

1054_XSS_mojoPortal_ru/image1.png
В этой статье изучим с разных сторон уязвимость XSS в CMS, написанной на C#. Вспомним теорию, разберёмся, как дефект безопасности выглядит со стороны пользователя и кода, а также поупражняемся в составлении эксплойтов.

Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 2

Infrastructure as a Code: ожидания и реальность

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 3.5K
Блог компании Яндекс Практикум Системное администрирование *Программирование *DevOps *
Кейс

Есть такие ребята — SRE (с англ. Site Reliability Engineering), которые выросли из старых добрых и бородатых системных администраторов. Но они устали заниматься ежедневной рутиной и решили всё автоматизировать. Именно поэтому 50% времени SRE пишут код.

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

«Контрибьютинг — ваше лучшее резюме». 7+ итогов митапа про выход в open source

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 1.3K
Блог компании «Лаборатория Касперского» Open source *Тестирование IT-систем *Программирование *Карьера в IT-индустрии
На прошлой неделе мы в «Лаборатории Касперского» провели онлайновый митап «Выйти в open source и нанести всем пользу». Создатели и разработчики популярного (1,6 тысячи звезд на Github, свыше 3,5 тысяч уникальных пользователей по данным аналитики Nexus) open-source-фреймворка для автотестов Kaspresso рассказали, какой путь предстоит пройти контрибьюторам и какие подводные камни их могут ждать.



Здесь в посте — краткая выжимка эфира в семи ключевых тезисах. Если же вам интересно послушать более развернутую дискуссию и аргументы участников, посмотрите запись митапа по этой ссылке или в виджете ниже.
Читать дальше →
Всего голосов 27: ↑25 и ↓2 +23
Комментарии 0

Создаем типовое локальное окружение для разработчика

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 2.2K
Блог компании CloudMTS Программирование *Анализ и проектирование систем *Облачные сервисы *Лайфхаки для гиков
Кейс
image

Привет! Снова на связи Петр Коробейников, техлид серисов Redis и RabbitMQ в #CloudMTS.
Сегодня мы поговорим о самой главной составляющей Developer Experience (DX) — локальном окружении разработчика. Вернее о том, как сделать так, чтобы оно разворачивалось быстро и автоматизированно, а еще было единообразным у всех участников команды.


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


Зачем нужно типовое локальное окружение для разработчика — объяснять не нужно. Просто вспомните ваш технический онбординг. Чаще всего вместо него вам предлагается проштудировать некоторое количество недописанных статей в конфлюенсе, из которых мало что можно было понять.

Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 2

Создание надстроек для офисного пакета «МойОфис». Часть 2. Расширяем структуру файлов надстройки и удалённая отладка

Уровень сложности Простой
Время на прочтение 14 мин
Количество просмотров 424
Программирование *Lua *
Туториал

Итак, после создания первой надстройки в офисном пакете «МойОФис», о чем можно почитать в  первой, вводной части данного цикла статей, следующим шагом у меня возникла идея, как бы представить весь код, в форме более удобной для дальней работы форме? Хотелось бы, чтобы весь код не был свален в одном месте, а разделён хотя бы по разным файлам. Да и отладка бы совсем не помешала!

Итак, приступим!
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 4

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