Как стать автором
Обновить
-17
0
Антон Нехаев @nehaev

Пользователь

Отправить сообщение

private LocalDateTime createdAt;

Это грубейшая ошибка, которая говорит о том, что вы не понимаете, как правильно использовать Java Time API, и даже не читали официальную документацию. А в ней вполне конкретно написано: "LocalDateTime is a description of the date, as used for birthdays, combined with the local time as seen on a wall clock. It cannot represent an instant on the time-line without additional information such as an offset or time-zone."

В вашем случае должно быть:

private ZonedDateTime createdAt;

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

Боюсь, все далеко не так просто и однозначно, как вы описали.

Во-первых, на момент разработки logback-appender'а нормальных внешних тулов для отправки Java-логов в Loki просто не было. Promtail и fluent-bit максимально криво парсили стандартный текстовый формат, особенно плохо было со стек-трейсами и записями, задержищими перевод строки. Давно не смотрел, что там с promtail, но у fluent-bit проблема сохраняется до сих пор.

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

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

Не скажу за все возможные аппендеры, но конкретно мой при тормозах или недоступности Loki не упадет и не будет тормозить приложение (или точнее сказать будет тормозить даже меньше, чем сторонняя тула для отправки логов, которая в любом случае ест сколько-то дополнительного CPU и RAM на ненужную сериализацию/десериализацию).

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

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

А что такое целый объект в вашем представлении? Можете привести примеры целых объектов?

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


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

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


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

Статья хорошая, спасибо! Но, как мне кажется, Шрёдингер в названии вообще не в тему.

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


С другой стороны, когда карма меньше -10, становится реально неудобно комментировать. Вот думаю, хочу я с этим что-то делать или нет.


Ну и раз уж мы тут раскрываем карты, то


вот

image


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

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


Уточнить, какая задача вообще решается.

Я проверяю на истинность два тезиса (которые уже формулировал выше):


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

Какую задачу решаете вы в этой дискуссии, и какие тезисы отстаиваете?


«Можно ли доверять остальным выводам в вашей статье, или они так же притянуты за уши — вопрос.» Это некорректный метод рассуждения

Ваше утверждение про некорректный метод — голословно. Свое про потенциальную притянутость за уши остальных выводов я могу обосновать. Автор статьи делает выводы о юзерах гитхаба (подписантах петиций), инфу о юзерах он берет из коммитов в репы, коммиты в одном случае взяты за несколько дней (в основном 23-25 марта), в другом — больше чем за месяц. Может он сравнивает не противников со сторонниками, а "вирусовиков" со "слоупоками". Т.е. сначала в обе репы набежали "вирусовики" из условного твиттера, а потом во второй репе выборку размыли "слоупоки", у который нет соцсетей в профиле. И всё, громкие выводы о социологии подписантов можно сливать в унитаз. Как минимум, эту гипотезу можно проверить.


Прикинуть, насколько поменялись бы результаты, если бы ограничения были позже или вообще бы не были

Я призывал не просто "прикинуть", а натурально пересчитать и проверить. Напомнить ваш ответ на это?


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

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


поэтому можете дать прямую цитату, если вас не затруднит

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


  1. вы не писали что незачем пересчитывать?
  2. вы не называли одну из сторон клоунами?
  3. вы не выражали симпатии одной из сторон?

сами совершают куда более серьёзные когнитивные ошибки. Я просто нахожу это довольно смешным.

Мне очень интересно, что за ошибки. Если можно, напишите списком, посмеемся вместе.

Мне было непонятно, является ли это какой-то принципиальной проблемой джавы, или это просто особенность реализации в Logstash?

Поэтому сейчас мы примерно в 100 раз быстрее Java, что более-менее приемлемо, но все равно недостаточно.

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

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


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

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

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

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

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


Чтобы не быть голословным, приведу пример, где лично вы говорите лично мне, что не надо пересчитывать некорректно полученные результаты в статье, претендующей на научность, потому что лично вы и без этого знаете, кто здесь клоуны, а кто — правильные пацаны.

Т.е. это хороший механизм обучения человека искусству коммуникации. А плохо обучаемые отсеиваются. Прекрасный механизм самоорганизации и поощрения гибкости ума.

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


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

К сожалению, это до сих пор самый действенный механизм борьбы со спамом или просто низкокачественным материалом.

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


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


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

единая система сборки позволяет одной командой собрать и java код и C++ либы для биндингов например

Единая система сборки — это как швейцарский нож: и нож, и отвертка, и открывашка. Но я ни разу не видел продавца колбасы в магазине, который бы резал ее швейцарским ножом, или сборщика мебели, который бы закручивал бы шурупы швейцарским ножом.


Даже если вдруг человек работает одновременно над java и cpp частью (что вряд ли сильно распространено), то наверное он и так знает как собирать эти проекты стандартными тулзами одной командой через &&. А если он работает только над java, или только над cpp, зачем вообще ему собирать что-то, на что он не может повлиять и починить? Для этого обычно есть CI, которому вообще все равно, одна команда для сборки или пятьдесят.


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

Очень сомнительно, что они есть в большинстве программ.

Я сужу по тем, которыми сам пользуюсь каждый день: Ubuntu, Firefox, VsCode, DBeaver — это то, что сходу приходит в голову. По-моему, все это достаточно популярные штуки, и не похоже, что кто-либо парится о том, что в них проверяются обновления.


Во‐вторых, для отправки ошибок обычно просто оставляют где‐либо ссылку на bug tracker

Мне тоже не нравится функция отправки логов или краш-дампов в облако, но объективности ради, в Audacity это сделано opt-in, т.е. юзер должен дать явное согласие на отправку. Так же как в Ubuntu, например.

А в чем вы видите плюсы монорепы с одной (похоже еще и кастомной) системой сборки для всех проектов? Не проще ли иметь репозиторий под проект и стандартную систему сборки для него, например maven/gradle для Java, npm/yarn для JS?

Что за система сборки? Не bazel случайно?

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность