• Как изменить значение элемента массива, подставляя некую переменную в качестве индекса этого элемента в массиве?

    @AWEme
    Retard Soft Inc.
    def change(arr, indexes, value):
        head, tail = indexes[:-1], indexes[-1]
        for i in head:
            arr = arr[i]
        arr[tail] = value
    
    >>> arr = [0, 1, 5, [5, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 0,  0,  0,  0]]
    >>> change(arr, [3, 1, 0], 999)
    >>> arr
    [0, 1, 5, [5, [999, 2, 3, 4, 5, 6, 7, 8, 9, 10], 0, 0, 0, 0]]


    arr - ссылка на массив с подмассивами
    indexes - массив индексов
    value - значение, которое будет вставлено в список
    Ответ написан
    1 комментарий
  • Как решить ошибку при регистрации аккаунта разработчика: "Не удалось совершить транзакцию: карты предоплаты не поддерживаются"?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    да, другая карта

    есть ряд карт, которые белые сервисы не берут
    киви - одна из таких

    можете купить вирт карту - но увы тоже угадывать какая подойдет
    или заказать нормальную в банке

    карту можно на любое фио, если не выросли - попросите родителей

    ну и ВК ж там карты раздает, попробуйте ихней
    Ответ написан
    1 комментарий
  • Как на js преобразовать обьектный массив url дерева сайта в массив возможных url путей?

    0xD34F
    @0xD34F Куратор тега JavaScript
    function getPaths(obj, path = [ '' ]) {
      const entries = Object.entries(obj);
      return entries.length
        ? entries.reduce((acc, n) => (
            path.push(n[0]),
            acc.push(...getPaths(n[1], path)),
            path.pop(),
            acc
          ), [])
        : [ path.join('/') ];
    }
    Ответ написан
    4 комментария
  • Где взять актуальные курсы валют?

    SagePtr
    @SagePtr
    Еда - это святое
    Перепробовал различные варианты и остановился на этом:
    https://query.yahooapis.com/v1/public/yql?q=select...
    Лимит 2000 запросов в час с одного IP, если не обновлять курс каждую секунду - хватит вполне. Поддерживает XML, JSON, JSONP

    UPD: К сожалению, на данный момент этот сервис прекратил свою работу, а жаль(
    Ответ написан
    3 комментария
  • Как организовать обработку url запросов на сайте на стороне сервера?

    @alexalexes
    Но это очень ресурсозатратно, поэтому я хочу создать отдельный серверный обработчик, занимающийся абсолютно всеми обращениями к сайту. Допустим, если сайт называется asd.com, то любое обращение через asd.com (asd.com/registration, asd.com/documents/users, asd.com и т.д.) должно проходить через этот скрипт. Сам скрипт, считывая url запрос, выдавал бы определенный нужный файл, а сама строка url при необходимости изменялась бы при помощи js (pushState и replaceState например)

    Ну, вы уже описали технологию, берете любой популярный веб-сервер - php, node.js, python, asp net и реализовываете.
    А каким образом вообще можно организовать сервером обработку url

    Любой запрос, прежде чем попасть на выполнение в серверный скрипт попадает на обработку на http сервер.
    Скорее всего, вы будете работать с apache или nginx. Ответ на этот вопрос кроется в искусстве конфигурирования файла htaccess или nginx.conf.
    PS: После того, как http сервер перенаправит запрос согласно правилам конфиг. файла до нужной точки входа - тому файлу-скрипту, с которого начнется выполнение кода на сервере, сам скрипт точки входа может передать управление другому исполняемому файлу компоненту или просто подключать нужные скрипты, согласно параметрам url. Этот процесс называется роутингом, а координирующий скрипт - роутер.
    Если вы поищите "Роутер или роутинг в <любимая среда разработки/фреймворк>" то найдете пример реализации.
    Причем, роутинг можно реализовывать, как на стороне сервера (роутинг php/laravel/node.js), так и на стороне клиента (клиентские фрейворки, например vue).
    Самый наколеночный вариант будет выглядеть так.
    После того, как научитесь создавать многокомпонентное серверное приложение и связывать их, можете посмотреть, что такое Rest API, GraphQL, TreeQL.
    Ответ написан
    Комментировать
  • Как утроена файловая система ВКонтакте?

    если во ВКонтакте миллионы пользовательских аккаунтов, то, получается, что для каждого из них существует отдельная папка/файл на сервере

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

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

    Если очень-очень сильно упростить, то задача программиста, специализирующегося на backend-разработке - писать программы, которые принимают HTTP-запросы, обрабатывают их, и генерируют ответ в виде HTML/JSON/ещё чего-нибудь. Другое дело, что "обработка запроса" может быть очень сложной операцией и состоять из сотен более мелких.
    Ответ написан
    Комментировать
  • Как утроена файловая система ВКонтакте?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Адресная строка давно не означает путь по "папкам" на сервере. Такое давно не используют, а используют роутинг.
    Адресная строка разделяется на составные части, которые могут означать что угодно. Это зависит от фантазии разработчика. Например, https://site.ru/books/1
    Здесь ты видишь основной домен site.ru, затем раздел books, а 1 - это номер книги.
    По этому пути на сайте вообще может не быть ни файла 1, ни папки books. А будет запущен код роута books, который выполнит запрос к БД и достанет данные книги с id - 1.
    Ответ написан
    Комментировать