Pull to refresh
4
0

User

Send message

Право на ошибку. Деньги и методологии разработки в ИТ

Reading time16 min
Views7.4K

Есть много разных методологий разработки: Waterfall, Agile, Lean и другие. Ситуацию усложняют различные схемы оплаты разработки в ИТ. Что лучше: Fixed Price, Time&Material или взять людей на аутстафф? Человеку, далёкому от коммерческой разработки, бывает сложно разобраться что и когда стоит использовать. Чтобы помочь с этим разобраться, рассмотрим разные методологии и схемы оплаты с точки зрения работы с рисками и права на ошибку. Попробую писать простым языком, чтобы было понятно всем.

Читать далее

Компактный DIY Zigbee датчик температуры с e-ink дисплеем

Reading time6 min
Views15K

В сегодняшней статье хочу рассказать о новой версии миниатюрного датчика температуры и влажности с e-ink дисплеем. Этот проект является продолжением моего старого открытого ардуино проекта миниатюрного датчика температуры c e-paper дисплеем, который работал на nrf52810.
Читать дальше →

Правила перезаписи PostgreSQL

Reading time7 min
Views12K

Представления (Views) — это не совсем то, о чём вы можете подумать. В этой статье мы разберём правила перезаписи PostgreSQL, как они работают, что они могут и чего не могут делать.

Начиная с версии 10, PostgreSQL поддерживает концепцию правил перезаписи, которые позволяют изменять способ выполнения запросов.

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

Однако не стоит расслабляться — некоторые условности всё же есть. Например, эти правила перезаписи сильно отличаются от плагинов перезаписи MySQL и в целом являются более комплексными.
Читать дальше →

Цифровая свобода. Часть 1. Менеджер паролей

Reading time3 min
Views39K

Всем привет! Я хочу запустить цикл статей с инструкциями которые помогут, отвязаться от сервисов и вернут вам контроль над вашими данными. Тут будут представлены opensource аналоги сервисов, которыми все мы пользуемся каждый день и утилиты для бекапа ваших данных из цепких лап вендоров. Я не ставлю цель 100% уйти на опенсорс и селфхостед, всё таки сервисы должны быть удобными и доступными. Поэтому это не только полноценные аналоги, иногда это будут утилиты для бекапов. Главное это удобство, бесплатность и контроль над своими данными.

Читать далее

Сравнение эффективности поиска: Elasticsearch и конкуренты

Reading time5 min
Views22K

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

Читать далее

Разработка Z-Wave бесшумного выключателя и автоматизация на балконе

Reading time3 min
Views16K

Решился балкон переделать в рабочий кабинет. Фотографий ДО и ПОСЛЕ не будет, но я расскажу об автоматизации, которую там устроил. С самого начала планировал автоматическое управление теплым полом и освещением, а уже по окончанию ремонта решил добавить еще и сенсорную панель управления на стену. Устройства выбрал с технологией Z-Wave, но в процессе использования оказалось, что меня не устраивает функционал управления освещением. Пришлось разработать свой собственный выключатель на базе платы Z-Uno 2 и твердотельных реле Сrydom.
Читать дальше →

Основные инструменты Kubernetes в 2021 году

Reading time21 min
Views27K

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

В основе этого списка — мой личный опыт, и чтобы избежать предвзятости, я расскажу и об альтернативных инструментах, чтобы вы могли всё сравнить и принять решение, исходя из своих потребностей. Постараюсь дать информацию сжато и привести источники, чтобы при желании вы могли изучить всё самостоятельно. Описывая инструменты для различных задач разработки ПО, я хотел ответить на вопрос: «Как я могу сделать X в Kubernetes?»

Читать далее

Сборка собственного RPM-пакета, содержащего простую Go-программу

Reading time5 min
Views19K
Процесс развёртывания программ обычно состоит из множества этапов. Некоторые из этих этапов могут представлять собой довольно-таки сложные последовательности действий. В наши дни имеется широкое разнообразие инструментов, позволяющих создавать описания процессов развёртывания программ, которые можно воспроизводить на разных системах.

А именно, в мире Linux уже довольно давно существуют менеджеры пакетов. Например — это RPM и YUM. Они упрощают установку, обновление и удаление программ в Linux-системах. Собственно говоря, в этой статье я хочу рассказать о том, как создать собственный простой RPM-пакет, хочу показать, что это совсем несложно.



Надо отметить, что во многих организациях менеджеры пакетов используются лишь для установки программ, предлагаемых разработчиком используемого этими организациями дистрибутива Linux. Для управления развёртываниями собственных программ менеджеры пакетов не применяются. Тому, кто попытается собрать свой первый RPM-пакет, может показаться, что это не так уж и просто. Но обычно тот, кто учится создавать такие пакеты, тратит время с пользой. Дело в том, что соответствующие знания способны помочь ему в деле оптимизации его рабочих процессов. Здесь мы рассмотрим процесс создания RPM-пакета, содержащего простую программу, написанную на Go.
Читать дальше →

Задача выбора (назначения). Венгерский метод решения

Reading time5 min
Views7.7K

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

Читать далее

Как симулировать плохую сеть под Linux, macOS и Windows

Reading time3 min
Views26K

Clumsy 0.2

Все распределённые системы — базы данных, мобильные приложения, корпративные SaaS и так далее — следует разрабатывать с учётом сбоев. Например, компания Stripe во время тестов убивала случайные инстансы — и смотрела, что произойдёт. Компания Netflix рандомно уничтожала инстансы прямо в продакшне с помощью программы Chaos Monkey (проект Simian Army).

Симуляция сбоев — необходимое средство тестирования. Проблема в том, что ситуации не делятся только на чёрное и белое, Есть огромная «серая» зона, где сбои явно не выражены, а проявляются в плохих условиях сети: ненадёжное соединение, узкий канал, потери пакетов, высокая задержка, дубликаты пакетов и так далее.
Читать дальше →

Пудра для мозга или как сделать порошок для посудомойки в 9,7 раз дешевле

Reading time11 min
Views293K


Update
Новый вариант порошка и более подробный разбор во второй части: DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт

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

Есть очень много областей нашей жизни, где наше представление формирует исключительно маркетинговый буллшит. Увы, большинство людей даже не пытаются задумываться о том, что лежит в основе всего этого. Очень часто рыночная ситуация приводит к тому, что себестоимость продукта составляет 0.5% от его цены. Остальное маркетинг, наценки, логистика, упаковка и тому подобное. Почти все в курсе про концепцию продажи чернил для принтера по цене слез гималайских девственниц и настойчивые рекомендации производителей использовать только оригинальные расходные материалы. Например, совсем недавно меня озарило, что 1.5 грамма сухого вещества во флаконе удобрений для растений не могут стоить 200-250 рублей. А ведь именно такое количество может уместиться в относительно стабильном состоянии в виде раствора. Я сразу представил себе гектары полей и грузовики, которые везут тонны порошка. В результате перешел на расфасовки по 1 кг Буйских комплексных сухих удобрений. Можно ванну раствора приготовить.

Сегодня будем создавать ультра-дешевый порошок для посудомойки. Уменьшение реальной зарплаты и удорожание импортной бытовой химии заставило перерыть учебники, просмотреть кучу материалов с форумов химиков и попытаться найти способы экономии на расходниках. Очень уж ощутимо стал стоить порошок. Результаты вдумчивого исследования и экспериментов сильно удивили. Для промышленного применения чаще всего химиками-технологами создаются индивидуальные рецептуры в зависимости от качества воды и задач. Почему бы нам не попробовать разобраться во всем этом?

TLDR:

70% прокаленной соды и 30% стирального порошка вместо моющего средства.
Если очень лень возиться с содой, то просто порошок Биолан или его аналоги. Сода удешевляет.
Пищевая соль «Экстра» вместо соли.
Да начнутся адские эксперименты!

Оптимизация размера Go-бинарника

Reading time6 min
Views12K

image Если вы когда-нибудь писали на Go, то размер получающихся бинарников не мог пройти мимо вашего внимания. Конечно, в век гигабитных линков и терабайтных дисков это не должно быть большой проблемой. Но все-таки встречаются ситуации, когда хочется, чтобы размер бинарника был как можно меньше, и при этом вы не хотите расставаться с Go. О вариантах, как сделать так, чтобы Go-бинарник “похудел”, пойдет речь ниже.

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

Читаем QR код

Reading time5 min
Views1.1M
Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.
Читать дальше →

QR-художество

Reading time2 min
Views15K

На хабре уже обсуждалось устройство QR-кодов и украшение их произвольными рисунками, но дизайнерская мысль до сих пор работала только в двух основных направлениях: замена квадратных модулей на более интересные формы, либо замена части кода рисунком. Такие художества возможны благодаря тому, что блоки данных в QR-коде дополняются кодами Рида-Соломона, позволяющими восстановить до 30% искажённых байтов. Основываясь на этом, дизайнеры QR-кодов давно уже наловчились заменять участок, занимающий до 30% площади кода, какой-нибудь картинкой. Я же решил испробовать другой подход — художественно искажать в QR-коде отдельные биты в целях получения интересного изображения. Например, в этом коде инвертированы лишь 50 модулей из 841.

Читать далее

Создание favicon для сайта 2020

Reading time10 min
Views146K

Что такое favicon и для чего он нужен?


Favicon – это значок (иконка), который отображается во вкладке браузера, закладках, а также в сниппетах результатов поиска.

image

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

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

Какой формат использовать для favicon?


Раньше в качестве основного формата использовали ICO. Особенность данного формата – мульти-размерность. Данный файл может хранить в себе несколько размеров иконки. На смену ICO пришел формат PNG. ICO все еще поддерживаемый, но большинство современных браузеров выбирают PNG формат иконки, который легче. Некоторые браузеры не могут выбрать правильный значок в файле ICO, что приводит к неправильному использования значка с низким разрешением.

О каких платформах пойдет речь в этой статье?


  • Десктопные браузеры
  • Chrome на Android
  • Иконка закладки в iOS (PWA)
  • macOS
  • Windows

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

Выбираем флеш-карты: подробное руководство по разновидностям Secure Digital

Reading time10 min
Views61K


При выборе жесткого диска у «продвинутого» покупателя обычно не возникает особых проблем. Взять тот же WD6003FZBX на 6 ТБ: скорость вращения шпинделя 7200 оборотов в минуту, вместительный кэш в 256 мегабайт и наличие высокоскоростного интерфейса SATA III с пропускной способностью 6 Гбит/с красноречиво свидетельствуют о том, что перед нами высокопроизводительное решение, способное удовлетворить нужды как заядлых геймеров и энтузиастов, так и профессионалов. Единственный нюанс, который здесь необходимо учитывать, заключается в том, что показатель 6 Гбит/с — это пропускная способность самой шины: хотя скорость передачи информации из кэша в систему составляет 550 МБ/с, реальная скорость обмена данными между системой и накопителем для рассматриваемой модели достигает 227 МБ/с, что все равно является превосходным результатом для классических винчестеров. Впрочем, об этом и так знает практически любой технически подкованный пользователь ПК.

Когда же речь заходит о флеш-картах, в тупик может зайти даже бывалый админ. За примерами далеко ходить не надо: достаточно открыть страницу карты памяти SanDisk Extreme PRO UHS-I. Помимо привычных строк «скорость чтения: до 170 МБ/с» и «скорость записи: до 90 МБ/с», в спецификациях красуется таинственная надпись «скорость видео: C10, U3, A2, V30». Но позвольте, мы уже знаем скоростные характеристики продукта. Зачем нужны еще какие-то непонятные классы скорости, да еще и в количестве четырех штук? И в чем вообще состоит принципиальное отличие перечисленных показателей друг от друга? Именно в этих вопросах нам предстоит разобраться в сегодняшнем материале.
Читать дальше →

Zabbix: мониторим всё подряд (на примере Redis'а)

Reading time10 min
Views145K

Zabbix — замечательный продукт для администраторов крупных программно-аппаратных комплексов. Он настолько хорош, что может использоваться не только крупным бизнесом, но и средне-малым бизнесом, и даже в pet-проекте. В общем, у меня есть небольшой опыт работы с Zabbix'ом и я смело могу рекомендовать его к использованию.


Правда я не могу сказать, что понимаю "философию Zabbix'а". Несмотря на обширную подробную документацию на русском языке, мне было сложно погружаться в мир Zabbix'а — создавалось ощущение, что мы с разработчиками одни и те же вещи называем разными именами. Возможно потому, что Zabbix создавался админами для админов, а я всё-таки больше разработчик и пользователь.


Тем не менее, для запуска Zabbix'а и для мониторинга основных параметров компьютерных систем (процессор, память и т.п.) навыков обычного linux-пользователя хватает. Есть большое количество плагинов от сторонних разработчиков, расширяющих возможности Zabbix'а. Для моих нужд мне потребовалось настроить мониторинг Redis-сервера. Я немного покопался в коде имеющихся плагинов и на их примере выяснил, что архитектура Zabbix'а позволяет достаточно просто подключать к мониторингу любые параметры информационных систем, которые могут быть выражены в числовом виде.


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

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

Работаем с аудио: прогресс и визуализация данных

Reading time6 min
Views19K


Доброго времени суток, друзья!

Хочу поделиться опытом работы с аудио. Под «аудио» я подразумеваю HTMLAudioElement и Web Audio API.

Что будем делать?

Мы создадим нечто вроде плеера для одного трека (о полноценном проигрывателе — в одной из следующих статей).

Условия:

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

В сети полно материалов как по HTMLAudioElement, так и по WAAPI, поэтому я сделаю акцент на практической составляющей. Кроме аудио, мы будем работать с drag-drop и canvas.

Без дальнейших предисловий…
Читать дальше →

[кейс Locomizer] Как за два с половиной года ускорить расчёт тепловой карты в 20 000 раз

Reading time31 min
Views3.8K
Данная статья является продолжением серии «Кейс Locomizer», см. также


Здравствуйте.

КПДВ: TC, EMR, IDEA

Знаете, что такое «постмортем»? Это повествование о том, как мы дошли до жизни такой.

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

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

Данная статья — историческая вводная по One Ring. Кода в ней нет, и рассказ скорее популярный, чем научный. Зато только про разработку, и ни о чём другом, кроме двух с половиной лет разработки.
Погнали в Нуменор?

15 лучших и крупнейших библиотек иконок

Reading time3 min
Views40K


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

Сразу уточняем: это не 15 самых лучших библиотек, а 15 из лучших. Разумеется, есть и другие, не менее замечательные, о которых я не упомянул или не знаю.
И, нет, это не рейтинг — список маркированный, а не нумерованный.
Читать дальше →

Information

Rating
10,073-rd
Location
Самарская обл., Россия
Registered
Activity