• Как посчитать количество месяцев между датами в Excel?

    akelsey
    @akelsey
    Сделать СЦЕПИТЬ (CONCATENATE) во временные ячейки (скрыть) и использовать РАЗНДАТ (DATEDIFF).
    PS
    Есть столбец Aи есть B - это нормальные полные же даты? Зачем нужен столбец C в этих расчетах тогда? =РАЗНДАТ(A;B;"D")
    Ответ написан
    1 комментарий
  • Как включить подсказки в VS CODE 2023?

    akelsey
    @akelsey
    Поставить какой-нибудь автокомплит для JS?
    https://marketplace.visualstudio.com/items?itemNam...
    Ответ написан
    Комментировать
  • Где можно деплоить java приложения?

    akelsey
    @akelsey
    Кратко везде где можно купить VPS, поставить Docker и использовать Gitlab CI (or Github Actions) но требуется настройка инфраструктуры.
    Если облака, то можно яндекс, но при использовании контейнеризации - потребуется использовать Kubernetes - сервисов аналогов AWS ECS я у них не видел.
    Ответ написан
  • Как проверить работу VPN внутри страны?

    akelsey
    @akelsey
    Непонятно,
    Если сайты работают только с айпи адреса РБ то просто зайти на сайт без VPN и с VPN, подозреваю в первом случае работать не будет.
    Можно воспользоваться сервисами вроде https://2ip.ru он вам покажет вашу локацию и угадает страну, т.е. как вы выглядите для сервера.
    PS
    Ещё раз перечитал, понял, вы в РБ и зачем то хотите впн с адресом РБ и сомневаетесь не выехав из страны, будет ли он работаеть. Тогда так же как и написал - подключаете ВПН - смотрите на 2ип что адрес новый, от провайдера в сети ВПН и если сайт открывается - значит впн вам подходит, когда вы покинете РБ.
    Ответ написан
    Комментировать
  • Как составить регулярное выражение?

    akelsey
    @akelsey
    сплит по пробелу, в цикле знаки препинания заменить на "" (ничто).
    или даже наоборот сначала заменить все знаки препинания на "" (ничто) - а "-" на пробел, и уже потом сплит.
    Ответ написан
    Комментировать
  • Как скачать и импортировать свой пакет в golang?

    akelsey
    @akelsey
    Вынес ответ из комментариев, проблема была в кэшированной либе, помогла команда:
    go get -u github.com/parseMachineReborn/in-memory-cache
    Ответ написан
    Комментировать
  • Можно ли добиться перенаправления в IIS с http на https без модуля URL-Rewrite?

    akelsey
    @akelsey
    Использовать JS? Копать в сторону location.
    Ответ написан
    Комментировать
  • Не пересылать письма с условиями?

    akelsey
    @akelsey
    Кратко, можно. Смотреть header_checks
    Например:
    /^To: (.*?)@yandex.ru$/ REDIRECT root@localhost
    Ответ написан
    3 комментария
  • Как подключиться к mongodb из другого контейнера?

    akelsey
    @akelsey
    Создать общую сеть, запустить контейнеры в этой сети:
    docker network create commonnet
    docker run --rm --name nginx1 -d --network commonnet nginx
    docker run --rm --name nginx2 -d --network commonnet nginx

    далее
    docker exec -it nginx1 bash
    apt update
    apt install iputils-ping
    ping nginx2
    PING nginx2 (10.31.3.3) 56(84) bytes of data.
    64 bytes from nginx2.testnet (10.31.3.3): icmp_seq=1 ttl=64 time=0.054 ms
    64 bytes from nginx2.testnet (10.31.3.3): icmp_seq=2 ttl=64 time=0.043 ms
    ...

    или
    curl nginx2
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
    html { color-scheme: light dark; }
    body { width: 35em; margin: 0 auto;
    font-family: Tahoma, Verdana, Arial, sans-serif; }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>


    PS
    ну либо docker-compose как уже посоветовали...
    Ответ написан
  • Как спарсить это?

    akelsey
    @akelsey
    Тип в структуре неверный. Решение под спойлером:
    код

    package main
    
    import (
    	"encoding/json"
    	"fmt"
    )
    
    type Resp struct {
    	R struct {
    		Items []int
    	}
    }
    
    func main() {
    	response := []byte(`{"r":{"max":900,"items":[1,3,5,7,3,1,7]}}`)
    	r := Resp{}
    	json.Unmarshal(response, &r)
    	for i := range r.R.Items {
    		fmt.Println(i)
    	}
    }
    Ответ написан
    Комментировать
  • Почему сайты выводят ошибку ERR_SOCKET_NOT_CONNECTED?

    akelsey
    @akelsey
    1. Я бы начал с просмотра системного времени и синхронизировал бы его первым делом с сервером точного времени.
    2. Если первое не помогает, посмотрел бы в сторону роутера, нет ли какого хитрого правила с пробросом 443 порта, на микротиках бывает люди забывают ставить на dst-nat правило интерфейс с которого проброс делать. Отсюда появляются всякие странные похожие на вашу проблемы.
    Ответ написан
  • Как добавить synology в graylog?

    akelsey
    @akelsey
    Согласно документации Graylog умеет быть Syslog сервером, а Synology умеет отправлять логи в Remote Syslog server, осталось чуть почитать как настроить то и это, и задача будет решена.
    Ответ написан
  • Порядок действий по созданию сайту?

    akelsey
    @akelsey
    Направление верное, только не хостинг (shared hosting тут не подойдет), а VPS + domain name.
    Самый "относительно простой" способ это создать два докер контейнера с бэком (чистое приложение на чем оно у вас написано) и фронтом (например ngninx или опять же смотря на чем написано), и взять готовые контейнеры mongodb + nginx (для публикации фронта + ssl) с docker hub.
    Потом создать компоуз (docker-compose.yaml) файл и все четыре контейнера запустить в одной сети. Настроить взаимные подключения. Подключить сертификат.

    После того как это всё руками заработает и будете понимать что и как настраивается, можно будет строить пайплайны для автоматической публикации из github/gitlab, но это уже совсем другая история.

    PS
    Дев среду можно построить и на домашних ресурсах, как отладите и освоитесь - сможете реализовать и на VPS.
    Ответ написан
    4 комментария
  • Как оптимально оформить сетевой стенд для самообучения?

    akelsey
    @akelsey
    Я бы упростил,
    исключил бы сразу kind, minikube (не правильно выразился, даже бы не исключил, а комбинировал подходы), т.к. все они клёвые но у каждой есть свои недостатки (и перешёл к вагрант, кубспрей):

    kind
    Самый лучший use case: использование когда нужно что то многокластерное
    плюсы:
    - использует докер для разворачивания
    - очень быстро всё разворачивается, любое кол-во нод и кластеров
    - экстра аргументы позволяют опубликовать 80 и 443 порты
    - выживает после перезагрузки, норм работает с metallb
    минусы:
    - использует докер для разворачивания
    - отсюда невозможность управления ресурсами (т.е. ограничить ноде 2гб памяти например и посмотреть как ведет себя деплоймент)

    minikube
    Самый лучший use case: любой поддерживаемый драйвер на VM (на докере лучше кайнд)
    плюсы:
    - очевидно норм кластер, быстро поднимаемый с мультинодами
    минусы:
    - не выживает после ребута (не поднимает сервисы внутри ВМ, требуется снова делать minikube start и передеплоивать), после сейвстейт на линукс плюс Virtualbox теряет сетевые интерфейсы (ребут возвращает интерфейсы в норм стейт, но уже не поднимаются сервисы кубера-докера)

    vagrant или kubespray based
    Самый лучший use case: для всего
    плюсы:
    - железный кластер, можно шатдаунить ноды, симулировать отказы нод, лимит ресурсов.
    - можно саспендить машины, когда не требуется (в вагранте одной командой все ноды сразу)
    минусы:
    - жрет ресурсы,
    - без ссд медленно

    Есть еще варианты на голом железе, ну тут вы и сами должны понимать плюсы и минусы.
    Ответ написан
    Комментировать
  • Зачем нужна coordinate node в стеке ELK?

    akelsey
    @akelsey
    Как это понимаю я (почти перевод документации):
    Данные могут лежать в разных индексах разных нодах.
    При поступлении запроса (поискового) есть две фазы:
    "scatter" - когда нода координационная знает у кого эти данные есть и она их ей отправляет (конкретной ноде где данные размещены)
    "gather" - разрозненную информацию полученную с разных нод координационная нода аггрегирует в единый ответ и отдает тому кто её запросил.
    Явной роли "coordination" задать нельзя, таковой нодой является любая нода у которой не задан роль в "node.roles". (либо мастер нода)
    Ответ написан
  • Где допустил ошибку при написании gitlab CI CD?

    akelsey
    @akelsey
    Наводящие вопросы:
    1. DOCKER_HOST переменная, там адрес какой машины (полагаю одной из кластера докер сворм?)
    2. зачем ssh-keygen всякий раз? здесь нужно скопировать уже заранее подготовленный закрытый ключ (например из переменных гитлаба на уровне проекта) к машине из шага 1 (это как минимум).

    Когда с этими двумя пунктами будет все понятно, можно будет двинуться дальше.
    Ответ написан
    Комментировать
  • Увеличение lvm раздела?

    akelsey
    @akelsey
    Попробуйте систему об этом проинформировать:
    sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
    Ответ написан
  • Как скрыть все внешние ссылки на своем сайте (чтобы не было видно, что человек перешел с моего сайта)?

    akelsey
    @akelsey
    Искать в направлении "referrer header" и "Anti-Leech".
    Ответ написан
    Комментировать
  • Как запустить на фоне программу?

    akelsey
    @akelsey
    Пробуйте компилировать так:
    go build -ldflags -H=windowsgui main.go
    or 
    go build -ldflags "-H windowsgui" main.go


    или можно так попробовать запускать в main:
    package main
    
    import "github.com/gonutz/w32/v2"
    
    func main() {
        console := w32.GetConsoleWindow()
        if console != 0 {
            _, consoleProcID := w32.GetWindowThreadProcessId(console)
            if w32.GetCurrentProcessId() == consoleProcID {
                w32.ShowWindowAsync(console, w32.SW_HIDE)
            }
        }
    }
    Ответ написан
    1 комментарий