• Как бороться со стрессом на работе?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Вы на этапе "Долины отчаянья", это пройдет.
    83f4597e975f8f1963ed7e24a8297eba.svg

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

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Мозг каждый день кипит так же, как в первый день. Шаг влево шаг вправо, и вот, я уже ничего не знаю и ничего не умею... ощущение, что на работе я как будто не прогрессирую, а наоборот деградирую...

    У меня такое было, когда я только перешел во фронтенд и пытался держать слишком много деталей о языках и инструментах в голове. Со временем понял, что это не имеет смысла - все меняется быстрее, чем я запоминаю. Перешел от мысли "я использую инструменты" к мысли "я делаю штуки" и сразу полегчало, стал держать в голове только общие идеи о том, как что-то делается, или что вообще бывает в какой-то области, а конкретные инструкции по применению отдельных инструментов изучаю по ходу дела. Изменил фокус своего самообразования, если это можно так назвать. В результате все препроцессоры слились в один, новые библиотеки становятся все менее сложными в освоении, поскольку идеи везде плюс-минус одинаковые и.т.д. Решения стало принимать гораздо проще. И аргументировать тоже. Иногда складывается такое впечатление, что у нас в отрасли совсем ничего не появляется нового уже лет пять, а то и больше. Да, я забываю как использовать флексы, путаю call() и apply(), гуглю свои же ответы на тостере, но это не важно. Голова занята решением проблем, в ней теперь нет никакой второстепенной информации и это очень здорово. Статьи писать тоже полезно оказалось - написал, "поставил на полочку", и забыл. А если будет нужно - можно достать и посмотреть. Таким образом вот эта вся фигня с закипанием мозгов практически ушла.
    Ответ написан
    1 комментарий
  • Как найти индекс лишнего символа, при удалении которого слово становится палиндромом?

    @MAGistr_MTM
    Учусь программировать
    Как по мне, то лучше пробегать по всему слову, и по-очереди удалять буквьі и проверять на палиндромность. Если слово палиндром - возвращать индекс той буквьі, если по оканчании прохода не бьіло ниединого палиндрома - вернуть 0
    Ответ написан
    2 комментария
  • Почему меня "раскрыли", scrapy выдает крякозябры и как получить HTML самой страницы (вопрос не простой)?

    @timokins
    Дело, может быть, как раз в заголовках,
    которые scrapy использует по-умолчанию,
    например, user-agent: scrapybot (совсем непалевно).
    Ответ написан
    1 комментарий
  • Какую выбрать сферу в IT с нуля когда тебе "под 40"?

    @Alibaba2018
    Хочу летать на самолёте, подскажите на каком лучше: на Боинге/Транспортном/Истребителе/или спортивном Ред Буле...

    Научитесь сначала очень и очень базово программировать на (Python'е): т.е. летать на учебном кукурузнике, а там Вам придёт уже точное понимание что к чему и как действовать дальше. И, поверьте, даже тот же Питон не самый простой язык, но простейший из других, хотя и он, как море, идешь-идешь-идешь от берега по колено в воде, а потом раз - и обрыв на несколько метров. Тем более на питон у Вас нормально программировать меньше чем пол года всё равно не получится, а скорее всего год, с кондачка в программировании не катит, сразу имейте в виду. Тут по сути как полный ремонт квартиры, а не просто прибраться, и даже не генеральная уборка. Если есть человек, кот. уже прошёл этот путь и направляет, и если Вы реально этим занимаетесь конкретно, то за 6 месяцев можно. Самое главное практика! Еще раз- самое главное практика! Еще раз.... и еще.... повторяю: напишите себе на бумаге 100 раз слово Практика!

    Начните с простейших:
    - Learn Python the Hard Way
    - Python Crash Course - No Starch - вторую часть книги, просто сидите и печатайте упражнения
    - потом переключайтесь на Automate the Boring Stuff - также, открываете вторую часть книги, просто сидите и тупо печатайте упражнения, потом перечитываете первую часть (теорию) где про все эти приёмы объясняется (control flow, loops, итд итп) и, о Боги, чего то по-тихоньку начинает приходить.

    Потом переходитe на Django:
    - напишите блог
    - онлайн магазин
    - мб потом задеплоить свой сайт с блогм, другими фичами

    Т.е. тупо начать писать базовые вещи, читать чужой код, мб смотреть на YT много-много видео с чужим кодом и упражнениями, для овладения языком на более-менее intermediate/advanced уровне

    Там дальше уже придет понимание как дальше и куда двигаться, но там уже и по другому надо начинать/ешь думать.
    Удачи!

    -
    Ответ написан
    Комментировать
  • Как создать массив со случайными числами без повторений?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    создать массив допустимых значений и «вынимать» из него случайные.

    const values = [...Array(10)].map((_, i) => i);
    const result = [...Array(5)].map(() => values.splice(Math.floor(Math.random() * values.length), 1)[0]);
    result // [ 2, 5, 3, 4, 1 ]
    Ответ написан
    2 комментария
  • Почему после git pull права на запись файла для членов группы www-data удаляются и как этого избежать?

    @Intey
    универсал
    проверьте права на файл внутри репозитория, т.к. это влияет. скорее всего в репозитории файл с правами только на чтение. Это должно решить проблему.

    Так же можно написать отдельный скрипт, который выполняет "установку": делает git pull, настраивает права.

    Еще вариант более инфраструктурный и сложный: настроить default ACL права. Суть в том, что вы задаёте для каталога такое поведение по правам, что любой новый файл в этом каталоге будет получать определенные права. В вашей ситуации это нужно сделать до появления файла main.php в каталоге.
    Ответ написан
    5 комментариев
  • Какой порядок разработки сервиса Python+Django+Vue+bootstrap?

    kgb_zor
    @kgb_zor
    I need your traceback.
    На счет IDE - хватит, да хоть блокнот.

    Порядок.

    1. Создайте django приложение.
    2. Создайте vue приложение.
    3. Накидайте html.
    4. Cоздайте модель сообщения.
    5. Напишите API на DRF.
    6. Потом при помощи vue делайте запросы на сервер и тяните сообщения.

    Рекомендуется для каждого проекта создавать отдельное окружение.
    На счет бд , юзайте sqlite, не парьтесь.

    Хостинг - на ваш вкус Heroku , Pythonanywhere и т д.

    Туториал 1.
    Туториал 2.
    Ответ написан
    Комментировать
  • Можно ли прикрутить сабдомен к Ip (без домена)?

    Нельзя.

    IPv4 — это уникальное 32-битное число, на IP-адрес можно отправить запрос.
    Домены, подомены — это текстовые строки. Их переводят в какой-то IP, на который и направляют запрос.

    Они не смешиваются.

    Чтобы на одном IP без доменов разместить несколько сайтов можно
    • на разных портах http://11.12.13.14, http://11.12.13.14:81
    • в подпапках, это понятно
    • с GET-параметрами http://11.12.13.14?site=one, http://11.12.13.14?site=two
    • c hash'ами http://11.12.13.14/#one, http://11.12.13.14/#two
    • по куками - при наличии опр. куки отдавать вместо сайта А, сайт Б

    Ответ написан
    1 комментарий
  • Как выполнить git pull origin master из php?

    @MrBikus Автор вопроса
    Короче в директории /var/www/ надо создать директорию .ssh для юзера www-data. Затем создать приватный и публичный ключи. При создании ключей не ставить на них пароль. И все будет работать.
    Ответ написан
    Комментировать
  • Как корректно работать с одним объектом при использовании Pool (multiprocessing)?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Потому что вы используете не потоки, а процессы. У каждого процесса своё собственное окружение, соответственно переменные из process_1 никак не пересекаются с переменными из process_2. Что-бы шарить данные между процессами нужно использовать Manager.

    Вот пример простенького ротатора:
    from multiprocessing import Pool, Manager
    
    
    def rotator(data_list):
        data = data_list.pop(0)
        data_list.append(data)
        return data
    
    
    def print_data(data_list):
        data = rotator(data_list)
        print(data)
    
    
    if __name__ == "__main__":
        manager = Manager()
        data_list = manager.list()
    
        for x in range(5):
            data_list.append(x)
        
        with Pool(4) as pool:
            for _ in range(10):
                pool.apply_async(print_data, [data_list])
            pool.close()
            pool.join()

    Принцип простой как палка: есть список элементов, при обращении к методу первый доступный элемент удаляется из списка и добавляется в конец, что-бы следующий процесс не мог взять тот-же элемент и так по кругу.
    Вот вывод:
    0
    1
    2
    3
    4
    0
    1
    2
    3
    4


    Только учтите, что если процессы, как и потоки, стартуют в определенном порядке еще не означает, что в таком-же порядке они и завершат работу. Т.е. вполне нормально что процесс, который запустился 4м отработал на N-мс быстрее и завершился первым, в итоге вывод может быть таким:
    4
    2
    0
    1
    Ответ написан
  • В каком порядке это учить?

    criticalsomethoughts
    @criticalsomethoughts
    UI\UX Developer, Project Manager
    Все что вы скинули, всего лишь прикладные инструменты, учить их не нужно, это не фундаментальные вещи, такие как паттерны и алгоритмы.
    webpack\gulp - вы будете настраивать 1-2 раза, и дальше работать с ними(достаточно понять принцип работы, взять готовые решения, переписать код с готовых решений что бы понять что он делает и тд). Все остальное - не учится в отрыве от проектов которые вы можете делать на досуге, что бы поднимать свой скилл. Условно вы приходите на работу, где люди пользуются webpack - скорее всего внутри компании он уже настроен под конкретный продукт или решение, и вам даже настраивать его не дадут) Так что в порядке ознакомления.
    Одназначно ознакомьтесь с git(который у вас не написан), вот он вам 100% пригодится в любом месте.
    Ответ написан
    Комментировать
  • Существует ли курс/статья/книга где приведен полый алгоритм освоения машинного обучения?

    @shmelevka
    Посмотрите специализацию от яндекса на coursera, там даётся и математический базис и ds, после этого можно переходить на курс от Duke там же. Ссылку в данный момент не могу дать, с телефона пишу.
    Ответ написан
    1 комментарий
  • Существует ли курс/статья/книга где приведен полый алгоритм освоения машинного обучения?

    @Alibaba2018
    1. Базовый курс по Питону (Если никогда в жизни вообще не программировали начинайте с Learn Python the Hard Way -> Python Crash Course by Eric Matthes -> Automate Everything -> John Zelle "Python Programming"
    (обязательно(!) делать все упражнения - набивать руку, т.к. только материал будет действительно осваиваться)
    (если же уже есть опыт в программировании: Allen Downey - Think Python, Diving into Python и Learning Python (Lutz))
    1A: Обязательно нужно знать алгоритмы чтобы вообще понимать что такое более-менее профессиональное программирование: Самая лучшая и детальная книга по алгоритмам на Питоне имхо: "Data Structures and Algorithms in Python" by Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser
    1Б: на yotube есть канал Lucid Programming, где автор тоже показывает очень много алгоритмов на примерах
    2. потом изучать хорошо матан(single variable calculus + multi variable calculus)/линал/статистику и probability: на уровне понимания концептов (можно учить по Khan Academy или Udemy, где я брал классы по Calculus от Krista King, мне понравилось как она обьясняет)
    Есть неплохие видео от Imperial College of London по математике:
    Mathematics for Machine Learning full Course || Linear Algebra || Part-1 https://youtu.be/T3TpdPmTLso
    Mathematics for Machine Learning Full Course || Multivariate Calculus || Part -2 - https://youtu.be/m998PdOCFcY
    3. Далее бесплатный курс по ML от Andrew Ng на YouTube и Courser'a - бесплатно
    3.А Также очень детальный курс по математике от создателей DS для R: An Introduction to Statistical Learning - University of Southern California - доступна бесплатно - где вся подноготная математики показывается очень детально
    4. Hands-on machine learning with scikit-learn and tensorflow - o'reilly - куча практики и теории
    5. Python for Finance - O'Reilly - вообще у O'Reilly по Python очень неплохие книжки по питону и МО, где можно много чего увидеть in action
    6. куча курсов за $10 на Udemy от Jose Portilla (в том числе R, SQL, Spark with Python, Spark with Scala, Computer Vision, NLP, Plotly, Algorithms, Python for Finance, Deep Learning: TensorFlow, Keras итд итд итп,) - если будте брать на udemy курсы и показывает больше чем $10, напишите коммент - дам промо код по кот. скидка 94% - код дается уже купившим его курсы)
    7. очень крутой канал на YouTube у Siraj Raval по Data Science - куча примеров, видео, инфы итд итп (найдите там видео как выучить Data Science in 3 months, там тоже очень много ресурсов, но имхо за 3 месяца, как он говорит, нереально)
    8. "data science from scratch by joel grus" старая книжка тоже от O'Reilly
    на самом деле, я бы советовал начинать с неё, даже если нет вообще никакого опыта и вообще ничего не понятно, т.к. она дает весь план что нужно учить и как организовать себе весь процесс (и потом периодически к ней возвращаться, сверять с планом)
    Также очень похожая есть книга Python for Data Analysis Book by Wes McKinney (создатель pandas), но чуть-чуть попроще, и я бы все равно советовал их вместе обе прочитать, т.к. эта намного больше концентрируется на data cleaning'e

    Вообще, Data Science на самом деле очень не сложная дисциплина по сути, просто действительно нужно много знать для того чтобы там реально начать что то делать, т.е. большой порог для вступления, но сами алгоритмы очень и очень легкие и писать, и работать с ними итд итп. Более сложнее готовить дату, моделировать, как то пытаться к ней поступиться, чтобы начать работать, а сам процесс и код на питоне проще простого.

    Ну и как Вам написали выше, как освоите всё вышесказанное (хахаха), welcome после этого всего на kaggle, чтобы начать уже делать это всё на практике;)
    Ответ написан
    Комментировать
  • Как конвертировать JSON массив в JavaScript массив?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const newData = JSON.parse(data).map(Object.values);
    Ответ написан
    Комментировать
  • Как исправить ошибку при большом количестве fetch запросов?

    MvcBox
    @MvcBox
    Software Engineer [C/C++/JS(for Node.js)/etc]
    Есть удобная библиотека bluebird
    bluebirdjs.com/docs/api/promise.map.html
    Для map есть опция concurrency.
    Соответственно, Ваш код можно переписать так:
    const Promise = require('bluebird');
    let results = await Promise.map(filteredMatches, v => handler(v.CI), { concurrency: 10 });

    Вместо 10 можете указать любое удобное количество "потоков".
    Ответ написан
    1 комментарий
  • Как сделать такой эффект?

    @yvetrov
    Готовые решения есть всегда, тут можно все реализовать с помощью display: none/class & JS. В html элементах, которые относишь к "скрытым" - прописываешь свойство стилей

    <button style='display: none;'>Кнопка</button>.

    Дальше уже вешаешь обработчик событий на элемент. При наведении на элемент срабатывает функция-обработчик, в ней прописываешь смену display с none, на block/inline-block/flex/grid; Делаешь условие, что если курсор вышел из области - сбросить стили до display: none; Как пример, можешь еще попробовать сделать через класс active/inactive. Вместо кнопки можешь сделать спокойно изображение или что-то другое, просто меняешь на что-то свое, в любом случае, делегирование тебе поможет.
    Ответ написан
    1 комментарий