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

Имплементируем WebSocket протокол на Go

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

Статья для тех, кто хочет познакомиться с устройством технологии WebSocket или языком программирования Go.

Или узнать с какой простотой Go стал одним из самых популярных языков программирования для написания сетевых приложений.

Читать далее
Всего голосов 39: ↑38 и ↓1+37
Комментарии9

DWT-шаблоны и DWS-стандарты

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

DWT-шаблон

Вот мы и подходим к той стадии, когда уже создали стили мультивыносок (см. «Выноски nanoCAD vs мультивыноска») и собственную библиотеку блоков (см. «Блоки и атрибуты блоков»), а также (см. «Лайфхаки печати nanoCAD») научились быстро выводить документы на печать с помощью диспетчера параметров листов, пакетной печати, счетчика документов и других приемов. Часть этих настроек можно без проблем передавать во вновь создаваемые файлы. Каким образом? Давайте узнаем…

Согласитесь, каждый раз выполнять настройки для новых документов – дело довольно долгое, рутинные процессы надо минимизировать. С этой задачей прекрасно справляется шаблон, то есть чертеж, который используется как основа для создания новых чертежей и содержит некоторые общие настройки. Шаблоны имеют расширение *.dwt и хранят в себе единицы измерения, режимы рисования, слои и их свойства, масштаб типа линий, размерный стиль, стили текста, листы с видовыми экранами и масштабами. Важно учитывать, что в nanoCAD на основе шаблонов создаются все *.dwg-документы.

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

Начинаем работать с BACnet

Время на прочтение13 мин
Количество просмотров8.3K
imageМногие из нас, наверное, смотрели боевики и видели, как герои, сидя в темной комнате, удаленно управляют дверями в зданиях, открывая и закрывая их. Управляли освещением, лифтами, чтобы помочь кому-то куда-то пройти или, наоборот, помешать – ну и думали, что да, в теории такое возможно, и в каких-то зданиях, вероятно, есть какая-то автоматизация, но больше это кажется какой-то выдумкой. Так получилось, что в устройство, которое мы делаем, заказчик захотел добавить поддержку BACnet. Так я познакомился с тем, что, оказывается, существует специализированный протокол для автоматизации зданий, который развивается аж с 1987 года.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии3

Пишем тесты производительности под Webflux

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

Добрый день! Меня зовут Александр Леонов, я руководитель группы разработки одной из распределённых команд Usetech. Сегодня я хочу рассказать вам о том, как написать карманный тест производительности на неблокирующий код Webflux. Статья рассчитана на разработчиков, которые разрабатывают API или выполняют оптимизационный рефакторинг медленного кода. Итак, начнём.

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

Как я развёртывал прямой proxy на базе nginx

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

Ты как специалист в области IT, после февральских событий скорее всего столкнулся с проблемой недоступности некоторых ресурсов и наверняка подумал о том, как это дело обойти. Но использовать "бесплатный" или сторонний сервис кажется небезопасным или не даёт нужную ширину канала. У тебя есть навыки работы с Linux и свой сервер где-нибудь за бугром. Почему бы собственно говоря не сделать свой прямой прокси?

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

Danger. Автоматизируем ревью на CI и пишем свой плагин

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

Привет, я Татьяна Родионова, Android-разработчица в Lamoda. Как-то раз передо мной появилась задача упростить ревью пул-реквестов с помощью Danger. Я решила добавить автоматическую проверку код стайла, используя ktlint. Но оказалось, что Danger не поддерживает такое решение, поэтому я добавила такую проверку сама :) 

Моя статья поможет разобраться в том, как настроить Danger и как заставить его выполнять задачи немного сложнее тех, которые есть в официальном туториале.

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

Опыт перехода на MVI в Android на базе собственного решения

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

В команде Android мы активно применяем MVI для проектирования взаимодействия состояния экрана и бизнес-логики. В этой статье мы хотим рассказать о собственной MVI-библиотеке – Reduktor и об опыте внедрения и использования. Статья будет полезна всем, кто хочет познакомиться с Redux-like MVI.

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

Неочевидное про Fragment API. Часть 1. Транзакции

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

Всем привет! Меня зовут Максим Бредихин, я Android-разработчик в Тинькофф. В этой серии статей я расскажу об интересных моментах из Fragment API, о которых вы могли не знать. Материал будет полезен как начинающим разработчикам, так и закаленным в боях с багами девелоперам.

Усаживайтесь поудобнее, мы начинаем!

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

Неочевидное про Fragment API. Часть 2. (Не) создаем инстанс

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

Всем привет! Меня зовут Максим Бредихин, я Android-разработчик в Тинькофф. А это — вторая статья серии об интересных моментах из Fragment API, о которых вы, возможно, не знали.

Готовьте вкусности, сегодня я расскажу, как (не) создавать новые инстансы фрагментов.

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

На твой телефон пришло новое сообщение

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

Привет! Сегодня я хочу затронуть тему SMS, а точнее, поделиться опытом их «приручения» в Android на примере собственного пет-проекта.

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

Неочевидное про Fragment API. Часть 3. Навигация

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

Всем привет! На связи Максим Бредихин, Android-разработчик в Тинькофф. А это — третья статья об интересных моментах из Fragment API, о которых вы, возможно, не знали.

Наливайте чай, садитесь поудобнее и приятного чтения!

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

Портирование DOS игр. Tutorial

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

Мотивация к написанию статьи

Уважаемые коллеги, доброго времени суток!

Этой статьей я хочу показать приёмы портирования программ между аппаратно-программными платформами, и привлечь внимание к книге «Секреты программирования игр» Андрэ Ламота, 1995, которую вспомнят добрым словом многие разработчики компьютерных игр, и другим не менее полезным книгам этого автора.

Нам интересны приёмы портации, но мы так же проведём ревью, проверим насколько долговечен код 25-тилетней давности, и насколько сложно его портировать на любые современные платформы.

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

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

Неочевидное про Fragment API. Часть 4. Анимации и меню

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

Всем привет! С вами снова Максим Бредихин, Android-разработчик в Тинькофф. Мы добрались до заключительной части серии про интересные моменты из Fragment API. Занимайте лучшие места, мы начинаем!

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

Чек-лист: анализируем ИТ при покупке бизнеса

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

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

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

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

Пройти LeetCode за год: экскурсия по сайту и roadmap [обновлено 30.11.2023]

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

С наступающим наступившим вновь наступающим, Хабр.

Новый год – точка, после которой все мы собираемся что-то начать, чем-то заняться, в чём-то поднатореть. Сегодня я расскажу об одном из таких вариантов – что можно начать и как к этому подойти.

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

С сайтом несколько больно знакомиться, он отпугивает вездесущими приписками "premium", пользуясь славой ресурса для техсобесов продвигает функционал вроде списков компаний, где встречался вопрос n и симуляции интервью в компанию m, да и сам не особо стремится рассказать о себе, потому в нём зачастую и видно голый задачник с одной страницей "problems".

За всем этим теряется важный пункт – а можно ли использовать сайт не для механического зазубривания популярных вопрос-ответов, а для изучения/закрепления алгоритмов и структур данных? Можно. Но подход к этому нужно формировать самостоятельно.

🏆
Всего голосов 46: ↑45 и ↓1+44
Комментарии30

Декораторы, о которых вам не расскажут

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

От переводчика: мне понравился подход к объяснению декораторов, описанный в этой статье, а так как других вариантов перевода я не нашёл, я решил поделиться этим с аудиторией Хабра. Надеюсь что этот текст будет полезен как новичкам, так и опытным программистам.

Если вы программируете на языке Python, вы должны были слышать о декораторах, однако существует много людей, которые либо не знакомы с ними, либо, что еще хуже, знакомы с ними (использовали так или иначе), но так и не поняли их суть.

Цель этого краткого руководства — развеять мифы, которые вы слышали о декораторах, и показать вам другие их стороны, о которых вы и не подозревали.

Читать далее
Всего голосов 51: ↑50 и ↓1+49
Комментарии12

Шифрование домашней папки на Linux с помощью fscrypt

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

Не так давно, по случаю, мне достался ноутбук. Скончался от болезни человек с которым я был в хороших отношениях. Спустя какое то время родственники приятеля начали распродавать и раздавать имущество умершего. Мне отдали ноутбук. Ноут Acer, не особо новый и не дорогой, особой ценности не представляет, отдали бесплатно. Но попросили по возможности достать оттуда данные - старые фото и видео на память. На ноутбуке установлена десятка и учетка с паролем, которого никто не знал. Делаю загрузочную флешку, цепляю съемный диск. Готово. В процессе копирования посмотрел, что еще есть на диске. Текстовые файлы с паролями, профиль браузера, какая то рабочая документация, личные заметки и т.д. Ненужно и не интересно. Фото и видео отдал родственникам. Диск отформатировал. Ноут в кладовку.

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

А так как последние лет десять я сидел под ubuntu то меня заинтересовало, а как там дела с шифрованием обстоят в linux.

Читать далее
Всего голосов 16: ↑15 и ↓1+14
Комментарии30

Clean Architecture, DDD, гексагональная архитектура. Разбираем на практике blog на Symfony

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

Всем привет! Давайте знакомиться ;) Я Аня, и я php разработчик. Основной стек - Magento. С недавних пор начала посматривать налево на Symfony и писать свои Pet Projects на этом фреймворке.

Мне всегда нравилось писать решения которые легко бы расширялись / адаптировались под требования бизнеса (заказчика). И мне всегда хотелось сделать это более 'правильно' и красиво. Так я и познакомилась с понятиями чистой архитектурой.

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

Для нетерпеливых, вот прямая ссылка на гитхаб

Читать далее
Всего голосов 29: ↑26 и ↓3+23
Комментарии34

Пишем игру под мобилки, ч.2. Масштабируемый UI, порт на Android, геймплей

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

В первую очередь, рекомендую вам ознакомится с первой частью - там мы написали основу нашей будущей игры(рендер, ввод, звуки, отрисовку шрифтов). На этот раз мы доделаем из демки полноценную небольшую аркаду и портируем её на Android. Ведь многие уже давно забыли, что такое писать игры с нуля, без каких либо движков, наверняка вам будет интересно попробовать, что за мини-игра получилась в итоге ;)

https://habr.com/ru/post/695428/

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

Пример использования API поиска Algolia на примере телеграм бота

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

В данном примере разберем, как пользоваться API поиска в известеом поисковом сервисе Algolia.

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