• Как заставить multiprocessing работать?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    import multiprocessing as mp
    
    data = [
        ('./wiki/wikido1.txt', './wiki/file_1.txt'),
        ('./wiki/wikiot1do2.txt', './wiki/file_2.txt'),
        ('./wiki/wikiot2.txt', './wiki/file_3.txt'),
    ]
    
    with mp.Pool(mp.cpu_count()) as pool:
        pool.starmap(Noun_Phrase, data)
    Ответ написан
    1 комментарий
  • Легаси-монстр. Как побеждаете?

    У нас ситуация такая:

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

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

    Так можно поступать, если это it-компания.

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

    @RidgeA
    Немного банальностей:
    1. Бизнес не даст ресурсов на переписывание проекта с 0: время и большие риски
    2. Бизнесу как правило все-равно какое говно там крутится, лишь бы деньги приносило.
    3. Если более-менее адекватное руководство - нужно донести идею постепенного рефакторинга кода по мере необходимости в процессе фикса багов и разработки новых фич и тем самым аргументировать что на разработку новых фич/фикс багов нужно больше времени.

    Как я бы делал:
    1. Тесты на существующие функции (если возможно, видел методы в контроллерах с мешаниной вызовов методов моделей, созданием DTO и сохранением их через репозиторий, прямых http-запросов и запросов в бд на 1000+ строк, покрыть такое тестами - невозможно)
    2. Составить план рефакторинга, где отметить что и где надо сделать, коротко, в основном для команды разработчиков.
    3. Постепенно рефакторить старый код по мере взаимодействия с ним.
    4. Новый код - писать сразу правильно, для взаимодействия со старым кодом где нет возможности/времени его переделать - делать какие-то адаптеры, что бы не распространять токсичный код.
    5. Как оперативная мера защиты от SQL иньекций можно поставить что-то вроде этого https://github.com/nbs-system/naxsi
    6. Мониторинг кода, который не используется - pinba.org , по мере обнаружения такого кода - удалять безвозвратно (в крайнем случае есть VCS, я надеюсь). Начать с более высокоуровнего кода - контроллеры, напримерю. Плюс IDE в этом могут помочь и grep.
    7. Как вариант - новые фичи можно пилить в отдельном проекте (v2), крутить оба и постепенно переходить на новый, со временем старый (v1) выкинуть (и начать делать новый - v3 :-) )
    Ответ написан
    3 комментария
  • Уходить ли после 9 в колледж на программиста?

    @MasterMike
    Колледж дает преимущества в краткосрочной перспективе. ВУЗ - в долгосрочной.
    И время в колледже или ВУЗе можно провести ой как по разному.

    И, на мой взгляд, 9-11 классы и первые курсы ВУЗа лучше потратить на изучение фундаментальных знаний, знаний, которые учатся один раз и на всю жизнь: математика, физика, русский и английский языки.

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

    @beerchaser
    Недостаточно данных для выдачи рекомендаций.
    1. Для чего сдаётся экзамен.
    2. Экзамен внутренний или имеет отражение в требованиях регулятора.
    3. Насколько велика разница в бонусах для сдавшего и несдавшего.
    4. Насколько ценен для вас несдающийся специалист.
    5. Имеет ли несдающийся планы на дальнейший рост в вашей организации.
    6. Насколько формализован экзамен.
    7. Может ли он быть сдан только в одной форме или есть вариации.

    В конечном итоге основные вопросы - вопрос 4 и 5. Если да - можно искать варианты с выходом на руководство. Если нет - имеет смысл сохранять статус кво.
    Ответ написан
    2 комментария
  • Дилемма повышать в должности или нет?

    sabramovskikh
    @sabramovskikh
    А поговорить с ним?
    Возможно его никак не мотивируют финансы и поэтому не хочет сдавать экзамены.
    Но как вы видите сами у вас будет 5 сотрудников, которые будут расстроенны.
    Ответ написан
    3 комментария
  • Дилемма повышать в должности или нет?

    Moskus
    @Moskus
    Весьма вероятно, что у вас есть один вменяемый программист и пять особ, которые ещё не выросли из школьного образа мышления, а также ещё, как минимум, один такой, в руководстве, кто это придумал.
    Экзамены - это синтетический тест, который означает, что компания не может оценить их квалификацию по их работе, потому заменяет это на ритуал, который к реальности, скорее всего, отношения не имеет.
    Если человек отказывается играть в эту игру, это не говорит ничего о том, что он умеет, также как ничего не говорит об этом и желание других играть.
    Ответ написан
    8 комментариев
  • Angular => Django?

    sim3x
    @sim3x
    Если по деньгам не боитесь провалиться, то велком в наш питонячий серпентарий

    Ключевики
    https://learnxinyminutes.com/docs/python3/
    pyenv || virtualenvwrapper
    https://www.djangoproject.com/start/
    tdd https://www.obeythetestinggoat.com/
    Ответ написан
    Комментировать
  • Как уменьшить большое условие if?

    @pcdesign
    1) Можно попробовать подобрать один из модулей Switch, который покажется наиболее удобным:
    https://metacpan.org/search?q=module%3ASwitch

    2) Перевести всю логику в хэши, вот по такому образцу:
    my %password = (
        'tom' => '123!',
        'frank' => '321!',
    );
    
    if ( exists $password{$name} && $password eq $password{$name} ) {
    # что-то делаем
    }


    3) Вместо магических цифр $contr_doc_id != 4 , можно использовать константы

    use constant {
        FOO => 4,
        BAR => 5
    };

    https://perldoc.perl.org/constant.html
    Ответ написан
    1 комментарий
  • Почему Perl установлен по умолчанию в Linux?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    В стабильном дебиане и всем, что на его основе perl идет потому, что там есть apt, который зависит от dpkg-dev, который зависит от perl...
    Ответ написан
    Комментировать
  • Где можно потренироваться в написании скриптов на Bash?

    @cssman
    виртуализация
    virtualbox бесплатный, vmware workstation - есть бесплатная лицензия для учебных заведений и учащихся
    Ответ написан
    2 комментария
  • Что есть структура, а что оператор в C?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Конкретно в вашем случае, просто переводчики переводили не слово в слово, а по сути.
    В одном случае под "структурой", переводчик имел ввиду весь синтаксис оператора if, подразумевая, что после if следует условие в скобках, а затем в фигурных скобках блок команд, если условие успешно и так далее.

    В другой книге переводчик просто не называл это структурой, а сразу сказал что это синтаксис для оператора if.

    Другими словами, в вашем конкретном случае структура if и оператор if одно и тоже.
    Ответ написан
    3 комментария
  • Разработчики, вы больше думаете, чем пишете, или наоборот?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Если Вы спрашиваете правильных разработчиков, то:
    1. Они строят и продумывают архитектуру
    2. Читают официальную документацию
    3. Оптимизируют стыки, логику, алгоритмы
    4. Они отвечают на Тостере

    Если про всех остальных, то:
    1. Они спрашивают на Тостере
    2. Пытаются найти исходники или статьи, похожие на их задачу
    3. Пытаются найти тех, кому перепродать проект.
    Ответ написан
    4 комментария
  • Реально в 36-40 лет стать тестировщиком или программистом если есть свободное время?

    @valentine11
    По собственному опыту. Я самоучка, образование непрофильное (гуманитарий), в IT пришла в 31 год (сейчас мне 34), сначала ручное тестирование с параллельным обучением автоматизации тестирования, затем только автоматизация.
    Освоить азы и начать что-то писать по гайдам и методом копипасты не проблема. У меня проблемы начались намного позже. В основном, связаны с неумением строить хорошую архитектуру кода. Бесконечный рефакторинг. Понимаю, что до хорошего разработчика мне как до Луны. С одной стороны, понимаешь, что 3 года не такой уж срок. С другой стороны, считать себя мидлом QA Automation я смогу, наверное, только лет в 40. Это становится причиной фрустраций, синрома самозванца и прочих прелестей. Когда ты понимаешь, что "усредненный" разработчик моложе тебя на 5-7 лет, но знает и может в сто раз больше, чем ты сам. Задаешь себе постоянный вопрос, ну может же кто-то и мидлом стать с нуля за 3 года, почему ты - не смог? Все это сильно мешает получать удовольствие от работы, хотя работу я свою обожаю, работаю (по собственной инициативе) всегда больше чем по 8ч в рабочие дни и периодически по выходным.
    Мое резюме на вопрос: реально, но психологически может быть очень больно, особенно если у вас склонность к перфекционизму и до IT вам все давалось легко.
    Ответ написан
    8 комментариев
  • Дополнительный заработок программисту?

    При всем моем уважении, но такой подход крайне деструктивен для жизни.

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

    2) Поэтому рационально будет идти по двум путям:

    - увеличивать доход на своей текущей работе (либо при смене работы)
    - идти в полукоммерческую схему со своим продуктом.

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

    p.s. у меня в свое время была работа, поддержка ряда клиентов в it-инфрастуктуре, пару клиентов на поддержке сайтов, плюс контракты на продвижение сайтов. Просто вся жизнь превратилась в работу, как смог накопить на квартиру, сразу же от этого всего отказался в пользу жирной работы, и своих проектов.
    Ответ написан
    2 комментария
  • С чего начать свою компанию?

    shnopik87
    @shnopik87
    Утром, познав истину, вечером можно умереть.
    Ни в коем случае не надо лезть в госКомпании - это мертвый вариант!
    1) Вам надо получить госКонтракт - как вы это сделаете? (без сильных знакомых НИКУДА)! Хотя конечно вы можете попробовать на сайте ГосЗакупки попробовать выйграть тендер.....
    2) Предположим вы на свой страх и риск запилите программу какую-нибудь для здравоохранения - а как вы сделаете так чтобы ей пользовались наши больницы?? пункт 1 - ЗНАКОМЫЕ
    3) Отсюда вывод что проще всего быть посредником(пусть даже за 2-3% от гоконтракта) и ничего не производить и не программировать - в принципе так живут все ГОСКомпании в России.
    4) Из личного опыта - работал разработчиком в одной госКомпании - так вот там была одна Дама которая ничерта не понималала в разработке(но тем не менее рулила 10 программистами), а все потому что у нее был выход на ЗамМинистра который одобрял госконтракты и так вот руководство компаниии получали по 300-400тыс премии, а разработчики по 20-30, и все руководство молилось на эту даму -а то что продукт гавно и разработка на низком уровне всем было до лампочки.....
    Ответ написан
    4 комментария
  • Стоит ли идти в программисты в 30 лет, но не простым, а..?

    @asd111
    SQL это самый понятный и приятный из всех языков программирования.
    Не советую идти в программирование если не нравится. Работы много разной.
    Ответ написан
  • Стоит ли идти в программисты в 30 лет, но не простым, а..?

    sim3x
    @sim3x
    1. Как повезет
    2. Зависит от региона
    3. Тайтлы, зп

    Если тошнит от технологий и ЯП, то вам не стоит идти в программинг
    Не может тошнить повара от не фирменной сковородки
    Ответ написан
    11 комментариев
  • Как исправить ошибку сегментирования в С?

    @alex_fedorov
    Ошибка #1

    array = (int **)malloc(N * sizeof(int));
    newArray = (int **)malloc(M * sizeof(int));

    Здесь ты должен выделять массив указателей, а не массив intов. Т.е. должно быть
    array = (int **)malloc(N * sizeof(int*));
    newArray = (int **)malloc(M * sizeof(int*));

    Ошибка #2
    Память необходимо освобождать после использования
    Ответ написан
    Комментировать