Search
Write a publication
Pull to refresh
145
10.9
Александр Рябиков @rsashka

Системный архитектор

Send message

«Программирование лучше секса»

Reading time7 min
Views19K


Эту фразу на заре своей трудовой деятельности я услышал от начальника отдела АСУ одного из Советских заводов, когда он предлагал идти работать к нему в отдел.

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

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

Кому интересно размышления о логическом обоснование поиска прекрасного в разработке программного обеспечения и в других технических дисциплинах, прошу под кат.
Читать дальше →

В подходе к математике столетней давности найдены новые ключи к разгадке природы времени

Reading time13 min
Views65K

Из законов физики следует, что течение времени – всего лишь иллюзия. Чтобы избежать такого заключения, нам, возможно, придётся переосмыслить реальность чисел с бесконечной точностью.



Если числа нельзя записывать бесконечными последовательностями цифр, то и будущее не предопределено

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

К примеру, в теории относительности Эйнштейна время переплетено с тремя измерениями пространства, и формирует гибкий четырёхмерный пространственно-временной континуум – "блок-вселенную", охватывающую прошлое, настоящее и будущее. Уравнения Эйнштейна описывают всё в блок-вселенной, как предрешённое с самого начала; изначальные условия космоса определяют, что будет дальше, и никаких сюрпризов не происходит – они только кажутся сюрпризами. «Для нас, верящих в физику, — писал Эйнштейн в 1955, за несколько недель до смерти, — различие между прошлым, настоящим и будущим является лишь упорной и настойчивой иллюзией».
Читать дальше →

Хватит уже бояться субъективно красивых решений в коде — вы же не роботы

Reading time4 min
Views14K


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

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

Отступы в Python — вариант решения

Reading time8 min
Views46K
В подавляющем большинстве языков, если во всем исходном тексте программы убрать все отступы, а затем применить автоформатирование, то программа останется полностью рабочей и при этом станет оформлена в едином стиле.

Казалось бы, в случае с Python такая операция не возможна.

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

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

Универсальное событие в Google Tag Manager

Reading time2 min
Views6K

Если вы отслеживаете множество событий и то и дело добавляете новые, вам приходится выполнять серию одних и тех же операций:


  1. Повесить событие на сайте.
  2. Создать в GTM триггер.
  3. Создать в GTM тэг отправки события в Google Analytics.
  4. Создать в GTM тэг отправки события в Яндекс Метрику.
  5. Если у вас собираются данные для ретаргетинга в Facebook и VK, то для каждого из них нужно создать в GTM еще по тэгу.

При этом количество сущностей в GTM растет и ориентироваться в них становится всё утомительней. (А еще GTM не резиновый и допустимое количество сущностей ограничено.)


Я придумал и внедрил решение, которое позволяет:


  • сократить рутину, избавляя от шагов 2-5;
  • не плодить тэги;
  • упростить управление событиями.

Нужно только один раз настроить несколько сущностей в GTM и больше вообще его не трогать при добавлении новых событий! Подробности по порядку.

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

Немного про устройство современного радио на примере HackRF One

Reading time11 min
Views96K
Приветствую, Habr!
Некоторое время назад в поле моего зрения очень часто попадало множество статей, видеороликов о теме SDR трансиверов. Тема представляет интерес и сегодня. Большой популярностью среди радиолюбителей и других, разного рода, «технарей» пользуются устройства HackRF One (и по сей день, несмотря на то, что данный трансивер появился на рынке довольно давно, и в настоящее время уже существует масса других вариантов SDR похожего плана, в том числе и более производительных). Практически во всех статьях этой тематики рассматриваются программные инструменты (как правило — работа с GNU Radio, описываются алгоритмы ЦОС и т. п.), приводятся практические примеры по захвату сигналов радиостанций, демонстрируется GPS-спуфинг, приём сигналов с метеоспутников и т. п. Hack-RF One используется как некая универсальная «коробочка», позволяющая делать множество интересных вещей. Достаточно иметь небольшой опыт в программировании и общее понимание о том, что такое цифровой сигнал – в принципе порог вхождения для самых простых экспериментов с SDR преодолен. На самом деле это, конечно, здорово.
Но среди множества статей пока не встречал ни одной, где бы внимательно рассматривалось «железо» этого приемопередатчика, где более или менее подробно анализировалась его схема (если Вы встречали, дайте, пожалуйста, ссылочку в комментариях).
Более того, настораживает некая пренебрежительность к этому вопросу со стороны «пользователей» этого и других подобных модулей-трансиверов. Во многих популярных статьях проскальзывает, что приемник/передатчик SDR – это:

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

Новая лицензия для приложений в Open Source Initiative — разбираемся, почему ей довольны не все

Reading time3 min
Views2.6K
Лицензию назвали Cryptographic Autonomy License. Процесс одобрения был долгим и сопровождался жаркими дискуссиями внутри OSI. Часть сотрудников посчитала, что лицензия нарушает принципы открытого программного обеспечения. Из-за разногласий организацию даже покинул её сооснователь Брюс Перенс. Разбираемся, что к чему в этой в ситуации.

Что еще у нас есть на Хабре: материалы об истории DNS, регулировании ИТ и сетевом железе.

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

API Тиньков.Инвестиции. Первые шаги

Reading time5 min
Views159K
Практически с первых дней я стал клиентом Тиньков.Инвестиции.

И с этого же момента меня терзают смутные сомнения — отражает ли личный кабинет объективную реальность?

Дело в том, что я покупаю ценные бумаги, номинированные в долларах, но в ЛК цены всех активов отображаются в долларах, а итоговая стоимость портфеля в рублях.

И мне непонятно, это доллар вырос или я такой результативный инвестор?

А как же комиссии, налоги и прочие дивиденды?

Вот бы взять все мои сделки и расписать по ФИФО, как в складском учете… А сверху положить полученные дивиденды, а потом вычесть налоги.

Вот тогда я и увижу понятный мне результат.

Оказалось, у Тинькова есть API, которое позволяет писать торговых роботов (мне это совсем не интересно), а также загружать данные по своему портфелю и операциям.

У этого API есть официальное описание, но мне не все было понятно, пришлось разбираться.
Результаты этих разборок представляю вашему вниманию.

Полезные ссылки:

Описание API
Еще описание
Читать дальше →

Самый доступный метод автоматизации штор

Reading time4 min
Views39K


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


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

Тестирование «переплетением» – в 100 раз быстрее АБ теста

Reading time6 min
Views13K
А/Б тестирование – один из основных инструментов продакт менеджмента, пока еще не придумали более надежного и дешевого способа достоверно оценить влияние одного конкретного изменения на бизнес-метрики продукта, изолировав его от всех остальных факторов.

В этой статье я хочу рассказать об альтернативном методе тестирования изменений в продукте: тестировании переплетением, в англоязычной литературе – interleaving testing. Чтобы раскрыть его достоинства и недостатки, мы будем частно сравнивать его с традиционным A/B тестом, но не потому что это какой-то новый более совершенный способ, который быстрее и точнее, и должен заменить собой A/B тесты. Это дополнительный инструмент для менеджера продукта с другой областью применения и отвечающий на другой вопрос, сравнение просто позволяет легко показать, в чем отличия и сильные стороны тестов переплетением.

Краткое содержание:

  • Почему переплетение быстрее A/B теста
  • Когда можно применять тест переплетением
  • В чем отличие результатов A/B теста и переплетения
  • Как комбинировать сильные стороны переплетения и A/B теста
Читать дальше →

Посещаемость с Яндекс десктопа упала: что произошло в 2019 и как это повлияет в 2020

Reading time8 min
Views17K
Главная головная боль всех SEO оптимизаторов – найти причину, если трафик просел. Иногда это можно сделать довольно быстро, иногда приходится долго и по крупицам собирать информацию, оставляя длинные посты на форумах.

Одним из каналов, по которому было много вопросов от клиентов в 2019 году, стал органический трафик с Яндекс десктопа. Снижение трафика зафиксировали как информационные, так и коммерческие сайты по брендовым и небрендовым запросам: интернет-магазины, сайты услуг, информационные сайты. При этом сайты не теряли позиции и не попадали под фильтры поисковых систем. Причина падения трафика была неочевидна. Ниже список факторов, которые удалось выявить в ходе работ. Эти факторы могут влиять не только на десктопный Яндекс-трафик, но и на все ПС.
Читать дальше →

Лайфхак для быстрого попадания в Zero-click поисковой выдачи

Reading time4 min
Views4.2K
На просторах Хабра встретилась статья: Zero-click выдача и On SERP SEO: как попасть на нулевую позицию в Яндексе и Google, в которой говорится о попадания не просто в ТОП, а прямо на самую нулевую позицию поисковой выдачи. А так же приводится внушительный список рекомендаций SEO активностей, чтобы достичь желаемого результата.

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

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

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

YouTube — Ошибка. Повторите попытку позже. Идентификатор воспроизведения: <...>

Reading time3 min
Views256K


Чуть больше месяца назад стал замечать, что почти каждая попытка посмотреть видео с YouTube на десктопном компьютере начинается с сообщения об ошибке.

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

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

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

Семь известных всем неприятных правил жизни, которые мало кто учитывает

Reading time6 min
Views22K


Если вы не достигаете успеха, жизнь будет казаться несправедливой

Мы живем по сложным правилам. Причем эти правила бывают разные.

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

Большинству людей так и не удается освоить эти принципы — поэтому они делают одно и то же снова и снова, но ожидают, что результат почему-то будет другим. «Безумие!» — сказал бы Эйнштейн.

Переведено в Alconost
Читать дальше →

Стоит ли хранить Google Fonts на своём сервере?

Reading time22 min
Views24K
В последние несколько недель, по стечению обстоятельств на работе и в сторонних проектах, я узнал много о веб-шрифтах, а также много нового о Google Fonts в частности. Благодаря этому я могу дать более развернутый ответ на вопрос, который в прошлом мне казался простым: стоит ли вам хранить Google Fonts на своём сервере?

Говоря объективно, признаю, шрифты — не моя сильная сторона. Я предпочитаю более практичный подход и не зацикливаюсь на дизайне (посмотрите на этот сайт и убедитесь, что так и есть) и прежде не чувствовал необходимости в использовании нестандартных шрифтов. Конечно, они выглядят немного приятнее и «брендируют» текст. Но для основного текста толку в них мало. Я никогда не оценивал статью (или иначе относился к её содержанию), только потому что для её подачи использовался красивый шрифт. Тем не менее, мне было полностью понятно негативное влияние дополнительных шрифтов на производительность и скорость загрузки страницы, так что, возможно, из-за этого я предвзят.

Тем не менее, многие со мной могут не согласится, да и шрифты, важны они лично для меня или нет, регулярно используются многими другими разработчиками, и часто у них просто нет выбора. Давайте посмотрим, что можно сделать, чтобы и в скорости сайта не потерять, и дизайнеров довольными оставить.
Читать дальше →

Подделка screenlife. «Да я Мадонну лично знаю»

Reading time14 min
Views17K


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


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

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

Коммерциализация доработок свободного ПО под Copyleft лицензиями

Reading time7 min
Views7K
Я планировал начать эту статью с информации о том, что всегда существуют значительные сложности при попытках коммерциализировать доработки свободного программного обеспечения, а в качестве показательного примера привести ситуацию с проектом Redis.

Но потом понял, что ситуация с Redis (Redis вновь меняет лицензию) в качестве примера не очень подходит. И не только из-за адской смеси различных используемых в проекте лицензий, но и дополнительной путаницы, возникающей из-за толкования терминов Open Source и Свободное ПО.

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

Ведь цифры говорят сами за себя. Суммарная выручка облачных провайдеров за последний квартал 2019 года превысила $30 миллиардов долларов. Среди них лидер — Amazon (32.4% рынка), Microsoft Azure почти в два раза меньше (17.6%), далее идут Google Cloud (6%) и Alibaba Cloud (5.4%).

Тем не менее, для компаний меньшего размера, подобный бизнес как правило не достижим. Поэтому для них вопрос коммерциализации доработок свободного программного обеспечения под Copyleft лицензиями (такими, как GPL), может оказаться вполне актуальным.
Предлагаю вашему вниманию практический способ коммерциализация доработок свободного программного обеспечения под Copyleft лицензиями, в том числе применительно к законодательству РФ.
Читать дальше →

Что хочет знать Магнит о своих покупателях?

Reading time8 min
Views45K
С завидной периодичностью в новостях встречаются заголовки, связанные с различными утечками персональных данных:


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

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


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

Профиль мобильного геймера: исследование myTracker

Reading time3 min
Views5.4K


Команда аналитической платформы myTracker, разработанной в Mail.ru Group, исследовала поведение и привычки платящих мобильных геймеров в России. Эксперты составили портрет геймера и выявили связь ВВП и ROI игровых проектов в разных странах. Исследование основано на данных по 92 игровым приложениям.

Миллениалы — ядро аудитории и охотнее других платят в играх. Однако пользователи старшего возраста платят больше.

Доля людей, которые после установки игры начинают пользоваться платными опциями, выше всего среди аудитории в возрасте 25–34 лет.
Читать дальше →

Учёт собственных публикаций в таблице LynxReport

Reading time3 min
Views3.9K

Если вы используете публикации на различных сайтах и в СМИ как один из инструментов продвижения, то рано или поздно перед вами возникнет вопрос их систематизации. Тогда же появляется и обратная связь, которая обычно включает в себя:


  1. просмотры;
  2. комментарии с разным эмоциональным оттенком;
  3. сохранения (сколько пользователей этого сайта добавили материал в свои закладки);
  4. рейтинги (сколько пользователей этого сайта проголосовали за или против).


Если все ваши статьи размещены на одном ресурсе, то особых проблем с учетом не возникает. Вышеперечисленные показатели обычно сведены в админке (как на картинке ниже) и всегда можно наглядно оценить какая из собственных тем более популярна. У меня же публикации по одной теме часто «размазаны» по разным ресурсах, таких как Хабр, виси.ру, Medium, Яндекс Дзен и (если корректно отнести к публикациям) GitHub. И передо мной была проблема увидеть общую картину по проектам и темам «в одном окне».

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

Information

Rating
1,111-th
Location
Россия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer, Software Architect
Lead
C++
OOP
Linux
Programming microcontrollers
Embedded system
C
Qt
Software development