• Как вы ведете документацию кода?

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

    Так говорят только про случаи типа:
    // Время до перегрева реактора в секундах
    var a = 42;

    return id % 3; // 3 - это количество наших серверов. Тут мы находим id нужного сервера, на котором хранятся данные

    В вышеназванных случаях комментарий не нужен и может быть заменён нормальным неймингом.
    В некоторых случаях комментарии можно заменить на нормальные типы.
    // ПЛОХО!
    /// <param name="time">Дата и в формате rfc2822</param>
    public void DoSomething(string time) {}
    
    // Хорошо!
    public void DoSomething(DateTime time) {}

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

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

    Если вашей команде документация действительно важна, то её нужно вносить в основной цикл разработки.
    Что-то типа
    Specification -> Design review -> Development -> Review -> Testing -> Documentation -> Release
    Тоесть нет документации - нет релиза. Нужно вносить роль технического писателя, который будет писать тексты и следить за актуальностью.

    которые автоматически показывали бы покрытие кода документацией.

    Код документацией покрывать не надо (по крайней мере так, как это обычно тестами происходит).
    А вот для покрытия методов и публичного api и так есть инструменты для проверки. Например в C# даже warning есть соответствующий.

    что-то похожее на TDD - когда ты пишешь документацию а потом код

    Ну так это и так должно быть в процессе разработки. Аналитик пишет спецификацию, ты, как разработчик, её дорабатываешь до уровня "это вот так лучше реализовать", потом по этой спецификации можно написать тесты и код.

    PS: Попробуй отталкиваться от того, кто будет эту документацию читать.
    1. Новые разработчики в твоей команде во время онбординга? Тогда проще C4 Diagram нарисовать
    2. Другие разработчики, которые хотят с твоим сервисом интегрироваться? Тогда и описывай протокол взаимодействия, примеры приложений, и имеющиеся публичные методы
    3. Техподдержка? Тогда лучше посмотреть в сторону базы знаний
    4. Пользователи системы? Тогда лучше отталкиваться от вариантов использования - инструкции, как сделать то или иное действие, обзоры разных модулей.
    5. Аналитик при продумывании новых фич? Тогда тут нужно что-то среднее между п1, п2, и п3.
    6. Никто? Тогда и не мучай бумагу.
    Ответ написан
    Комментировать
  • Как заставить работать обе видеокарты вместе над одним процессом?

    vabka
    @vabka
    Токсичный шарпист
    Это возможно только при условии, если такой сценарий предусмотрен драйверами твоих видеокарт, графическим API, и самой игрой.

    Сейчас такого нет ни в том, ни другом, ни третьем. Когда-то давно подобное можно было организовать при использовании процессора и карточки AMD через crossfirex

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

    Так что ответы:
    1. Сейчас нет.
    2. Только лишь перегрев
    3. Иногда да, а иногда нет.
    Ответ написан
    Комментировать
  • В чем разница между моделями OSI и TCP/IP?

    vabka
    @vabka
    Токсичный шарпист
    Модель - это способ классификации сетевых протоколов, а не какой-то стандарт.
    Просто набор слов, чтобы разные специалисты, говоря об одном и том же, использовали одни и те же слова.
    Потому вполне нормально, что при чтении статей о OSI и TCP/IP ты видишь упоминание одних и тех же протоколов.

    Различие у них лишь в количестве уровней и немного в их смысле.
    OSI считается переусложнённой (избыточной) и оторванной от реальности.
    TCP/IP - более простая и более близкая к тому, что ты можешь увидеть на практике (тк по сути закрывает глаза на экзотику, которая работает не на IP-стеке)
    Ответ написан
  • Нужен ли Сетевой уровень в локальной сети.?

    vabka
    @vabka
    Токсичный шарпист
    "уровни" в сетевой модели - это просто способ классификации протоколов в сетевом стеке.
    В рамках одной сети возможна маршрутизация по физическим MAC-адресам (именно на них работает протокол Ethernet, например, который в модели OSI считается протоколом Канального уровня).

    В рамках нескольких сетей адресация уже идёт по IP-адресам и используется уже IP-протокол.

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

    Протоколы уровней выше должны обязательно основываться на чём-то. Тот же TCP и UDP, например, обязательно строятся поверх IP-протокола, который принято считать протоколом сетевого уровня. => если ты хочешь в своей локальной сети использовать TCP, UDP или какой-то протокол, который строится поверх них (например HTTP, LDAP, IPP), то тебе обязательно придётся использовать протокол канального уровня в лице IP.

    Есть протоколы, которые вполне могут работать и без IP, но дома ты их у себя врядли увидишь)
    Ответ написан
    Комментировать
  • Под какой лицензией стоит выпускать программу, если спецификация к ней публикуется под лицензией CC-BY-SA?

    vabka
    @vabka
    Токсичный шарпист
    Допустим, я разрабатываю техническую спецификацию алгоритма и указываю лицензию CC-BY-SA.

    Авторским правом защищается только текст, но не алгоритм.

    Является ли программа, реализующая данную спецификацию, производной (по условиям CC-BY-SA)?

    Нет, не является.

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

    Тут уместна аналогия с шахматами.
    Спецификация - это всё равно что текст правил.
    Алгоритм, который эта спецификация описывает - это всё равно что сами правила игры (поле 8*8 из белых и чёрных клеток, и столько-то фигур, которые могут двигаться определённым образом.)
    Ответ написан
    Комментировать
  • Кто сейчас предлагает бесплатный Tier в месяц кроме Amazon AWS и Google Cloud?

    vabka
    @vabka
    Токсичный шарпист
    У Яндекса и MS тоже есть free tier, но учитывай что везде есть нюансы. Например балансировка нагрузки, трафик, и IP адрес часто идут платно
    Ответ написан
    Комментировать
  • Могу ли я отправлять сообщения от чужого имени с помощью telegram бота?

    vabka
    @vabka
    Токсичный шарпист

    API телеграмма

    Только тот API, который используется клиентами, а не ботами: mtproto.


    Можно ли использовать для этого AIOgram

    Нет, нельзя.


    Например мне нужно написать сообщение другому боту через бота

    Это звучит как что-то катастрофически неправильное. Скорее всего вашу задачу можно решить иначе.
    Ответ написан
  • Возможно ли роутеру задать нужный мне маршрут?

    vabka
    @vabka
    Токсичный шарпист
    1. Вручную задавать маршруты можно только на управляемых роутерах. И то это рекомендуется очень редко.

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

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

    В домашних роутерах, как правило, интерфейс только 1 => никакой возможности выбора производитель и не оставляет, тк выбора нет.

    3. Изменение маршрута при помощи VPN работает благодаря тому что в ДЦ, где стоит сервер VPN вполне может быть несколько линий связи и прямое подключение к магистрали, которого у твоего домашнего провайдера может и не быть.
    Ответ написан
    Комментировать
  • Почему в логах сервера пишет реальный ip адрес после CloudFlare?

    vabka
    @vabka
    Токсичный шарпист
    Потому что cloudflare скрывает IP сервера от клиента, а не наоборот.

    UPD: В http-запросах вполне может быть заголовок с информацией об исходном ip который и может писать в логи твой сервер.

    Либо клиент сделал запрос к тебе напрямую, в обход cf
    Ответ написан
    4 комментария
  • Как мигать светодиодом без delay в setup()?

    vabka
    @vabka
    Токсичный шарпист
    1. В setup не получится
    2. Если без delay, то нужно использовать таймеры и прерывания.
    Внутри прерывания мигай и увеличивай счётчик, сколько раз мигнул. После 5 раз - выключай прерывание/освобождай таймер.
    Если нужно, чтобы пока происходит мигание, не начиналось действие внутри loop - мигай внутри loop, но также закрой его при помощи какого-нибудь условия что-то типа "если пять раз мигнул - работаем, иначе - мигаем и увеличиваем счётчик"
    Ответ написан
    Комментировать
  • Как создать установщик для свой OC на CosmOS?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Во время установки запускай какую-нибудь лёгкую версию ОС с флешки например, которая будет монтировать диск и записывать на него загрузчик с полноценным образом ос
    Ответ написан
    3 комментария
  • Как работать с 3D сканированием?

    vabka
    @vabka
    Токсичный шарпист
    например чтобы другой человек эту куртку через камеру/фотку мог оценить ее на себе.

    Почти нереальная задача.

    А так - AR Kit в руки и иди собирай облако точек, а потом пытайся как-то объединить эти точки в модель с текстурой.
    Вроде как есть всякие приложения, которые так делают - может есть готовые примеры кода.
    Ответ написан
    2 комментария
  • Как заблокировать определенные страницы web-сайта?

    vabka
    @vabka
    Токсичный шарпист
    Варианта два:
    1. Расширения для браузера (конкретное не подскажу, но написать такое самостоятельно при уменнии в js - не сложно)

    2. Делать firewall, который будет работать на прикладном уровне и подсовывать самоподписной сертификат ради проксирования Https (по сути самостоятельно проводить mitm атаку на самого себя) - тогда тоже можно будет отфильтровать отдельные страницы. Естественно, этот сертификат надо заранее прописать на атакуемой машине.
    Конкретный продукт тут тоже не посоветую
    Ответ написан
  • Возможно ли подделать хеш сумму?

    vabka
    @vabka
    Токсичный шарпист
    Это называется коллизия.
    Для большинства образов сообщают точный размер и хэш на разных алгоритмах.
    Заразить образ вирусом так, чтобы все эти параметры сошлись на практике невозможно. Ты будешь миллион лет искать такую коллизию при текущем уровне технологий.
    Ответ написан
    Комментировать
  • Когда вписывать технологию в свой стек?

    vabka
    @vabka
    Токсичный шарпист

    Когда лучше всего вписывать ту или иную технологию в резюме?

    Когда считаешь, что уже набрал достаточно опыта по работе с ней и готов отвечать на соответствующие вопросы.
    Один раз написать hello world или стоять рядом, когда кто-то другой её использовал - это не достаточный опыт.
    Ответ написан
    Комментировать
  • Почему net core потребляет много оперативной памяти?

    vabka
    @vabka Куратор тега .NET
    Токсичный шарпист
    1. https://www.linuxatemyram.com/
    2. Особенности замера.

    Ну и 3:
    Даже если действительно на винде эта программа жрёт 11мб, а в докер-контейнере 200мб. Что это тебе даёт?
    Винда всё ещё будет отжирать минимум гиг, а линуксовое ядро будет болтаться около 100мб. И не забывай про п1 и 2
    Ответ написан
  • Если я куплю подписку AI Assistant Intellij IDEA будет ли работать из России?

    vabka
    @vabka
    Токсичный шарпист
    Jetbrains AI Assistant не работает в России по причине соблюдения экспортных санкций Евросоюза.

    Говорю как обладатель платной подписки на IDE(clion): авторизация в ai assistant тупо не проходит из-за IP (ошибка, что не доступен в регионе). Если подключаться с VPN, то работать должно.

    ps: а вот я нажал start free trial и через vpn у меня таки всё заработало.
    Ответ написан
    4 комментария
  • Что лучше подходит для изучения алгоритмов (Python vs C#)?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Раз считаешь, что тебе это нужно - изучай сразу два языка тогда.
    Обрати тогда ещё внимание на какие-нибудь совсем низкоуровневые языки. Rust или Си, например - они даже будут полезными при работе с питоном. (смотри pyo3)

    А ещё можешь упороться и работать с данными на C# - вроде все инструменты есть :)
    Ответ написан
    1 комментарий
  • Можно ли написать приложение под Windows, а потом скомпилить под Linux?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Да, конечно. Можно компилировать либо в переносимую форму (так происходит по-умолчанию), либо в платформозависимый исполняемый файл (dotnet publish -r linux-x64)
    Ответ написан
  • Есть сайт с курсом валют отдающий данные в простым текстом?

    vabka
    @vabka
    Токсичный шарпист
    Чем не устроил европейский цб? https://www.ecb.europa.eu/stats/eurofxref/eurofxre...
    XML - это тоже простой текст.
    И документация твоя точно не развалится в ближайший десяток лет)
    Ответ написан
    Комментировать