Портрет 4X_Pro
Был в Сети 21 апр. 2024 г., 21:16
Мультиблог
4X_Pro
Кратко о себе: Web-разработчик. Пишу на PHP, Python, JavaScript. Знаю Ruby и Go, со студенческих времён более-менее помню C и asm. Сейчас специализируюсь на ускорении загрузки сайтов и разработке ботов для Telegram. Linuxоид (использую Debian+LXDE). Сторонник IndieWeb.

Социальные сети


Новости сайта в Telegram

t.me/4x_pro

О Сети и о жизни

Эффективный менеджмент в IT и его последствия

Нет 10geek

Предисловие

Речь пойдёт об одной из самых наболевших для меня (и, уверен, не только меня) тем в компьютерной области. О том, почему та область, которой я посвятил чуть ли не всю жизнь, начиная лет с 6-7, теперь уже вряд ли когда-то будет для меня основным источником дохода. В этом тексте я не преследую скрытых целей — поумничать, возвыситься над кем-то, оклеветать кого-то и т. п. Единственная его цель — в исчерпывающей и максимально доходчивой форме передать суть проблемы, с которой я лично столкнулся и в которой я вижу угрозу для себя. Голословные утверждения в духе «ты не прав» или «ты ничего не понимаешь» в качестве контраргументов не годятся, отрицание проблемы никак не поможет её решить.

DESCRIPTION

«Наша главная задача —
Молотьба и хлебосдача.
Хочешь быть передовым —
Сей квадратно-гнездовым!»

Коротко о хорошо забытых старых "универсальных" методах

Современные подходы в IT построены на вере в возможность существования некоторого набора шаблонных, но при этом универсальных методик, с помощью которых можно одинаково быстро и качественно решать любые задачи, независимо от нюансов задач и субъективного удобства методик для конкретного разработчика. То есть, методы решения задач фиксируются, вместо того, чтобы подгоняться под обстоятельства. Однажды мне дали на доработку сайт-одностраничник, сделанный «на Bitrix», который фактически состоял из index.html, одного JS-файла и таблицы стилей, а Bitrix, видимо, стоял для успокоения заказчика, который захотел «сайт на Bitrix», потому, что слышал, что это круто. Когда я смотрю на модные фреймворки, методики и прочие best practices, и то, с каким фанатизмом эффективные менеджеры пытаются в них впихнуть невпихуемое — всю разработку со всей её нешаблонностью, будучи уверенными, что лучше специалиста знают, как надо, превращая это в обязаловку фактически под угрозой для специалиста остаться без работы в случае его несогласия, у меня возникает ассоциация с фразой «прокрустово ложе».
Прокрустово ложе — ограничения или узкие рамки, под которые насильственно подгоняют не вписывающиеся в них явления, в ущерб чему-то существенному (по имени легендарного древнегреческого разбойника Прокруста, который укладывал захваченных им жертв на свое ложе и обрубал ноги тем, кто оказывался длиннее ложа, а тем, кто короче, вытягивал их).
Не это ли мы наблюдаем в современном IT? Только здесь ради прихотей дефективных менеджеров вытягиваются размеры, сложность и время разработки программы (включая время на изучение новых фреймворков) ради того, чтобы она была сделана на модном фреймворке по модным методикам, в ущерб её простоте и надёжности, а разработчику вместо рук и ног обрубается возможность пользоваться своими инженерными способностями, что тоже делает его в некотором смысле инвалидом. Теперь от разработчика больше не требуются его главные сильные стороны, которые раньше всегда его выручали — изобретательность и инженерное мышление, позволяющие находить наиболее удачные варианты реализации и просчитывать в уме её детали. Зато требуется идеальная память, повышенные работоспособность и стрессоустойчивость, чтобы бесконечно изучать новомодные фреймворки и методики, умение и желание бесконечно подстраиваться под них, бороться с их ограничениями и непродуманностью, делать костыли и кастомную логику там, где требуемая функциональность в их прокрустово ложе не вписывается. Теперь программисту можно похоронить все свои знания, умения и наработки, которые он нарабатывал лет 10-20. В реалиях современного IT они ему уже мало чем помогут, а за их использование его будет судить святая инквизиция в лице начальства и коллег. Как это он, инакомыслящий вероотступник, посмел сделать что-то по-своему? Неужели он возомнил себя умнее всех? И как же теперь будут разбираться в его коде другие разработчики, привыкшие делать всё по шаблонам и шарахающиеся от всего, что сделано не по ним? Вы не хотите идти в ногу с цивилизованным миром и использовать современные фреймворки? Вам они неудобны и только отнимают время и нервы? Значит, вы плохой разработчик, вы нам не подходите, увольняйтесь.

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

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

Свои библиотеки и микрофреймворки, которые я писал для себя, выполнены в соответствии с принципом KISS, то есть максимально простым и надёжным способом, с минимумом зависимостей от чего бы то ни было: дополнительного софта, каких-то пакетных менеджеров, Docker — в общем, всего того, что не обязано быть в системе из коробки и в чём конечный пользователь не обязан разбираться. Языки программирования я предпочитаю такие же. Это значительно снижает вероятность багов, повышает общую надёжность системы и облегчает отладку (без поисковиков и StackOverflow). А главное — экономит время, позволяет в процессе разработки освободить ресурсы своего мозга и направить их полностью на задачу, так как не требуется учитывать множество нюансов языка и фреймворка, соблюдать тщательно вызубренные сотни правил и формальностей (вплоть до требований к количеству комментариев в коде), боясь что-нибудь не учесть и чувствуя себя как на минном поле. Число Миллера, примерно соответствующее объёму кратковременной памяти нашего мозга, не такое уж и большое и в среднем равно 7 ± 2 элементам. Вместо того, чтобы думать обо всех этих формальностях, куда полезнее думать о более важном — что нужно учесть, чтобы не допустить багов, какие фрагменты кода в каких ситуациях как себя могут повести и могут ли привести к уязвимостям. А ещё я всегда исхожу из того, что, решая проблему, надо при этом не создавать другие. Если решая проблему ты создал другую (которую потом тоже придётся решать, тебе или кому-то), то суммарно ты ничего не улучшил. Эх, если бы в IT все этим руководствовались…

Отдельно стоит отметить явную избыточность слоёв абстракции в современном софте, к которой привела чрезмерная увлечённость фреймворками и готовыми решениями (которые в свою очередь тоже используют готовые решения, и так далее по рекурсии). Когда программа делает то же самое, что её аналог 15-летней давности, но при этом жрёт в десятки раз больше. Наглядный пример: мой Atom с плагинами занимает 431 МБ памяти, тогда как Geany (тоже с плагинами) — 7 МБ. Всё, чего мне не хватает в Geany — это несколько курсоров и сниппеты, как в Atom, в остальном же эти редакторы не сильно отличаются по функциональности. Или какой-нибудь современный интернет-магазин, у которого одна страница прогружается несколько секунд (около 750 запросов), требует процессор минимум уровня Core i3 для более-менее приемлемой производительности и хотя бы гигабайт свободной памяти. Тогда как раньше того же самого хватало для запуска нескольких экземпляров какой-нибудь 3D-игры. Если сравнивать, как было и как стало, то это можно назвать разве что усложнением, но не прогрессом.

Итак, что мы видим в итоге? Во сколько раз современные фреймворки и методики упростили разработку, во столько же раз и усложнили её, вынуждая бороться с их ограничениями и сложностью. Во сколько раз увеличились объёмы памяти, производительность современного железа и скорости передачи данных, во столько же раз уменьшился и КПД современного программного обеспечения, компенсировав улучшения в железе. А по итогу мы решаем те же задачи и за то же время, что и 20 лет назад, только другими путями. Похоже на «Тришкин кафтан», о котором Крылов писал более 200 лет назад, не так ли? Но мало кто это замечает, все привыкли и уже мало кому это кажется чем-то ненормальным. Сюжет антиутопической комедии «Идиократия» уже не кажется таким смешным и всё более становится похожим на пророчество…

SEE ALSO

Мир школы и мир улицы

4X_Pro
В Интернете есть немало мемов про отличников и двоечников (или троечников), в частности, о том, что после школы они меняются ролями, и первые начинают работать на вторых. Однако известно, что в реальности средний балл школьных оценок влияет на дальнейшую жизнь незначительно. Бывают и троечники, которые всю дальнейшую жизнь остаются исполнителями простых задач, и отличники, которые добиваются многого.
И всё же персонажи из подобных мемов вполне узнаваемы и в реальной жизни. Только, чтобы не было путаницы, уместнее «отличников» называть «людьми мира школы», а «троечников» — «людьми мира улицы». Так будет проще понять, в чём же заключаются ключевые отличия между ними.

Свобода и ответственность

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

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

Оценка и результат

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

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

Взаимодействие с окружающими

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

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

В чужом мире

В любой исторической эпохе, любом социальном слое и даже отдельно взятом коллективе всегда преобладают порядки и ценности одного из этих двух миров. Ценности «улицы» обычно побеждают в больших городах (особенно торговых), в то время как ценности «школы» — в традиционных обществах и деревнях. Также «миром школы» всегда были монастыри (и церковь в целом как организация), академическая среда, государственная служба и армия в мирное время. А на уровне целого государства самой масштабной реализацией «мира школы» следует считать СССР с шестидесятых годов и до Перестройки.

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

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

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

Кстати, продолжающиеся до сих пор в Интернете споры на тему, было ли в СССР хорошо или плохо — это во многих случаях как раз результаты столкновения ценностей «людей школы» и «людей улицы». У первых в СССР было главное — чёткая и однозначная система оценки: разделяемые большинством представления о том, как надо жить, к каким целям стремиться, какими путями их достигать. И ради этого можно было примириться и с недостатками тогдашней жизни вроде очередей или хамства в сфере обслуживания. А вот вторым это совершенно не нужно, им нужна свобода в том понимании, о котором говорилось выше.

Заключение

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

Хватит социальных сетей, давайте строить сообщества!

4X_Pro
Недавно на сайте agouti.ru попалось такое определение различий социальной сети от сообщества со ссылкой на работы некоего Michael Wu из community.khoros.com :

Evg написал(а):
В социальной сети люди сочетаются с заранее установленными межличностными отношениями, такими как родство, дружба, одноклассники, коллеги, деловые партнеры и т.д.
«Я» главный и все строится вокруг этого. См. рисунок.

Сообщество держится вместе на общих интересах. Там на первое место выходит тематика и вклад в это.
Первое отличие, — фокус. Это тянет «последствия»


На практике провести границу по такому признаку может быть очень сложно. Взять хотя бы Professionaly.Ru или LinkedIn. Исходя из этого определения, это сообщества или соцсети?
На мой взгляд, принципиальное и легко формализуемое различие между сообществами и соцсетями заключается в другом — в наличии или отсутствии публичного пространства. Что это такое? Публичное пространство можно определить как «то, что могут увидеть все участники сообщества, не прибегая к поиску и заходу в чужие профили». Обычно это лента последних сообщений, список групп, разделов или хештегов, подборка избранных материалов и т.п. И самое главное, у нового пользователя есть возможность и самому оказаться в этом публичном пространстве, написав качественный материал. Тогда как в социальной сети только что зарегистрировавшийся пользователь и сам не увидит ничего, кроме разве что рекомендаций от алгоритмов, и для других останется незамеченным.

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

Но увы, разработчики этого не учитывают. Существует много попыток создать клоны обычных социальных сетей (иногда с добавлением децентрализации), например, OpenVK, Friendica, Diaspora*, Only One. Но почти нет движков сообществ с открытым исходным кодом, которые по возможностям были бы сопоставимы с Habrом или Pikabu. С очень большими натяжками к таковым можно отнести разве что InstantCMS и Anahita Project.
Поэтому обращаюсь ко всем, кто хочет попробовать себя в разработке подобного: давайте строить сообщества, а не социальные сети!

Зачем в современном мире личный сайт?

4X_Pro
Недавно в одной переписке зашла речь о том, что в 2000-ые годы иметь собственный игровой сервер для Quake или Counter Strike, личный сайт или даже просто Email на собственном домене было признаком крутизны и продвинутости, а сейчас это никому не интересно. Складывается впечатление, что в современном Интернете люди меньше стали уделять внимания тому, чтобы самовыразиться, проявить себя. Это заставило задуматься над вопросом, зачем вообще сейчас может потребоваться личный сайт тем, кто не занимается «продвижением личного бренда» и прочей маркетинговой ерундой.

Сайт как инфохаб

Раньше я исходил из концепции сайта-инфохаба — персонализированного аналога «портала» времён раннего Интернета. На таком инфохабе, с одной стороны, собирались бы все важные для его владельца потоки входящей информации (через импорт RSS и тому подобных форматов), с другой — владелец публиковал бы весь свой собственный контент, возможно, с последующей автоматической пересылкой в социальные сети. Такой сайт позволял бы избежать «цифровой фрагментации», когда фотографии лежат где-нибудь в Instagram, проекты — на GitHub, личный блог — в ЖЖ или Diary или на стене ВК, и всё это никак не связано между собой. Также инофхаб мог бы быть местом сбора тех друзей, у которых своих сайтов нет. И конечно же, личный сайт давал чувство собственности, полного контроля над небольшим кусочком собственного пространства с возможностью самовыразиться без ограничений, присущих соцсетям. Тут можно привести такую аналогию: страничка в соцсети — это съёмная комната в коммуналке, где владелец не позволит ничего переделать и вообще может выселить в любой момент, а личный сайт — это собственный дом, где ты — полноправный хозяин.

Увы, с ростом популярности мессенджеров и смартфонов всё пошло не так. Роль хаба для входящих информационных потоков взяли на себя ленты социальных сетей и Telegram, а RSS стал терять свою популярность. Из-за всеобщей перегруженности информацией даже близких друзей становится всё сложнее вытянуть из мессенджеров к себе на сайт. А когда для крупных площадок (например, того же ЖЖ) появились специализированные приложения, оказалось, что и просматривать, и создавать материалы на мобильном устройстве удобнее именно в них, а не в броузере. И главное, в большом сообществе контент увидит гораздо большее число пользователей, чем на личном сайте.

Сайт как личный архив

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

В англоязычном Интернете уже почти почти десять лет существует движение под названием IndieWeb. Одна из его ключевых идей — «владей своими данными на своём сайте», для чего используются подходы POSSE и PESOS, аналогичные тому, что я описал выше. В рамках этого движения создано несколько протоколов, которые позволяют независимым сайтам взаимодействовать как узлам децентрализованной социальной сети. С их помощью можно получать уведомления об ответах с упоминанием, лайках и репостах, а также использовать свой сайт для авторизации на других ресурсах аналогично входу через аккаунты социальных сетей. Более того, активисты IndieWeb создали CMS под названием Known, в которой всё это реализовано изначально.

Автоматизация сбора данных

Один из упомянутых протоколов, MicroPub, предназначен для публикации контента. Его использование даёт возможность автоматизировать перенос на свой сайт-архив контента из социальных сетей или популярных площадок. Есть два способа это сделать. Простой, но ограниченный — это сервисы типа IFTTT или Zapier, которые умеют отслеживать событиях на большинстве крупных площадок, например, публикацию новых твитов, фотографий в Instagram или создание репозиториев на GitHub. Второй вариант, более сложный, но гибкий — применить self-hosted решения, например, Huginn или n8n, для которых можно писать скрипты-агенты самому, с учётом специфики своих потребностей.

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

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

О мышлении инженера и бизнесмена

4X_Pro
Уже не раз упоминал про разницу в мышлении «инженера» и «бизнесмена». Более того, одно время в статусе ВК стоял девиз «Мысли как инженер, а не бизнесмен». Но только недавно, прочитав Telegram-канал «Индекс дятла», который ведёт человек с ярко выраженным мышлением «бизнесмена», я смог описать эти различия в виде достаточно простой системы.
Начнём с того, что в основе любой деятельности лежит три вопроса: «Что мы хотим сделать?», «Как мы будем это делать?», «Для кого мы это делаем?».
Мышление «инженера» работает так: выбрать достойную/важную/интересную задачу и перебирать возможные пути её решения, пока не найдётся приемлемое. При этом вопрос «для кого» несущественен, если он не накладывает какие-то дополнительные условия на постановку задачи. Иными словами, «инженер» фиксирует для себя вопрос «Что?», занимается творческим поиском в вопросе «Как?» и рассматривает как второстепенный вопрос «Для кого?».
«Бизнесмен» подходит иначе. Для него отправной точкой является не задача, а люди — потенциальные клиенты, покупатели, то есть целевая аудитория, обладающая платёжеспособным спросом. Как было сказано на уже упоминавшемся канале: «Сначала найдите клиентов, а потом придумывайте, что бы им продать. Не наоборот.» То есть получается, фиксирован вопрос «Для кого?», зоной творческого поиска является вопрос «Что?», а второстепенным вопросом — «Как?». Собственно, именно в таком различии в отношении к вопросу «Что?» и заключается ключевое непонимание между «инженером» и «бизнесменом».
И тут возник вопрос: возможны ли другие сочетания? Например, для кого может быть характерно мышление с фиксированным «Как?» и творческим поиском «Для кого?»

Сообщество, управляемое тегами

4X_Pro
На Интернет-сайтах информация обычно систематизируется одним из трёх способов. Первый — владелец сайта изначально создаёт некую структуру — набор разделов или категорий, в которые можно писать. Типичный пример — форумы и коллективные блоги. Второй — использование системы хеш-тегов, как в Twitter и Instagram. И третий — это возможность создавать пользователям свои группы по интересам (как ВКонтакте). Бывают также попытки совместить несколько способов, но, как правило, это не работает. У каждого из этих способов есть свои преимущества и недостатки.
Структура позволяет организовать иерархию тем, но у неё отсутствует гибкость. Владелец сайта, создавая её, может что-то не предусмотреть или же, наоборот, какие-то разделы будут малоактивными, что демотивирует новых пользователей писать там. Кроме того, часто бывают темы, которые уместны в нескольких разделах, и приходится делать выбор. Главным же преимуществом структуры является то, что структуру можно вывести на главной странице или в меню, и всем сразу будет видно, что вообще можно найти на сайте.
Хеш-теги решают проблемы структуры, но имеют другой недостаток: не позволяют упорядочить информацию иерархически. По популярным тегам её слишком много, и она достаточно разнородная, а редкие — просто не попадают в область видимости пользователя в крупных сообществах. Кроме того, на таком сайте обычно получается малоинформативная главная страница: всё, что на ней есть — это облако тегов и несколько последних сообщений без какого-либо упорядочивания, что ведёт к ориентации на сиюминутность. Кроме того, сами пользователи не всегда указывают теги к своему контенту.
И, наконец, главный недостаток третьего способа организации — пользовательских групп — ведёт к тому, что они разобщают пользователей вместо того, чтобы объединять их усилия. Появляется много мелких групп одинаковой тематики, в каждой из которых сидит один-два эксперта. Хороший пример подобного — соционические сообщества ВКонтакте.
В предыдущей заметке я размышлял над тем, каким должно быть сообщество, которое могло бы возродить дух Старого Доброго Интернета в наше время. Изначально предполагалось, что в нём будет сочетаться первый и третий способы организации: множество групп, но создаваемых централизованно владельцем. Но во-первых, это путь к негибкости сообщества, «стеклянным деревьям», во-вторых, не очень понятно, как в такой формат вписать возможность вести личные блоги. В итоге пришёл к выводу, что теги являются более удачным решением, но с некоторыми усовершенствованиями. По сути дела, каждый тег должен приводить к автоматическому созданию аналога группы, где будет возможно следующее:
  1. Будет список других тегов, которые встречаются в статьях, доступных по выбранному. Если вспомнить пример из предыдущей заметки, то, скажем, при заходе на тег #астрономия можно будет увидеть теги #солнечнаясистема и #экзопланеты. Это позволит организовывать двухуровневую иерархию, которой для большинства сайтов вполне достаточно.
  2. Можно будет посмотреть список пользователей, подписанных на данный тег, а также список активистов, писавших материалы по нему.
  3. Администрация сайта написать для любого тега вводный текст, который будет выводиться над статьями.
  4. Движок сайта может автоматически предложить наиболее подходящие теги с помощью методов машинного обучения, но окончательное решение остаётся за пользователем.
  5. Есть некоторые специальные теги, например #вопрос, или #личное, которые обрабатываются определённым образом.
  6. На сайте могут быть тег-модераторы, все полномочия которых сводятся к постановке/удалению тегов к материалам. Кроме того, обычные пользователи могут пожаловаться на некорректное использование тегов, и после определённого количества жалоб тег снимается автоматически.
  7. Статьи без тегов или с тегом #личное доступны только в профиле пользователей. Также в профиле выводится всё написанное пользователем в хронологическом порядке и список основных тегов: либо самых часто используемых, либо выбранных самим пользователем.
  8. Администрация сайта может отбирать теги, которые выводятся на главной, либо настроить вывод наиболее активно используемых за определённый период. Для одного-двух из них выводятся последние материалы сразу, для остальных — подгружаются через AJAX, если пользователь щёлкнет по соответствующему тегу.
Пожалуй, из всего, что я знаю на данный момент, к описанному ближе всего Mastodon. Главное, что меня в нём не устраивает — это то, что по сути, нет публичного пространства на главной странице: вместо неё сразу же попадаешь в профиль своего пользователя. Хотя внизу справа выводится блок «актуальное», но, на мой взгляд, этого явно недостаточно.

Размышления о Старом Добром Интернете

4X_Pro
Вчера пообщался с одной своей давней знакомой, которая внезапно стала ярой сторонницей приватности и мессенджеров вместо социальных сетей. Она даже меня стала призывать «закрой свои страницы и общайся в мессенджерах только с теми, кого лично знаешь», чем вызвала немалое раздражение. Впрочем, не она одна такая: уже давно наблюдаю тенденцию переноса в личку даже тех разговоров, которые уместны только на форумах/в группах, например, вопросы про соционику или по моим проектам. Но это заставило в очередной раз задуматься, куда делся тот Старый Добрый Интернет, где люди не боялись показывать себя и свою жизнь и легко начинали контакт с незнакомцами и публичные дискуссии. И, самое главное, можно ли вернуть это уж если не во всём Интернете, то хотя бы построить такое сообщество на отдельно взятом домене.
Я стал искать, чем же Интернет тогда отличался от современного, и выделил четыре ключевых признака:
1. Позитивный отбор за счёт сложности подключения. Компьютер в те времена был не у каждого, кроме того, требовалось приобрести модем или провести выделенку, да ещё всё это настроить. Всё это приводило к тому, что в Интернет выходили либо самые любознательные, либо те, кому он был по-настоящему нужен для каких-то целей.
2. Отсутствие коммерциализации или крайне ограниченные её возможности. Благодаря этому контент создавали только те, кто был по-настоящему увлечён чем-либо и горел желанием поделиться этим с окружающими, найти единомышленников для общения. Итог: контента было меньше, но он был качественней. И, что не менее важно, не было «перекормленности» информацией, из-за которой пропадает любопытство и тяга к познаванию нового.
3. Анонимное общение. В Старом Добром Интернете не было принято подписываться оффлайновыми именами (это даже было признаком отсутствия воображения). Это позволяло сформировать два совершенно разных круга общения: тех, кто знает вас под оффлайновым именем и под Сетевым, и не пересекать их между собой. При желании можно было пойти дальше: регистрироваться на разных сайтах под разными Сетевыми именами и не пересекать их круги общения. Именно такая управляемость кругом общения и делала людей более открытыми.
4. Отбор качеством вместо отбора раскруткой. Прежде на большинстве сайтов новые сообщения попадали хотя бы ненадолго на главную страницу или раздел «Новое». А во многих местах были разделы с лучшими темами. Это давало шанс любому, кто пишет интересно, быть замеченным и получить подписчиков. Сейчас такое осталось разве что на Яндекс.Дзен, и то в очень ограниченном виде.

Очевидно, что пункты 2—4 нетрудно воспроизвести и в наше время. С пунктом 1 несколько сложнее, так как непонятно, что использовать в качестве критерия позитивного отбора и как это автоматизировать. Самая же большая сложность в том, как собрать начальную критическую массу людей, которым близок дух Старого Доброго Интернета, чтобы сообщество не было мёртвым, и у новых пользователей была мотивация проходить отбор для попадания в него.

Кроме того, на мой взгляд, в таком сообществе пригодилось бы ещё несколько дополнительных ограничений. Во-первых, ограничение максимальной численности величиной где-то порядка 100 тысяч пользователей. Во-вторых, запрет на создание дублирующих друг друга групп, но с возможностью создания подгрупп, которые будут отображаться в главной группе. Например, в сообществе может быть только одна группа по астрономии, но у неё могут быть подгруппы «Астрономия. Солнечная система» и «Астрономия. Экзопланеты», которые отображаются в главной группе, но при этом управляются другими участниками. Это позволит объединять знающих людей вместо того, чтобы распылять их по мелким группам, как сейчас ВК. В-третьих (это автоматически следует из предыдущего пункта), владелец группы может быть сменён меритократическим голосованием. Из этого следует четвертый пункт: должны быть некие очки полезной активности, которые даются за публичную деятельность (публикацию материалов, написание комментариев и даже лайки) и уменьшаемые за общение в привате и неактивность. Ну и последний принцип — это отсутствие закрытых групповых чатов реального времени и всяких режимов friends only.

О Настоящих Компьютерщиках и IT-профессионалах

4X_Pro
Ещё двадцать лет назад, вскоре после Первого Подключения к Интернет, написал небольшую заметку под названием Моральный Кодекс Настоящего Компьютерщика. С тех пор, наблюдая за людьми на Хабре и других подобных ресурсах, обратил внимание, что есть и другая категория людей с чуть ли не противоположными ценностями, которые пришли в IT не потому что им интересно программировать, администрировать, тестировать или творить что-либо ещё в этой сфере, а просто зарабатывать. Хотя их уровень знаний и умений может быть не меньше, чем у Настоящих Компьютерщиков, подход и система ценностей при этом совершенно другая. Вот небольшая таблица, которая поможет понять разницу:
Настоящие КомпьютерщикиIT-профессионалы
Приходят в IT потому что им интересно знать, как всё это работает и творить что-то в этой области самимПриходят потому что IT-престижная отрасль, в которой хорошо платят
Выбирают специализацию (область деятельности, языки программирования и т.п.) исходя из того, что интересно им самимВыбирают специализацию из соображений «что будет востребовано рынком труда»
Изучают основы — общие принципы, базовые алгоритмы и протоколы, низкоуровневые APIИзучают инструменты, необходимые для решения конкретных задач — библиотеки, frameworks и т.п.
Из-за ориентированности на знание основ легко «перепрыгивают» на другой язык программирования или framework.Узко специализируются, меняют привычный набор инструментов только под влиянием требований рынка
Стремятся видеть картину целостно, с учётом всех уровней абстракций, для которых имеются знания (в идеале — от ассемблерных команд до интерфейса «человек-машина»)Пользуются только теми уровнями абстракции, которые нужны для решения поставленной задачи. На другие заглядывают только в случае «протечек абстракции».
Используют готовые решения только тогда, когда задача неинтересна или не хватает квалификации для её качественного решения, или же есть неизбыточное решение, которое их полностью устраивает.Стремятся к максимуму code reuse всегда и везде.
Конечная цель создания софта — пользование им приносит радость конечным пользователямКонечная цель создания софта — пользование им приносит прибыль бизнесу
Не жалеют времени на оптимизацию, чтобы сэкономить память и сделать приложение быстрымРуководствуются принципом «не оптимизируй, пока в этом нет явной необходимости»

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

Этапы развития Интернет-площадок

4X_Pro
Наблюдая за развитием нескольких крупных Интернет-площадок: ЖЖ, Блоги@Mail.Ru, ВК, Instagram, заметил, что каждая из них проходила несколько этапов:
  1. Этап всеобщей октрытости. На площадке преобладают обычные пользователи, которые пишту какие-то личные впечатления, легко комментируют или ставят лайки записям незнакомых людей, легко добавляют в друзья незнакомцев.
  2. Этап специализации. Блоги формата «я и мои впечатления» постепенно сменяются на менее личные и более тематические. Например, если на первом этапе преобладали блоги вида «посмотрите, какая у меня кошка и что я с ней делаю», то на втором этапе их начнут теснить (в плане активности и количества подписчиков) блоги формата «как содержать кошек такой-то породы».
  3. Этап коммерциализации. На этом этапе на первый план выходят блоги брендов, известных личностей или блоггеров, целенаправленно вкладывающихся в свою раскрутку. Если вспомнить наш пример с кошками, то это будут либо блоги производителей товаров для животных, либо известных заводчиков кошек (и хорошо если они будут писать их сами, а не с помощью нанятых специалистов).
  4. Этап деградации. Окончательно происходит четкое разделение на публичных личностей, о которых шла речь в третьем этапе, и обычных пользователей. При этом обычные пользователи общаются преимущественно либо с небольшим кругом своих давних знакомых, либо в комментариях в раскрученных блогах. В самых худших случаях — полностью закрывают профили. Новый человек, пришедший на такую площадку, остаётся просто никем не замеченным.
Вопрос только в одном: можно ли как-то создать достаточно крупную площадку, которая навсегда останется на первом этапе развития? Или же переход на следующие этапы — это прямое следствие роста площадки (и желания получить прибыль у её владельцев)?

О редизайнах

4X_Pro
Сегодня столкнулся со сменой дизайна ВК. Несмотря на то, что он не так ужасен, как тот, который был в 2016 году, всё же выглядит непривычно. Это заставило меня в очередной раз задуматься о том, как же бессмысленно человечество тратит иногда ресурсы. На многих сайтах редизайн делается каждые 3—4 года. Владельцы сайта тратят кучу денег, разработчики — кучу времени на бессмысленную работу, рядовые пользователи получают массу негативных эмоций из-за того, что не могут найти что-то на привычных местах и вынуждены тоже тратить на время и мозговые усилия, чтобы переучиться. И возникает вопрос: кто виноват зачем всё это нужно?
Ведь если исходить из того, что дизайн делается не столько для красоты, сколько для того, чтобы решать задачи бизнеса и его клиентов, то любой пользовательский интерфейс должен делаться, что называется, на века. И переделываться только в двух случаях: либо выявились какие-то очень серьёзные ошибки в интерфейсе, либо существенно поменялись сами задачи. В общем, могу сказать одно: если есть возможность не делать редизайн, не делайте его. Не усиливайте «эффект Алисы», когда нужно бежать быстро только чтобы оставаться на месте, не заставляйте мир меняться ещё быстрее, он и так слишком быстрый!

Страницы:
Задать вопрос

Здесь можно задать мне вопрос или спросить совета по любой теме, затронутой в блогах или на форуме. После того, как я отвечу, вопрос и ответ появятся в соответствующем разделе. Но не забываем, что я — сторонник slow life, поэтому каких-либо сроков ответов не обещаю. Самые интересные вопросы станут основой для новых тем на форуме или записей в блоге.
Сразу предупреждаю: глупости, провокации, троллинг и тому подобное летит прямо в /dev/null.