• Gitlab CI/CD простого проекта?

    @d-stream
    Готовые решения - не подаю, но...
    ну примерно вот так:

    image: # имя докер-образа 
    
    stages:
      - build
      - tests
      - deploy
    
    build_my_project:
      stage: build
      tags: 
        - тэг раннера где запустить
      script:
        - ... # собственно действия для билда
        - ... 
        - ...
        - ...
      artifacts:
        name: как будет обзываться артефакт сборки
        paths:
        - путь до файлов в артефакт
        expire_in: 1 hour # сколько ему жить
    test1: 
      stage: tests
      tags: 
        - тэг раннера где запустить
      needs:
        - build
      scripts:
        - # действия по выполнению теста
    
    test2: 
      stage: tests
      tags: 
        - тэг раннера где запустить
      scripts:
        - # действия по выполнению теста 2
    
    deploy_to_dev:
      stage: deploy
      tags: 
        - тэг раннера где запустить
      needs:
        - tests
      rules:
        - if: $CI_COMMIT_BRANCH == "development"
      scripts:
        - # действия деплою в dev
    
    
    deploy_to_prod:
      stage: deploy
      tags: 
        - тэг раннера где запустить
      needs:
        - tests
      rules:
        - if: $CI_COMMIT_BRANCH == "master"
      scripts:
        - # действия деплою в dev


    словами: на первом шаге - build выполнится то что прописано в scripts (последовательно, по строкам)
    на втором шаге - test - параллельно выполнится два (ну или сколько надо блоков тестов)
    на третьем - deploy - выполнится или deploy_to_prod или deploy_to_dev или ничего в зависимости от того в какой ветке идет сборка ($CI_COMMIT_BRANCH)
    image: # имя докер-образа - имя соответсвующего docker-образа с подготовленной средой разработки (node:14 - для npm, mcr.microsoft.com/dotnet/sdk:6.0 - для .net6 и так далее)
    можно и любой свой

    needs: - описывает от каких шагов зависит шаг (это относительно свежее, ранее более жесткое dependencies:)
    Ответ написан
    1 комментарий
  • Collection was modified, но она не менялась?

    @d-stream
    Готовые решения - не подаю, но...
    А не является ли SessionInstance ссылочным типом со всеми нюансами копирования ссылки, а не объекта?
    Ответ написан
    Комментировать
  • Haproxy redirect?

    @d-stream
    Готовые решения - не подаю, но...
    Первое как уже подметили - это mode http
    Второе - все обращения к test.test2.ru/bla-bla будут соответствовать условию hdr_beg(host) -i test.test2.ru
    Ибо это звучит как "хост в заголовке начинается с ..."
    Соответственно как минимум стоит оперировать с вариациями path*

    например совсем грубо:
    redirect code 301 localtion  test.test2.ru/user/login  if { path / } # тогда и только тогда когда путь в uri будет /


    или чуть поизвращённей (если вдруг в path test.test2.ru не окажется ведущего /):
    redirect code 301 localtion  test.test2.ru/user/login  if {  path_len 0-1  } # *

    _________________
    * - судя по мануалу "Returns true when the path length matches the values or ranges specified." но как именно задать range "0-1" или "0 1" или "0,1" подсказать затрудняюсь
    Ответ написан
    2 комментария
  • Как будет работать система плагинов, при условии что плагины можно писать на разных языках?

    @d-stream
    Готовые решения - не подаю, но...
    По сути - достаточно просто исключить термин "плагин" и всё становится на свои места.
    Просто применяем термин "нечто". После этого готовим механизм вызова этого нечто и api с которым это нечто должно уметь взаимодействовать. Профит. Это нечто может быть написано даже на языках программирования, которые придумают в 2025 году)
    Естественно чтобы всё это взлетело - не помешает так же выступить автором заготовок/фреймоков для большинства яп.
    Ответ написан
    Комментировать
  • Законно ли писать программу из процедур без in/out параметров, которые оперируют глобальными переменными?

    @d-stream
    Готовые решения - не подаю, но...
    Законно.
    Никто не запрещает даже спать на потолке и какать стоя. Но это неудобно и ноги постоянно пахнут.

    Поэтому в рамках развития и поддержки программы - доводить её до более удобного в плане поддержки и развития состояния. Естественно изучив материалы про рефакторинг и его концепции (Кериевски, Мартин и др).
    Ответ написан
    Комментировать
  • В каком порядке стоит учить c#?

    @d-stream
    Готовые решения - не подаю, но...
    Можно просто по любой более-менее толстой книжке. Как правило там на первых страницах основы, а по мере пролистывания дальше - усложнение материала. По мере освоения - ещё изучить паттерны проектирования. Примерно после этого возникнет понимание что в общем-то независимо от направления ничего из изученного не является "лишним".
    Ответ написан
    Комментировать
  • Что делать с ошибкой cs0161? Почему я не могу поместить return в фигурные скобки?

    @d-stream
    Готовые решения - не подаю, но...
    Поместить return вовнутрь фигурных скобок - можно. Но так же нужно поместить другие return'ы и во всех других местах, где может "закончиться" алгоритм.

    Обобщенно-универсальный вариант - поставить return в самом конце перед последней закрывающей скобкой. Плюс расставить дополнительные там, где по логике получается "досрочный ответ" (в вопросе ).
    Ответ написан
    2 комментария
  • Рациональность замены кабеля CAT5e на CAT7?

    @d-stream
    Готовые решения - не подаю, но...
    В данном случае все прыжки от cat5e - сродни аудоиофильским подставкам под электрические кабеля, отполированными девственницами в полнолуние. И прочей веселухе оного рода.
    Нерационально, но если продают - то значит маньяков хватает. И если по весне вдруг возникает непреодолимое желание - то наверное да, стоит продать квартиру и прикупить что-нибудь этакое)
    Ответ написан
    Комментировать
  • Как правильно пробуждать NAS через Wake-On-LAN по Интернету?

    @d-stream
    Готовые решения - не подаю, но...
    Собственно про плюсы и минусы засыпания уже расписали.
    А вот про реализацию непросыпания при сканировании - давно уже есть такое понятие как port knocking
    то есть в меру своей паранойки можно задать последовательность номеров портов и только при обращении в этой последовательности - будить.

    Образчик для микротика
    Ответ написан
    Комментировать
  • Совместимость Mikrotik 1100AHx4 c 1100AHx4 Dude Edition, VRRP?

    @d-stream
    Готовые решения - не подаю, но...
    Насколько я помню - "аппаратное" различие только в наличии ssd на борту и комплектов подключения sata дисков
    Ответ написан
    Комментировать
  • Как запретить несколько нажатий Button? WPF?

    @d-stream
    Готовые решения - не подаю, но...
    По нажатию - дисэйблить кнопку [и возможно другие связанные элеменыт ui + разлочивать/показывать другие] и потом пускать в отдельном потоке что-то долгое.. по его завершению - разлочивать.

    Классика: две кнопки "пуск" и "стоп" + прогрессбар
    IsEnabled у кнопок цепляется за булево поле IsProcess (инверсно у пуск и прямо у стоп)
    ProgressBar - виден только когда IsProcess == true
    Ответ написан
    Комментировать
  • Какого года выбрать visual studio на с#?

    @d-stream
    Готовые решения - не подаю, но...
    Пляжный ноут 2010 года сходной конфигурации вполне прилично тянет 2022 под win11.
    Притом не проекты для изучения, а боевые.

    Само собой что на i9 10 поколения и 32Гб озу всё это заметно комфортнее)
    Ответ написан
    Комментировать
  • Какую простейшую складскую систему посоветуете?

    @d-stream
    Готовые решения - не подаю, но...
    Для сисадминства стоит сделать акцент на активных инвентаризаторах. То есть программах, которые прошерстят сеть и покажут оборудование, которое уже можно "разложить" по кабинетам/отвественным. Бонусом - проактивная защита от подмен/хищений: поменял ушлый клерк в системном блоке диск - система сообщила об этом.

    для затравки: Total Network Inventory, OCS и т.п.
    Ответ написан
    Комментировать
  • Какая скорость обмена ЭДО?

    @d-stream
    Готовые решения - не подаю, но...
    ЭДО в общем-то не чатик и не HFT. Поэтому никому и в голову не приходит добиваться каких-либо рекордов по передаче. Естественно лаги больше суток - уже много, а минуты-часы вполне укладывающееся в ожидания показатели. Нечто сродни "банковскому дню".
    Ответ написан
  • Перенаправление new Process() OutputDataReceived в socket?

    @d-stream
    Готовые решения - не подаю, но...
    Собственно так и сделать как написано:
    собирать в буфер, а потом буфер засылать
    Ответ написан
    Комментировать
  • Как преобразовать дату к нужному формату?

    @d-stream
    Готовые решения - не подаю, но...
    Ну для начала стоит исключить "вроде" - посмотрев какой же это конкретно формат. Например при помощи SSMS либо запроса (например exec sp_help 'интересующая таблица'). Ну а потом уже или смотреть в сторону cast/convert либо материть архитектора, который злобно воспользовался приёмами из dabase-iv
    Ответ написан
    Комментировать
  • Возможен ли трансфер между SOH и LOH в .NET?

    @d-stream
    Готовые решения - не подаю, но...
    Думаю показательнее всего будет на классическом примере "почему нельзя складывать строки" который приводят для иллюстрации работы со StringBuilder:

    string x = "small";
    x=x+"что-то большое";
    Ответ написан
  • Реально ли через USB 3.0 комфортно работать с внешним жестким диском, в качестве основного, системного, и какой диск нужен?

    @d-stream
    Готовые решения - не подаю, но...
    Во-первых стоит начать с того о какой ОС идёт речь) Хотя и так понятно)

    Во-вторых - можно начать с игр с LiveUSB{желаемая ос} - можно будет получить исчерпывающее представление затратив время только на гуглёж и скачивание чего-нибудь готового.

    Нормальный USB3.0 хаб может оказаться соизмеримым по цене апгрейда небольшого SSD на бОльший. А ненормальный - хорошо если только данные упорет)
    Ответ написан
    2 комментария
  • Как хранить большие JSON массивы, которые постоянно обновляются (API)?

    @d-stream
    Готовые решения - не подаю, но...
    Большие объёмы данных, в особенности по которым что-то потом надо искать/агрегировать, стоит хранить в бд.
    Ну и для операций с БД существуют не только операции insert, но и update.

    Ну и собственно корректнее в этом случае говорить не о хранении json, а о хранении данных [полученных из json]
    Ответ написан
    Комментировать
  • Как исправить ошибку установка пакета Nuget?

    @d-stream
    Готовые решения - не подаю, но...
    Указать в списке источников пакетов источник, где присутствует соответствующий пакет.
    Hint: источником может быть и папка на локальном диске.
    Ответ написан