• Как рассчитать "реальное" среднее время трека в наборе?

    usdglander
    @usdglander
    Yipee-ki-yay
    Вам нужно медиана?
    Ответ написан
    Комментировать
  • Как поставлять ssl сертификаты для docker image nginx в gitlab ci?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Сертификаты не должны быть частью docker image, и должны монтироваться снаружи. Тогда обновление сертификата не будет требовать нового билда продукта.
    Прокидывать снаружи их можно через mount
    Тогда обновил сертификат на маунте и перезапустил контейнер.
    Если жить в кубере/опенщифте - там сертификат можно в секрете хранить и монтировать как файл.
    Ответ написан
    Комментировать
  • Хотелось бы узнать как вы выбираете язык программирования для своих проектов?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Язык подбирают под задачу. Если проект делается под заказ, и под требования проекта подходят 2-3 языка, выбирают 1) Самый распространенный на рынке, с большим количеством спецов достаточной квалификации. 2) В случае сформированной команды - язык который хорошо знает большинство членов команды.

    Если это личный проект в аналогичных условиях - 1) Хорошо изученный язык, если проект задуман для выполнения в короткий срок или нужен как рабочий инструмент/коммерческий продукт. 2) Специально выбирается малознакомый язык, дабы сделать на нем что-то более-менее серьезное и прокачать скилл.

    Прочие маловстречающиеся случаи в принципе плюс-минус укладываются в описанные кейсы.
    Ответ написан
    3 комментария
  • Почему падает Redis server "Out Of Memory allocating 16400 bytes!"?

    @vitaly_il1
    DevOps Consulting
    Советую инсталлировать новую версию - 6.2 (https://redis.io/download). Или хотя бы 5.0.14 если действительно важно быть с 5.х.
    5.0.7 вышла больше двух лет назад.
    Ответ написан
    4 комментария
  • Как запускать докер контейнеры без установки Docker Desktop?

    Viji
    @Viji Автор вопроса
    DevOps Engineer
    вот собственно говоря ответ:

    https://lippertmarkus.com/2021/09/04/containers-wi...
    Ответ написан
    Комментировать
  • Как закрепить линзу в пластиковой или металлической трубе?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Термоклеевым пистолетом. Держит, даёт упругость и отодрать если что легко.
    Сначала любыми распорками, чтобы выставить углы, потом залить термоклеевым пистолетом, вытащить распорки и залить места, где они стояли.
    Ответ написан
    Комментировать
  • Как перенести bd Mysql c частично неработающего жесткого диска, примонтированного к работающей Linux?

    Melkij
    @Melkij
    PostgreSQL DBA
    • перепроверяете, что СУБД остановлена и не запущена
    • находите datadir (например, /var/lib/mysql/ )
    • ставите на рабочей системе mariadb (или mysql - выясните, какая именно была установлена) той же самой версии
    • копируете целиком всё что есть в datadir в новое место жительства
    • запускаете СУБД и смотрите в лог
    Ответ написан
    6 комментариев
  • Планирую перейти с 1С на Golang на сколько реально в 42 года?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Почему не в SAP R3 ? или AXAPTA ?
    Ответ написан
    3 комментария
  • Планирую перейти с 1С на Golang на сколько реально в 42 года?

    @avost
    Судя по тому, что вы путаете фреймворк с языком, а го выбрали только потому, что считаете, что другие на нём будут тупить, ваш план обречён на провал. Если честно, не встречал среди программистов ни одного 1с-ника, а мой программерский стаж больше, чем возраст 1с. Я знаю, что такие в природе существуют, но не встречал. Вполне возможно, что у вас получится, но теория вероятностей работает против вас :).
    И попробуйте, всё же, разобраться чего вы всё-таки хотите. Сама постановка - флаттер проитив го, неверная. И "пойду в го потому, что я решил, что там все тупить будут" - ещё более неверная. А вообще, начните с питона.
    Ответ написан
    1 комментарий
  • Планирую перейти с 1С на Golang на сколько реально в 42 года?

    @Vitsliputsli
    Будет тяжело. 1С - это не язык общего назначения, он достаточно специализирован, большую часть придется изучать с нуля. Для разработчика изучение нового языка - это просто освоение другого инструмента (если, конечно, у него есть хорошая база), но даже в этом случае не всякий работодатель адекватно воспринимает такой переход (могут относиться как к джуну). Для 1С тем более.
    20 лет на одном месте - это очень много. Таким людям сложнее осваивать новое, не только новый язык, любые новые подходы. А если компания за 20 лет не меняла свои подходы в разработке, то еще хуже.
    Многие работодатели смотрят на возраст. Некоторые кичатся своим "молодым проактивным коллективом". Некоторые тимлиды считают, что после 30, 35, 40 способность к обучению падает вплоть до необучаемости. Но если город большой, то обязательно найдете компанию, где весь коллектив 40+, либо компанию где нет подобных стереотипов.
    В конечно итоге, все зависит только от вас. Если не утратили способность изучать новое, и есть желание, то все получится.
    Ответ написан
    Комментировать
  • Что лучше для веб сервера выделенный физический сервер или виртуализация на нем же?

    vabka
    @vabka
    Токсичный шарпист
    верно ли они говорят?

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

    С виртуалками действительно удобнее, тк потом можно будет, например, базу перенести на другой физический сервер.
    Если всё будет на железе сидеть - миграция будет сложнее.
    С другой стороны - на голом железе будет выше производительность.
    Ответ написан
    Комментировать
  • Что лучше для веб сервера выделенный физический сервер или виртуализация на нем же?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Насчет производительности вам соврали. Поэтому задумайтесь о их компетентности.
    Теоретически конечно можно выжать из виртуалки больше чем из физического железа, за счет тюнинга ядра и переменных, но практически вряд ли кто то будет этим заниматься.

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

    В общем вы их спросите что они конкретно будут тюнить и почему. Нормальный специалист будет иметь что вам сказать. Причем объяснит четко и понятно.
    Ответ написан
    Комментировать
  • Golang в чём смысл?

    bingo347
    @bingo347
    Crazy on performance...
    Во-первых, любой бенчмарк можно написать так, что визуально будет выглядеть очень похоже, но на деле у одной технологии будут использоваться сильные стороны, а у другой нет (понятно кто выиграет). Притом это можно сделать как специально, дабы превознести одну из технологий, так и ненамеренно, просто потому-что человек писавший бенчмарк очень хорошо знает одну технологию и посредственно другую.
    Например, я вполне умею написать многие вещи на C, C# и Go, но знаю эти языки очень поверхностно, с другой стороны я очень хорошо знаю JS (в том числе достаточно много копался в кишках v8) и Rust, как думаете, кто победит, если я начну писать бенчмарки для сравнения этих 5 языков?

    хотя Golang изначально и задумывался, как яп для хайлоада
    Go изначально задумывался как ЯП, который сможет быстро освоить любой, кто базово знаком с программированием, дабы Google мог нанять тысячу джунов и они быстро прототипировали идеи без заморочек C/C++.

    А еще вся супер-пупер параллельность - на самом деле асинхронщина, работающая на небольшом пуле реальных потоков ОС. Притом без вариантов. Асинхронный рантайм - это тоже не бесплатно. На всяких I/O штуках асинхронщина показывает себя очень хорошо, но на сугубо вычислительных задачах - все ее преимущества становятся минусами. На шарпе есть контроль, где использовать асинхронщину, а где вынести вычисления в настоящий поток. На Go такой возможности нет.

    P.S. а вообще, в реальном мире Вы практически никогда не упретесь в производительность языка, ну разве что будете всюду втыкать самые неоптимальные алгоритмы. На деле бутылочным горлышком окажутся сеть и диски. И даже в сугубо вычислительных штуках Вы скорее упретесь в оперативку и процессорные кэши, а не в ЯП.
    Ответ написан
    2 комментария
  • Golang в чём смысл?

    vabka
    @vabka
    Токсичный шарпист
    1. Go был придуман в гугле для решения задач Гугла ещё задолго до того, как появился .net core со всем его перформансом.
    2. Go всё ещё порождает более компактные и не зависящие от окружения бинарники.
    3. Чтобы C# показывал результаты как в techempower - нужно писать код так, как никто его не пишет в реальном мире.
    В бэклоге . net команды даже пункты отдельные есть за то чтобы быть топ1 в бенчмарках
    4. Go всё ещё гораздо проще Шарпа, ибо п1
    Ответ написан
    Комментировать
  • Какую базу выбрать для bigdata?

    alexfilus
    @alexfilus
    Senior backend developer
    Звучит как задача для ClickHouse, Вроде как они недавно пофиксили производительность при отдельных инсертах без буфера. Даже если нет, есть схема с записью всех событий в Kafka и вычитыванием оттуда с помощью Materialized view в таблицу КликХауса. Эта схема точно рабочая и указанные нагрузки выдержит. Плюс отличное сжатие данных.
    Чистый PostgreSQL по производительности не сильно отличается от MySQL, а вот с дополнением TimescaleDB вставка становится очень быстрой, возможно вам его хватит. Там полноценный SQL и возможность редактировать данные без проблем. Неплохо сжимает.
    Про ScyllaDB уже написали.
    Ответ написан
    3 комментария
  • Алгоритм сопоставления двух текстов?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Начать с diff, потом docdiff. Последнее довольно неплохо диффает вордовские файлы.

    Главное забыл! Диссернетовкий детектор плагиата!
    Ответ написан
    1 комментарий
  • С помощью чего найти повторяющиеся строки в текстовом файле, содержащем 10 000 строк?

    @ab1
    Попробуй
    sort ./file_name.txt | uniq -c
    Ответ написан
    Комментировать
  • Не могу загрузить в базу данных mysql значения golang. как это решить?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    У вас не запущен сервис MySQL, либо MySQL не слушает localhost:3306
    Ответ написан
  • Почему Go с горутинами работает на одном ядре?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Горутины выполняются на разных процессорах как и должны, у вас четвёртое число слишком большое, все горутины завершают выполнение, а одна продолжает работать. По этому и создаётся впечатление, что они все работают на одном ядре.

    Чтобы в этом убедиться добавим два fmt.Printf, чтобы получилось вот так
    package main
    
    import (
        "fmt"
        "runtime"
        "sync"
    )
    
    var wg sync.WaitGroup
    
    func main() {
        runtime.GOMAXPROCS(8)
        arr := []int{1343434, 1343434300, 234343400, 334343434000, 400434340, 203434340, 4232, 23545, 15535, 353535, 33434434, 5334345, 3533434345, 3535}
        for idx, el := range arr {
            wg.Add(1)
            go test(el, idx)
        }
        wg.Wait()
    }
    
    func test(el int, idx int) {
        fmt.Printf("%d started: %d\n", idx, el)
        for i := 0; i < el; i++ {
            el = el - 1
        }
        fmt.Printf("%d completed: %d\n", idx, el)
        defer wg.Done()
    }


    Вывод будет примерно таким
    4 started: 400434340
    8 started: 15535
    8 completed: 7767
    13 started: 3535
    13 completed: 1767
    6 started: 4232
    6 completed: 2116
    10 started: 33434434
    3 started: 334343434000
    7 started: 23545
    7 completed: 11772
    5 started: 203434340
    12 started: 3533434345
    11 started: 5334345
    2 started: 234343400
    1 started: 1343434300
    11 completed: 2667172
    9 started: 353535
    9 completed: 176767
    0 started: 1343434
    0 completed: 671717
    10 completed: 16717217
    5 completed: 101717170
    4 completed: 200217170
    2 completed: 117171700
    1 completed: 671717150
    12 completed: 1766717172

    При внимательном просмотре станет видно, что нет записи 3 completed.

    меняю элементы с индексами 4 и 5 на такие же числа 334343434000, 334343434000, т.е. делаем чтобы все горутины отработали, но чтобы 3 осталось, т.е. вот так

    arr := []int{1343434, 1343434300, 234343400, 334343434000, 334343434000, 334343434000, 4232, 23545, 15535, 353535, 33434434, 5334345, 3533434345, 3535}


    Запускаем заново и видим, что теперь 3 ядра отлично загружены
    %Cpu0  :  0.3 us,  1.0 sy,  0.0 ni, 98.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu1  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu2  :  1.7 us,  0.7 sy,  0.0 ni, 97.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu3  :  1.6 us,  2.9 sy,  0.0 ni, 95.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu4  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu5  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu6  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu7  :  5.6 us,  1.0 sy,  0.0 ni, 93.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    Ответ написан
    Комментировать