• Как скачать миллион картинок?

    deepblack
    @deepblack
    download_images_from_csv.sh (допилите под себя если нужно)
    spoiler
    #!/bin/bash
    COLUMN=1 # csv column to extract
    RENAME=false # if we should rename the file, note that is was really specific for my problem.
    THREADS=16 # threads to use by parallel
    
    #Set Script Name variable
    SCRIPT=`basename ${BASH_SOURCE[0]}`
    
    #Set fonts for Help.
    NORM=`tput sgr0`
    BOLD=`tput bold`
    REV=`tput smso`
    
    # Help function
    function HELP {
      echo -e \\n"Help documentation for ${SCRIPT}."\\n
      echo -e "Basic usage: ./$SCRIPT"\\n
      echo "Command line switches are optional. The following switches are recognized."
      echo "-f csv file = required should be last argument"
      echo "-c column, default $COLUMN"
      echo "-t threads, default $THREADS"
      echo "-r renamd, should be renamed - work in progress here because this is really specific renaming"
      echo -e "-h --Displays this help message. No further functions are performed."\\n
      echo -e "Example: ./${BOLD}$SCRIPT -rc 2 -f file.csv"\\n
      exit 1
    }
    
    
    #Check the number of arguments. If none are passed, print help and exit.
    NUMARGS=$#
    if [ $NUMARGS -eq 0 ]; then
      HELP
      exit 1
    fi
    
    while getopts ::c::r:h:f FLAG; do
      case $FLAG in
        t)
            THREADS=$OPTARG
          ;;
        c)
            COLUMN=$OPTARG
          ;;
        r)
            RENAME=true
          ;;
        h)  #show help
          HELP
          ;;
        \?)
          echo -e \\n"Option -${BOLD}$OPTARG${NORM} not allowed."
          HELP
          ;;
      esac
    done
    
    shift $((OPTIND-1))
    
    FILE=$1
    # shift ops, all optional args are now removed $1 will have to be the filename
    
    if [ "$RENAME" = true ]; then
        mkdir -p images && cat $FILE | tail -n +2 | cut -d ',' -f$COLUMN | grep http | sed -e 's/^[ \t\r]*//' | \
            (cd images; parallel -j$THREADS -d'\r\n' --gnu 'wget {}; mv {/} `echo "{/}" | tr "." "_" | cut -d "_" -f1,3 | tr "_" "."`')
    else
        mkdir -p images && cat $FILE | tail -n +2 | cut -d ',' -f$COLUMN | grep http | sed -e 's/^[ \t\r]*//' | \
            (cd images; parallel -j$THREADS -d'\r\n' --gnu 'wget {};')
    fi
    Ответ написан
    Комментировать
  • Куда стоит пойти учиться новичку?

    deepblack
    @deepblack
    Посоветуйте, куда стоит пойти учиться и насколько это рентабельно

    Обучаться лучше самостоятельно, информации в открытом доступе валом.
    Желательно сразу начинать с англоязычных источников (документация по языку, фреймворку).
    Если нет мотивации, то займитесь чем нибудь другим (не разработкой) т.к. то что вы заплатите деньги ничего не гарантирует.
    Если вы идёте в IT за баблом, то впоследствии вы разочаруетесь.
    И конечно же научитесь гуглить и самостоятельно искать полезную информацию, просто незаменимый навык (подобные вопросы тут каждую неделю задают)
    Ответ написан
    Комментировать
  • Как работать с изображениями в Python?

    alternativshik
    @alternativshik
    PILlow
    Ответ написан
    Комментировать
  • Как лучше хранить контент в БД: HTML vs MarkDown?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Поскольку из поиска люди попадают в пост по заголовку, то отбросим несущественные заморочки автора с его текущим проектом и ответим на вопрос, который он вынес в заголовок:

    Однозначно MarkDown.

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

    Маркдаун легко читается, прекрасно редактируется, быстро корнвертируется.
    Тут даже вопроса нет, что применять - окаменелое экскремент мамонта или новенький айфончик.
    Ответ написан
    Комментировать
  • Почему обновить амд (мать и цп + nvidia sli) игровой системник проще?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Если посмотреть историю, то это не совсем так.
    Раньше AMD в принципе выпускала меньше процессоров, и шла ЗА интелом, следовательно видела ошибки Интела и не допускала.
    Последние 10 лет, частота CPU особо не растет. Хардварные оптимизации больше влияют на датацентры, чем на домашнее использование, поэтому как бы и железо обновлять особо нет смысла. В основном видеокарточки, SSD, интерфейсы.
    Если взять комп 8-летней давности, он не сильно уступает.
    А вот если восемь лет назад взять комп 16-летней давности, там разница будет огромная.
    Ответ написан
    4 комментария
  • Базовые знания технологий баз данных?

    @SirBataneg
    веб-разработчик
    До третьей нормальной формы базовые.
    Ответ написан
    1 комментарий
  • Стоит ли в 2019 учить mobx?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Да.
    mobx в большинстве случаев лучше чем redux, redux вовремя заехал на волне хайпа.

    Карта не закон, это мнение человека который её нарисовал.

    "необходимости" ни в чем нет - есть возможность и варианты, среди которых можно выбрать то что лучше подходит.
    mobx не имеет отношения к асинхронным запросам, как и redux.
    Но в силу его реактивности с ним можно использовать что угодно- от простого fetch до чего-то навороченного.
    Все что способно поменять значение у поля объекта отлично интегрируется с mobx
    Ответ написан
    Комментировать
  • Какую литературу посоветуете по тестированию?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    TDD Кента Бека - помогает понять, откуда взялась популярная архитектура фреймворков тестирования (ссылка) - читала, мне частично помогла.
    xUnit test patterns - не читала, но все советуют - тоже объясняет принципы написания тестов без четкой привязки к технологии (ссылка).
    По разнице в подходах тестирования - существует пирамида тестирования, но на практике мне не всегда понятно, где границы - приемочные и UI тесты ориентированы на use cases - т.е. на путь - в какой последовательности юзер проходит фичу и какой результат ожидает на каждом шаге (заходит на страницу, заполняет данные, ждет ответа; программа-клиент получает токен, шлет запрос, ждет респонс), а модульные тесты ориентированы на проверку кода как изолированных элементов - т.е. тестирование происходит отдельно от общего процесса, в котором этот код используется, чтобы можно было локализовать проблему с максимальной точностью.
    PHPUnit я изучала только по документации, просто прошлась по всем примерам, считаю приемлемым вариантом изучения. Лучше сначала хорошо понять PHPUnit, а потом учить Codeception. Учиться, как мокать и стабать, можно уже на конкретных задачах, по мере надобности.
    Ответ написан
    1 комментарий
  • Чипсет под пластмассой?

    @Fixid
    Кто сказал что это пластмасса? Вижу обычный крашеный алюминиевый профиль
    Ответ написан
    Комментировать
  • Как делать 3D модели по фото не идеально точными?

    GavriKos
    @GavriKos Куратор тега Unity
    Модели для игр не должны соответствовать реальному миру, а должны соответствовать требованиям геймдизайнеров. Пока не усвоите это - вы не моделлер игрового мира.

    Ну а так - заведите линейку (рекомендую металлическую), и бейте себя по рукам когда будут приступы перфекционизма.
    Ответ написан
    7 комментариев
  • Какую операционную систему выбрать для организации стрим-сервера?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Любую, с которой знакомы разработчики и админы.
    Ответ написан
    Комментировать
  • Какие градации и ранги у IT-специалистов?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Единых градаций и рангов нет. В каждой компании они свои.
    Ответ написан
    Комментировать
  • Как создать веб-сервис (Задание от Mail.ru) новичку?

    @GrayHorse
    В самом начале же написано:
    Ниже следует описание проектной работы.
    Это не задание. Это описание подхода, котрым я предлагаю вам проверять успешность прохождения занятий.
    Задание вы получите после прослушивания всех материалов модуля.


    Т.е. вы застопорились даже не на задании, а на чтении плана.
    А как запускать (и где взять), будет рассказано в главе, не поверите, "1.4 Java: Запуск сервера".
    И под каждом степом есть секция с комментариями, очень полезная, если есть сложности.

    И перед эти курсом крайне желательно пройти эти два:
    Java. Базовый курс
    Java. Functional programming
    Ответ написан
    Комментировать
  • Как обойти большой json файл и обновить все связанные записи в MySQL, с отставанием от файла < 2 сек.?

    Правильное решение - парсер должен сам сразу писать в БД.

    Если это невозможно надо постараться максимально устранить накладки и двойные обработки:
    На каждую итерацию work.php отправляет ID в скрипт getEvent.php с помощью fsockopen.
    ... В getEvent.php опять же идет гет актуального JSON, декод и скрипт ищет в "events" ID, которое ему отправил work.php затем обрабатывает эти данные и обновляет их в базе MYSQL

    Вот это что за хрень? Почему work.php не может сразу отправить данные getEvent? Зачем getEvent заново гетит JSON и заново ищет там ID?
    А потом вы жалуетесь что:
    Оперативка кушается потому что в work.php каждые 2 секунды гетится json + в 600-800 открытых getEvent.php тоже гетится этот же json.


    чтобы они не отставали от данных в json файле более чем на 2 секунды.

    И сколько гигабайт в вашем JSON что процесс не может его обойти и отправить мускул за 2 секунды?
    Ответ написан
    4 комментария
  • Существуют ли среди великих программистов люди начавшие кодить лет в 18 - 25?

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    Не такого понятия "великий программист". Некоторые в 40 лет начинают и успешно занимаются этой профессией.
    Ответ написан
    Комментировать
  • Можете оценить работу, сказать где ошибки?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Скажу как как не особо разбирающийся в дизайне...
    Знаю, что есть определённые давно зоны, где должен быть текст, картинка и прочие элементы на рекламном блоке. Об этом можно найти в сети.

    А теперь то, что я заметил:
    Текст, который у тебя расположен справа говорит нам о разном. Т.е. "приветствие", а под ним, чуть менее крупным шрифтом совершенно о другом. И я ещё ни разу не видел, чтоб на таких банерах писали "Мы рады видеть вас...".

    Что значит "2шт."? На складе только две есть? Или это как-то относится к акции?

    У одного изображения крема (3 слева) есть отражение, а у остальных его нет. И он и вовсе с другой перспективой снят.

    Цвета подобраны более менее не плохо.
    Ответ написан
    Комментировать
  • Актуально ли Десктоп Программирование?

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

    а web - это не только верстка.
    Ответ написан
    Комментировать
  • Где и как найти бесплатную рабочую силу для проекта for fun и где обсуждать идеи?

    petermzg
    @petermzg
    Самый лучший программист
    "Они не настолько важные-ценные, чтобы бросать свои дела и делать их."
    Но они настолько важны, что вы готовы потратить уйму времени на обучение молодых программистов, которые не будут видеть выгоды от проекта, кроме как улучшить свои знания за ваш счет?
    Ответ написан
    4 комментария