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

Технотекст

Тестируем и визуализируем с помощью Mind Map

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

Применение метода Mind Map уже продолжительное время “на слуху”. Мы приняли стратегическое решение применить его в рабочем процессе тестирования, чтобы самим убедиться (или разубедиться) в его эффективности. Сегодня пошагово расскажу что это, как это и зачем, и, главное, к чему это всё в итоге привело.

Welcome!

Читать далее

Погружение в Combine: последовательные и объединяющие операторы для улучшения процесса разработки iOS приложений

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

Добрый день! Я — Иваев Зафар, iOS разработчик в компании Usetech. В этой статье мы узнаем как фреймворк Combine помогает нам разрабатывать функционал приложения с помощью встроенных функций — операторов. В этой статье, мы покроем следующие типы операторов:

1. Последовательные операторы

2. Объединяющие операторы

Читать далее

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

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

Привет, Хабр! Меня зовут Никита Пимошенко, я тимлид команды Billing API в Quadcode. Сегодня поделюсь советами и кейсами из практики, которые пригодятся начинающим тимлидам.

Читать далее

Кто такие Data-специалисты, чем они занимаются и как строится работа

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

Привет, Хабр! Меня зовут Азат Якупов, я работаю Data Architect в Quadcode. Сегодня хочу рассказать о Data-специалистах и познакомить вас с нашей командой Data Platform.

Читать далее

Технический специалист и редактор: как написать текст вместе без обид и недоразумений

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

Привет, Хабр! Меня зовут Карина, сегодня хочу поговорить о том, как техническим специалистам и редакторам писать тексты вместе. Расскажу о возможных сценариях работы, проблемах и их решениях. А ещё о том, где искать вдохновение и как бороться с синдромом самозванца. Надеюсь, мой опыт поможет вам лучше понимать редакторов и готовить крутые тексты вместе с ними. 

Читать далее

Избавляемся от паролей в репе с кодом с помощью HashiCorp Vault Dynamic Secrets

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

Привет, Хабр! Меня зовут Сергей, я работаю IT Head в компании Quadcode. Сегодня хотел бы рассказать о том, как я решил проблему с хранением паролей в открытом виде в коде одного из моих pet-проектов. Думаю, это знакомая для многих ситуация. Знакомая — и неприятная.

Сразу скажу, что когда я начинал работу над проектом, ничего страшного в этом не видел, меня все устраивало. Но когда настало время подключать к разработке проекта кого-то извне, стало понятно, что хранить пароли в открытом виде небезопасно (да и перед контрибьюторами будет немного стыдно за такие банальные вещи) — это проблема. Вариантов решения было несколько. Под катом — рассказ о том, какое решение я выбрал и что получилось в итоге.

Читать далее

Автоматизация из первых рук: что такое платформа ServiceNow и как мы ее используем

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

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

ServiceNow — это практически универсальный комбайн, который может пригодиться многим компаниям любого масштаба. Наверное, проще перечислить, что платформа не умеет, чем то, что она способна делать, поскольку возможности ServiceNow очень обширные. ServiceNow — это PaaS, который позволяет автоматизировать большинство ITSM-процессов, включая Help Desk, мониторинг сервисов, управление их доступностью, управление поставщиками, изменениями, конфигурациями, инфраструктурой и, конечно, инцидентами и событиями. Это первая статья из цикла материалов о ServiceNow, надеемся, наш опыт пригодится читателям Хабра. Приступим.

Читать далее

Как мы создаем образовательные курсы. Путь от Google Slides к iSpring

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

Всем привет. Меня зовут Анна Хан, и я руководитель команды обучения в Quadcode. Еще два года назад для обучения мы использовали гугл таблички, prezi и тратили 90 часов в неделю на проведение очных лекций. Сейчас мы полностью выстроили процесс на платформе iSpring и Confluence и сделали курсы, которые прошли порядка 300 человек из более чем 20 стран, говорящих на 25+ языках. В этой статье я расскажу, как нам удалось пройти такой путь, что получилось, а что нет.

Читать далее

Опыт составления HLD-документации по нотации C4

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

Привет! Меня зовут Алина, я работаю техническим писателем в компании Quadcode. В этой статье хочу поделиться опытом верхнеуровневого описания архитектуры системы с использованием структуры C4. Небольшая оговорка: предпринятые шаги включают в себя определенные отходы от канонической нотации в угоду удобству и особенностям системы.

Для справки:

HLD (high-level design) – верхнеуровневое описание архитектуры системы, где представлены основные компоненты и их взаимодействия. 

LLD (low-level design) – низкоуровневое детальное описание каждого из компонентов системы.

Читать далее

Приключения филологической девы в IT и советы начинающим тестировщикам

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

Как гуманитарию стать технарём, если очень хочется. И действительно ли тестировщик — самая простая профессия, чтобы войти в IT.

Всем привет! Меня зовут Евгения, я работаю QA Automation в компании Quadcode. 

В следующем году будет 5 лет, как я занимаюсь тестированием. Но, как можно догадаться по названию статьи, техническим специалистом я была не всегда. Более того, о профессии тестировщика я узнала только в 2015 году, когда устроилась работать в службу поддержки клиентов.

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

Читать далее

Быстрый, простой, сложный: как мы выпилили Realm

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

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

Мы тоже использовали Realm — 3 года подряд. Сначала он помогал, потом раздражал, пару раз выстрелил и в конце чуть не вогнал команду в депрессию. В итоге мы удалили Realm из проекта. Это сложный инструмент — простота интеграции обманчива, а за все удобства придётся расплачиваться.

Почему и как мы его удалили

Простой способ получения ”Flicker-Off”: «отключение» ШИМ мерцания подсветки LCD мониторов и телевизоров

Время на прочтение20 мин
Количество просмотров79K
''Свобода* лучше, чем несвобода*''©
*от мерцания подсветки

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

Одной из причин этого может быть мерцание LED светодиодов подсветки монитора, вызванное ШИМ регулированием их яркости.

КДПВ

На habr.com уже было несколько статей, посвященных как описанию этого явления, например Пульсация экранов телевизоров и Увидеть пульсацию, так и методам борьбы с ним, например за счет увеличения частоты ШИМ подсветки Разгон подсветки монитора, или даже полной переделке подсветки (ссылки внутри статьи Как оценить пульсацию светодиодных ламп).

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

Однако иногда можно добиться вполне удовлетворительного результата, не вставая с дивана компьютерного кресла, ограничившись лишь подстройкой монитора, буквально «отключив» мерцание его подсветки (ну, или по крайней мере существенно его уменьшив). Так сказать, получить «Flicker-Off».

Подробности под катом:
Читать дальше →

Асинхронная обработка данных (асинхронные вычисления). Анализ поведения

Время на прочтение43 мин
Количество просмотров5.9K
На первый взгляд кажется, что в асинхронном дизайне обработки данных изобрести что-либо новое маловероятно. Действительно, все возможные приемы и компоненты синтеза уже давно известны: и кодирование, и многофазность, и индикация, и хэндшейк, и С-элементы, и пороговые элементы… Но, в отношении практически любого метода асинхронной обработки данных можно достаточно уверенно утверждать: все они заведомо избыточны. Причина такого положения видится в несколько поверхностном понимании различий между асинхронными и синхронными схемами. Принято считать, что асинхронной является такая схема, в которой отсутствует тактовый сигнал. Отсюда вытекает и решение: достаточно взять за основу архитектуру синхронного дизайна (комбинационную логику, регистры), а тактовый сигнал заменить какой-то управляющей схемой. Таким подходом в той или иной мере грешит практически любой метод. Блочный синтез — идея более оригинальная, но от этого не менее избыточная.

Однако различие меду синхронными и асинхронными схемами носит более существенный характер. Синхронные схемы отличаются наличием временных интервалов, маскируемых тактовым сигналом. И эти временные интервалы включают все переходные процессы. То есть синхронные схемы не рассматривают переходные процессы и имеют дело только с результатами переходных процессов. Таким образом синхронная схема по сути представляет собой причинно-следственные отношения на множестве состояний. Асинхронные же схемы рассматривают как результат переходного процесса, так и сам процесс. Говорить в этом случае о состояниях можно лишь с большой долей условности. Переходный процесс и его результат описываются таким явлением, как событие (переключение сигнала). И асинхронная схема представляет собой те же причинно-следственные отношения только на множестве событий.
Читать дальше →

Собеседование Golang разработчика (теоретические вопросы), Часть I

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

Как сейчас проходят собеседования на golang разработчика? Что спрашивают?

Читать далее

Актуализация данных в списках Flutter-приложения

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

Иногда в приложении необходимо отобразить список c данными. Если это простой статический список, он редко вызывает сложности. Однако создание списков, содержимое которых должно меняться, часто приводит к ошибкам, сложным для выявления и отладки.

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

Читать далее

Гравицапа для межпланетных перелётов или гравитационный манёвр

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

Вопрос эмиграции в последние десятилетия стоит наиболее остро. И если 40 лет назад пределом мечтаний было перебраться за океан, то в XXI веке умами овладела мечта о релокейшне на Марс, например. Однако там тоже в скором времени может стать тесно. Остаётся одна дорога — колонизация Солнечной Системы и экзопланет. Допустим, мы собрались покинуть внутреннюю область Солнечной Системы, а, если повезёт, то и совсем выбраться за её пределы. Помимо невероятных объёмов тушёнки и кислорода, необходимых для выживания в суровом Космосе, нам потребуется в разы на порядки большее количество топлива, чтобы всё это добро дотащить. И ещё столько же топлива, чтобы тащить то топливо. И ещё топливо.

И самое обидное, что скорее всего мы закончим свой век среди троянских астероидов Юпитера, померев от тоски. Потому что топлива всё равно ни на что не хватит. Однако присмотримся к нашей Солнечной системе повнимательнее. Вот те же «троянцы и греки» — не просто так столпились в точках Лагранжа L4 и L5 Юпитера. Их туда «затолкала» гравитация планеты-гиганта, не потратив ни единой капли гидразина.

Давайте же и мы применим дармовую энергию Природы для достижения благородной цели доставки полезной нагрузки в далёкий космос.
Читать дальше →

Опыт работы с советским газоразрядным дисплеем ГИП-10000 (ИМГ-1-02)

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров30K

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

В статье пойдёт речь про ГИП-10000. Это газоразрядная матрица постоянного тока с внешней адресацией разрешением 100х100 точек. Применялась она в таких изделиях как Электроника МС6205 и ИМГ-1. Я расскажу про то, как запустил на ней Bad Apple!! и Doom.

Читать далее

Структурная адаптация, brand-new самоорганизующаяся сеть на палочках и кружочках

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

Речь в статье пойдет о принципиально новой ИИ методологии, основанной на распространении потока в адаптивной многомерной структуре (фильтре). Ранее подход описан нигде не был, знакомьтесь.

Читать далее

Умный дом на основе API Telegram

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

Как реализовать рабочую IoT систему на API Telegram, создавать устройства, предусмотрев масштабируемость и развитие проекта.

Читать далее

Таблицы nanoCAD, или Пуститься во все тяжкие

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

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

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

Читать дальше