Задать вопрос
  • Как программисты хранят частоиспользуемые куски кода, чтобы каждый раз не вспоминать заново?

    Alexandroppolus
    @Alexandroppolus
    кодир
    отдельная папка с файликами, в которых куски кода. Постоянно открыта в Атоме, можно быстро взять и скоппастить
    Ответ написан
    Комментировать
  • Можно ли подменить свой ip на чужой?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Можно. Но работать не будет :) Потому что ответ пойдет на настоящий IP, который будет указан, а тот этот пакет просто отбросит.
    Читаем олиферов и перестаем задавать глупые школотские вопросы.
    Ответ написан
    1 комментарий
  • Пользуетесь ли вы кириллицей в Git?

    delphinpro
    @delphinpro
    frontend developer
    Стараюсь писать на английском даже в своих проектиках. На локальной машине без разницы, а на хостах лениво настраивать терминал, чтобы он корректно отображал кирриллицу, а не кракозябры.
    Ответ написан
    Комментировать
  • Пользуетесь ли вы кириллицей в Git?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Разрабы пишут комменты на русском, но сам я никогда русский не использую - старая привычка, сохранившаяся со времен долгой работы на FreeBSD, где консоль долго была в koi8-r.
    Кроме того, микротики не переносят русских букв.
    Ответ написан
    Комментировать
  • Оператор станков с ЧПУ хочет в IT. А есть ли смысл? И куда податься с имеющимися навыками?

    @pavelsha
    Автор, как советует куратор, разберись в себе. Тогда и без нас будешь знать, куда идти.

    А ближе к теме...
    Записывай слова для гугления:
    АСУ ТП, SCADA, ПЛК, автоматизация производства, учёт электроэнергии, телеметрия, промышленная автоматизация.

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

    Используй базу, которая у тебя есть, с умом.
    Моё мнение, "уеб-программисты" в большинстве случаев - это путь для тех, кто никакой базы не имеет. Не ведитесь на рекламу курсов и предметные статьи/ролики блогеров и ютуберов.

    И учти главное: у работодателей голод на хороших технарей в автоматизации производств последние лет 30. А джунов веб-мастеров переизбыток уже 15 лет минимум.
    Ответ написан
    6 комментариев
  • Как повысить свои навыки в построении архитектуры сложных приложений?

    bingo347
    @bingo347
    Crazy on performance...
    Если по теории, то мне в свое время вот эта книга помогла:
    https://www.litres.ru/robert-s-martin/chistaya-arh...

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

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

    Еще через пол года прочел третий раз, опять же с оглядкой на личный опыт. И тут я кажется уже совсем въехал. По крайней мере многие проблемы с организацией взаимодействия между компонентами стали разрешаться. И вообще появилось достаточно четкое понимание, как структурировать приложение и где разбивать его на компоненты.
    Ну и после 3 прочтения еще помог момент: мне дали с нуля проектировать новое, достаточно крупное приложение на Rust. Притом заказчик кричал "микросервисы - это круто, хочу, хочу, хочу", а тимлид мне сказал "давай монолит, но так чтоб потом легко было распилить, а то все сроки про**ем". Вот тут прямо вообще понимание пришло. Ну и плюс в Rust архитектурные компоненты очень хорошо ложатся на отдельные крейты (это такая единица компиляции в Rust), а компилятор в принципе не дает делать циклические зависимости между крейтами.

    Ну и недавно решил освежить память и перечитать еще раз. И на этот раз уже были мысли вроде "так если делать по другому, потом проблемы вылезут тут и тут".
    Ответ написан
    1 комментарий
  • Product manager с нуля, насколько реально?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Джун продукт менеджер? нет такой специальности.
    Ты либо ведешь продукт, либо не ведешь. Даже помощник продукт менеджера должен быть в теме.

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

    Конечно менеджмент сильно зависит от человека, и какой у тебя бэкграунд мы не знаем. Найди знакомых, которые в этом направлении работают, пообщайся тесно, выясни мнение айтишника со стороны не рандома с инета, а того, кто тебя знает и с тобой работал.
    Ответ написан
    3 комментария
  • Почему 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
    Ответ написан
    Комментировать
  • Умер SSD, можно ли вытащить данные?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Здесь есть пользователь с ником Zettabyte - он спец по восстановлению данных, спроси его или может он сам откликнется при упоминании...
    Ответ написан
    Комментировать
  • Умер SSD, можно ли вытащить данные?

    ScriptKiddo
    @ScriptKiddo
    можно ли вытащить данные

    Можно. Обратитесь в компанию, специализирующуюся на восстановлении данных.
    Без аппаратного комплекса что-то вытащить с SSD скорее всего не получится
    Ответ написан
    Комментировать
  • Теоретически возможно ли дать регулярное выражение, которое правильно принимает 29 февраля, только тогда, когда данный год действительно високосный?

    Alexandroppolus
    @Alexandroppolus
    кодир
    из википедии

    год, номер которого кратен 400, — високосный;
    остальные годы, номер которых кратен 100, — невисокосные (например, годы 1700, 1800, 1900, 2100, 2200, 2300);
    остальные годы, номер которых кратен 4, — високосные[5].
    все остальные годы — невисокосные.


    регулярка, которая проверяет, что число - високосный год (без нулей впереди):
    /^(?!0+)\d*(?:[48]|(?:[48]|[02468][048]|[13579][26])00|(?:(?!00$)[02468][048]|[13579][26]))$/


    для года фиксированной длины, с нулями впереди, если нужно
    /^(?=\d{4}$)(?!0+$)\d*(?:(?:[02468][048]|[13579][26])00|(?!00$)(?:[02468][048]|[13579][26]))$/gm

    (самое первое число - длина)
    Ответ написан
    Комментировать
  • Как запустить 5000 потоков параллельно с GET запросами?

    xpert13
    @xpert13
    Full Stack Developer
    Для начала хочу сказать, что мой основной стек на данный момент так же РНР. Возможно я в чем то ошибаюсь, так что не стоит воспринимать моё мнение как мнение великого гуру, но я всё таки поделюсь им.

    1. Никак. Я на днях копался в каком-то из фреймворков для многопотока PHP типа ReactPHP и под капотом там просто запуск отдельного процесса для каждого потока. Да, там есть оптимизации, которые позволяют жрать меньше ресурсов, но всё равно это выглядит как ресурсоемкий костыль.

    2. Я бы выбирал другой язык. Судя по описанию задачи кода там не много, так что переписать будет несложно.
    Ответ написан
    1 комментарий
  • Что нужно уточнить на собеседовании?

    kryamk
    @kryamk
    Будут ли печенье с чаем от фирмы
    Ответ написан
    Комментировать
  • Какой объём трафика у websocket если ничего не передавать и просто держать соединение?

    @deliro
    PING/PONG кидается раз в 20 секунд https://websockets.readthedocs.io/en/latest/topics...
    PING/PONG фреймы — по одному байту. Плюс, если считаем, объём TCP и IP фреймов.

    Итого за час 180 пингов и 180 понгов или 360 байт не считая оверхэда на нижележащие фреймы.
    Если считать оверхэд, то примерно 65 байт x (180 пингов + 180 понгов) ~ 23кб/час

    Плюс, какой-то оверхэд даст TLS и его хэндшейки, плюс, незначительный оверхэд дадут хэндшейки TCP. Но это явно не близко к 70мб
    Ответ написан
    2 комментария
  • Можно ли регистрировать название домена, если на западе есть аналогичный сервис в зоне .com?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    ру отберут после реги международного товарного знака, независимо от давности
    если тов знак только в ру (зерегиили после домена) типа будут варианты, но известные случаи тоже в пользу отбора преимущественно
    Ответ написан
    4 комментария
  • Как можно упростить код для понимания?

    lxstvayne
    @lxstvayne
    Люблю Python
    Такие сложные вложенные конструкции лучше никогда не использовать, их очень трудно читать. К слову, list comprehensions здесь никакой производительности не добавит. Лучше сделать код более читабельным:
    n = int(input())
    w = []
    count = int(input())
    for _ in range(count):
        w.append(input())
    
    for i in w:
        if 1 <= n <= len(i):
            print(i[n - 1], end='')
    Ответ написан
    1 комментарий
  • Как передать на бекенд требования к API?

    ddv88
    @ddv88
    Binance Futures
    Судя по описанию у вас команда в целом не понимает что делать и как. А то что делают, делают неправильно.
    Стоит начать с того, чтобы найти хорошего лида. Тогда все вопросы о том, кто и что должен делать, и в какой последовательности отпадут сами собой.
    Ответ написан
    4 комментария
  • Если домашняя папка зашифрована, данные всеравно могут украсть?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Могут, так как сейчас все процессоры содержат аппаратные бэкдоры, это уже не говоря о том, что в ядре Linux тоже могут быть бэкдоры, т. е. абсолютной защиты не существует.
    Ответ написан
    2 комментария