• Что изучать верстальщику и в каком порядке?

    xtala
    @xtala
    Постигает Дзен
    — Куда мне отсюда идти?
    — А куда ты хочешь попасть?
    — А мне все равно, только бы попасть куда-нибудь.
    — Тогда все равно куда идти. Куда-нибудь ты обязательно попадешь.
    "Алиса в стране чудес" Л. Кэрролл
    Ответ написан
    Комментировать
  • Какая есть самая простая книга по алгоритмам и структурам данных?

    MrNexeon
    @MrNexeon
    Когда то я задавался таким же вопросом.

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

    Во-вторых, так как я программирую на C++, у меня есть стандартная библиотека std, которая предоставляет мне реализации (интерфейс) всех алгоритмов и структур данных. Мне же остается понять что и в каких случаях лучше использовать.

    Книг по алгоритмам и структурам данных множество, но почти все они (о ужас!) довольно сложные.

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

    Долой формальность!
    Ответ написан
    4 комментария
  • Что не так с парсингом?

    FFxSquall
    @FFxSquall
    Могу писать код, могу не писать
    length, а не lenght. Ну и firstChar у вас нет, а есть firstChart

    P.S. Ну и когда вы проверяется row, что бы вывести сообщение, что "мимо доски", нужно не на NaN проверять, а на < 0, так как выражение
    var row = alphabet.indexOf(firstChar)
    если найдет в массиве элемент вернет его позицию, если нет -1
    Ответ написан
    Комментировать
  • Есть какие нибудь материалы по JS для подготовки к собеседованию?

    @Bukinator
    https://habrahabr.ru/post/231071/ Всё ещё актуально
    Ответ написан
    Комментировать
  • Меры предосторожности при парсинге на Python?

    Иногда проще наоборот настроить парсер в 10 потоков и спарсить всё за 30 минут пока админы не опомнились чем растягивать это хз на сколько ))
    Ответ написан
    Комментировать
  • Яндекс API в чем ошибка?

    miraage
    @miraage
    Старый прогер
    У Яндекса latitude/longitude наоборот идут.
    Ответ написан
    1 комментарий
  • Как быстро выучить C++ для олимпиадного программирования, если есть опыт профессиональной разработки на PHP и JavaScript?

    RubaXa
    @RubaXa
    Всё просто, следуйте это инструкции
    252633.jpg
    Ответ написан
    Комментировать
  • Почему вложенный цикл теряет доступ к открытому файлу со второй итерации основного цикла?

    @fireSparrow
    Итерация по файлу отличается от итерации по списку.
    При использовании в цикле списка, готового объекта-итератора нет, и для списка интерпретатор создаёт объект-итератор.
    Но файловый объект - сам себе итератор, поэтому интерпретатор использует для итерирования уже существующий итератор, а не создаёт новый. Поэтому, если итератор файлового объекта исчерпается после прохода по нему, то к следующему витку он так и останется исчерпанным.
    Ответ написан
    1 комментарий
  • Почему вложенный цикл теряет доступ к открытому файлу со второй итерации основного цикла?

    @deliro
    Потому что это вложенные циклы, а не параллельные.
    Если тебе нужно удалить из А все элементы, которые есть в B, при этом, длины файлов недостаточно большие, чтобы занять всю твою оперативку, можно сделать так:
    with open('A.txt') as a, open('B.txt') as b, open('finish.txt', 'w') as finish:
        a_items = [l.strip() for l in a]
        b_set = {l.strip() for l in b}
        finish.write('\n'.join(item for item in a_items if item not in b_set))


    Если в finish.txt не важно, не будет дубликатов из А или нет (или, например, A.txt содержит только уникальные значения) и порядок не важен тоже:
    with open('A.txt') as a, open('B.txt') as b, open('finish.txt', 'w') as finish:
        a_set = {l.strip() for l in a}
        b_set = {l.strip() for l in b}
        finish.write('\n'.join(a_set - b_set))
    Ответ написан
    3 комментария
  • Как правильно отлавливать ошибки в urllib?

    sim3x
    @sim3x
    docs.python-requests.org/en/master

    Для того чтоб понять, что за класс ошибки у тебя срабатывает и продолжить исполнение
    try:
        pass
    except Exception as e:
        print(e)


    однако прервать по ctrl+c также будет нельзя
    Ответ написан
    Комментировать
  • Как правильно составить регулярное выражение на Python?

    Tark
    @Tark
    Pyramid'альный мир
    "Правильное" регулярное выражение для вашего случая

    m = re.search('<br/>(.*)<br/>', text)
    if m:
        print(m.group(1))


    Но тут есть одна проблема. br - непарный тег, у него нет ничего "внутри". Это первое. Второе: парсить страницы лучше специализированными фреймворками типа BeatifulSoup, Grab, lxml - там же есть и функции для очистки результата... наверное. Если нет - можно воспользоваться Bleach. Успехов.
    Ответ написан
    Комментировать
  • Как пишутся системы оплаты для сайта?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Как осуществляется написание платежной системы касательно visa и mastercard или для конкретного банка? что делается в данном случае? (Допустим требуется работа со сбербанком и альфабанком).

    Из личного опыта:
    a. Приезжаете в офис банка у которого есть услуга "интернет эквайринг", показываете своё юрлицо, уставные документы, бенефициаров, обороты от 50 млн в месяц.
    * некоторые работают и с меньшими оборотами, но % будет крайне не выгодным.
    ** без запущенного и работающего проекта идти в банк бессмысленно.
    b. Ждете 2-6 недель пока СБ банка проверит все.
    c. Ждете 2-4 недели пока банк подпишет договор
    d. Получаете реквизиты и документацию API конкретного банка.
    e. Реализуете
    f. Ждете 1-2 недели пока банк проверит что у Вас все согласно их протоколу.
    g. Получаете боевые реквизиты.

    Учтите что:
    1. Если Ваши объемы меньше чем 50млн+ в месяц - с вероятностью 99% Вам будет СИЛЬНО выгоднее работать через посредника. Посмотрите на uniteller.ru , payture.com/ru , payler.com - если Вы будете достаточно убедительны на переговорах, вполне реально сторговать их до 2-2.5% даже на маленьких оборотах (1млн-5млн)

    2. Прямые API банков мягко говоря не современны. Как правило там не будет ни удобного личного кабинета, ни вменяемой службы поддержки - ничего. Зато будут проверки, требования бумажной отчетности и прочие милые сердцу советского бюрократа вещи.

    3. Риски при работе через посредника - по факту минимальны. Все приведенные выше делают выплаты ежесуточно, т.е даже если посредник накроется - Вы максимум рискуете дневным оборотом.

    С учетом данных пунктов, по моему мнению прямой договор с банком имеет смысл если у Вас настолько большие обороты - что разница в десятые доли процента окупает весь этот геморрой.
    По факту есть море проектов с большими оборотами (mamba, badoo, etc) кто продолжает работать через агрегатор, минимизируя расходы на юристов, бухгалтеров, техническую поддержку работы шлюза итд итп.
    Ответ написан
    1 комментарий
  • Что делает этот код на пальцах?

    alsopub
    @alsopub
    Скорее всего вы непоняли момент с передачей функции в качестве параметра.
    Да, в javascript в качестве параметра можно передавать не только числа, строки и массивы, но и функции.
    Функция может быть объявлена выше и иметь имя, тогда в качестве параметра передается ее имя (без скобок).
    В данном случае функция является анонимной (без имени) и сразу объявляется в том месте, где она передается в виде параметра.
    Функция reduce принимает следующие параметры: массив, функция от двух переменных, начальная сумма
    combine(current, array[i]) - это вызов переданной в параметрах функции с двумя аргументами.
    Ответ написан
    Комментировать
  • Как правильно обращаться к элементам списка?

    AnnTHony
    @AnnTHony
    Интроверт
    Цикл for здесь лишний.

    while(testlist):
    	x = testlist.pop(0)
    	print('Беру элемент', x)
    	print('Удаляю', x)
    Ответ написан
    1 комментарий
  • Как правильно обращаться к элементам списка?

    @VovanZ
    Потому что нельзя изменять список (да и любую другую коллекцию), во время итерации по нему же.
    Ответ написан
    2 комментария
  • Как вывести значение ключа из словаря вложенного в список?

    @deliro
    Эмм..
    for item in your_list:
        print(item['id'], item['username'])


    ilyakhaustov, ну тогда и я повыделываюсь)
    print('\n'.join('%s %s' % (item['id'], item['username']) for item in your_list))
    Ответ написан
    Комментировать
  • Как реализуется кэширование поиска?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Как решаются подобные проблемы в серьёзных проектах?


    Никак. Оптимизируют сам поиск, используя денормализацию данных что бы максимально упростить поиск и сделать его как можно менее напряжным для сервера. Ну и что бы "сократить" количество запросов используют "приемы" вроде throttle/debounce на клиенте, что бы не на каждый кник мышкой слать запрос, а когда пользователь не проявлял активности, к примеру секунду.

    Частично эту проблему можно решить HTTP кешированием. То есть все парамеры поиска ходят в queryString а значит по одному URI мы можем иметь нужную страницу/данные. Однако вармат такого кэша будет занимать много времени, а сложность инвалидации будет так высока, что нужно 10 раз подумать прежде чем решаться на такое.
    Ответ написан
    1 комментарий
  • Какова значимость диплома в бизнесе по СНГ (IT индустрия)?

    kumaxim
    @kumaxim
    Web-программист
    Фишка ВУЗа не в том, чтобы научить Вас использовать какой-то язык/библиотеку/фреймворк.
    Я когда сам был на 1-2 курсах, задавался сильно вопросом: "А для чего мне этот С++? Сейчас для веба PHP & CodeIgniner используют очень широко, заказов на фриланс-биржах на этот стек много, в описаниях вакансий часто эти ключи встречаются. Вот зачем спрашивается мне этот Ваш С++ с его управлением памятью и прочими ненужными вещами..." Но минуло 4 года, я получил диплом. К этому времени CI уже сдулся, активно все стали использовать альтернативные языки - Python, Ruby. Фреймворки для PHP тоже поменялись - Yii, Laravel...

    Это я все к чему... Универ должен заложить в Вас основу, базу, которая не устареет через 3-4-5 лет к тому моменту, когда Вы получите диплом. А что является этим фундаментом? Скажем интерпритаторы PHP, Ruby, Python написаны C, и зная С/С++ можно очень легко выучить любой вышестоящий язык, синтаксис по большому счету там везде один и тот же. Зная как работает интерпритатор в приницпе, можно написать свой язык программирования. И если язык может часто и не нужен, то вот парсеры с чего-нибудь куда-нибудь мне приходится писать очень часто, а любой парсер имеет упрощенную грамматику языка программирования. Вы думайте необходимость в парсерах скоро вымрет? Что т мне так не кажется...

    Сейчас очень популярна стала тема нейронных сетей, искуственного интелекта, машинного обучения... А что лежит в самой основе этого? Да банальная теория графов. Любая нейронная сеть и ИИ это по большому счету граф, да, со сложной структурой, да, порой в нем может начать творитья просто магия, но тем не менее эта структура и базовые операции с ней были предложены и изучены еще в середине прошлого века. Когда устареет теория графов? Графов вокруг нас больше чем Вы думайте - маршрут движения общественного транспорта, хотя бы например. "Как добраться из пункта А в пунт Б" - типичная задача комивояжера. Когда это уйдет? Думаю только с изобретением устройства для телепортации, и то не факт что полностью.

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

    Говоря о том, что "актуальные сейчас для бизнеса технологии вообще не изучаются, ВУЗ дает устаревшие знания и т.д.", я могу сказать только одно - для бизнеса всегда будет актуально только одно - решение его операционных задач с минимально возможными ресурсами. А вот какие именно инструменты помогают оптимизировать операционную деятельность компании - Java, Python или что-то еще в диапазоне 2-3 лет может сильно варьироваться. Новый язык/фреймворк реально выучить и начать решать на нем задачи за 2-6 недель, если Вы не дурак конечно. Какой именно язык/фреймворк это будет - нужно смотреть задачи компании и имеющиеся на рынке инструменты для решения онных и их изучанием уже и заманиматься.
    Ответ написан
    1 комментарий