Страницы

Отрицательные просмотры

Из статистики просмотров блога проекта Восток. Кто-то явно отрицательный из браузера Другое делает отрицательные просмотры. Это технологии, которые мы заслужили.

А так, ПО бренда Другое - это наша надежда, которая пока ещё не умерла.

Повышение надёжности по модели проявления ошибок в коде

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

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

Геочаты для помощи по GNU/Linux

В начале года создал геочат в Telegram для помощи с установкой и настройкой GNU/Linux. Геочат - это всё ещё малопопулярная возможность известного мессенджера по созданию каналов общения, привязанных к местности. Для чата по Linux это хорошо тем, что позволяет без лишних хлопот на затратные перемещения оказывать помощь при личной встрече, что в ряде случаев многое упрощает.

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

Хочу призвать сторонников распространения свободной операционной системы:

  1. Найти в своей местности геочат для поддержки пользователей Linux и присоединиться к нему или создать такой, если его ещё не существует.
  2. Посильно участвовать в помощи пользователям как по чату, так и при личной встрече.
  3. Распространять информацию о таком способе поддержки, чтобы иметь возможность повысить вовлечённость обеих сторон.

Оболочка Unity в 2021

Удивительное дело - Unity, брошенная компанией Canonical 5 лет назад, всё ещё работает лучше и, в целом, удобней чем Gnome, на который перешла основная редакция Ubuntu. Доступна к установке командой:

/usr/bin/sudo apt install ubuntu-unity-desktop --install-suggests

Программирование с помощью языка, а не на языке

Часто можно услышать рекомендацию, что для качественного программирования нужно писать программу не на языке, а с помощью языка. В частности, такой совет даёт Стив Макконнелл в своей знаменитой книге «Совершенный код». Идея в том, что не обязательно использовать все те конструкции, которые предлагает язык, только потому, что они уже есть. И в то же время для выражения сути программы можно использовать понятия, которые отсутствуют в терминах самого языка, или же имеют некоторые отличия. Некоторые программисты идут ещё дальше и утверждают, что им всё равно, на каком языке записывать программу из-за применения этого принципа.

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

Два вида веры

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

  1. Верю, что так и есть
  2. Верю, потому что нравится

Порт 80 для сервера из-под пользователя

Как известно, по умолчанию, серверу, запущенному от обычного пользователя, недоступен 80-й порт. Если это всё же нужно, то несложно поправить, при чём, точечно:

/usr/bin/sudo setcap CAP_NET_BIND_SERVICE=+eip path/to/server

Частные решения в общей задаче

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

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

Распутать всемирную путанину

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

Препроцессорная бомба

#define A ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
#define B A A A A A A A A A A A A A A A A
#define C B B B B B B B B B B B B B B B B
#define D C C C C C C C C C C C C C C C C
#define E D D D D D D D D D D D D D D D D
#define F E E E E E E E E E E E E E E E E
#define G F F F F F F F F F F F F F F F F
#define H G G G G G G G G G G G G G G G G
#define I H H H H H H H H H H H H H H H H
#define J I I I I I I I I I I I I I I I I
#define K J J J J J J J J J J J J J J J J
#define L K K K K K K K K K K K K K K K K
#define M L L L L L L L L L L L L L L L L
#define O M M M M M M M M M M M M M M M M
#define P O O O O O O O O O O O O O O O O
#define Q P P P P P P P P P P P P P P P P

Q

Как вы думаете, текст какого размера порождает эта простенькая препроцессорная программа?