• Как спарсить вот такую json a:4:{s:3:"RUR";s:1:"1";s:3:"UAH";s:3:"2.7";s:3:"USD";s:4:"39.5";s:3:"EUR";s:4:"49.8";}?

    @Kraky
    Это сериализованный массив с данными на php. Чтобы распарсить данную строку вам необходимо вернуть с сервера десериализованный json. Например, обработать так:
    php:
    json_encode(unserialize($string));
    Это будет уже json, которым вы можете пользоваться на клиентской части через js.
    Ответ написан
    Комментировать
  • Нейросети - как можно использовать для квестов?

    @azsx
    Если прекратить верить рекламе, то надо отметить, что нейро сети - это просто один из компьютерных алгоритмов. Нейро программирование крайне не эффективное и очень ресурсоёмкое. Однако, если у вас есть возможность нанимать десятки людей на обучение системы и в ресурсах вы не ограничены, то нейро сети - ваш выбор.
    Теперь Вам не кажется странным, что тексты для доров обычно генерируют иначе?
    Ответ написан
    2 комментария
  • Почему партнерские программы дают меньше 50%?

    m77x
    @m77x
    Консультант
    вот вы сразу поставили два тега: реферальная программа и парнерская программа
    Все смешали вместе. Для того, чтобы понять разницу я вам объясню:
    Партнерская програма - это филиал какого-т сервиса, допустим хостинга. Вы не можете накручивать более 75% от отпускной для вас цены, следовательно ваш максимальны доход составит 25%. Это обусловлено нормами бухгалтерской отчетности пр...
    Реселлерская программа проще - вы покупаете скажем сервер (арендуете) по одной цене и независимо от того, сколько у вас клиентов оплачиваете его сами. А за сколько и и какому количеству клиентов вы продадите часть сервера, - это уже ваша прибыль они может достигать и 2х и 4х - все зависит уже от вас. Но не забывайте подавать налоговую декларацию, если ведете бизнес ))
    Реферальная программа - это вид маркетинговой стратегии для привлечения еще большего количества пользователей. Собственно вместо расходов на рекламу выплачивается вознаграждение реферу. Оптимально затрачивать на рекламу не более 10-15 % от прибыли. От уровня реферальной системы зависит и вознаграждение. Если увидите больше - смело можете проходить мимо - это очередная МММ.
    Ответ написан
    4 комментария
  • Почему передачу arguments делают через apply?

    romy4
    @romy4
    Exception handler
    > Почему передачу arguments делают через apply?
    чтобы поменять контекст для this

    f(a,b) ожидает, а передаёте f(arguments) — это по-вашему правильно?
    f получает (arguments, null) -> return arguments+null;
    что будет?
    Ответ написан
    5 комментариев
  • На каком уровне системный архитектор должен знать технологии?

    Дисклеймер: я не системный архитектор, и даже не знаю, кто конкретно должен так называться, наверное это что-то вроде технического директора.

    Или у меня чрезмерно идеалистические представления о роли архитекторов в разработке?

    Да, чрезмерно. Архитекторы (как вы их называете) не боги и даже не "вторые после бога".

    включая "подводные камни", которые, как правило, доступны только прилично поработавшим с технологией специалистам?

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

    Опять же, отрасль очень бурная - когда успевать работать и следить за всем, что в ней происходит?

    А надо уметь главное выделять. Ну к примеру, вот позавчера анонсировали докер на винде на нативных контейнерах. Что нужно знать хорошему техническому директору? Что в 2016-й винде есть контейнеры (причём двух видов, настоящие и поверх hyper-v), что докер теперь будет их использовать со всеми вытекающими. Само собой нужно представлять что такое контейнер и чем от отличается от ВМ. Вот и всё что нужно знать, ну и посматривать за отзывами первых, кто осмелится опробовать технологию в деле.

    Ну или вот возьмём TypeScript. Не обязательно писать на нём или знать его досконально. Достаточно понимать, что такое статическая типизация в языке, и уже можно будет представить разницу между использованием в большом проекте ES5/ES6 и TypeScript. Достаточно принять решение опробовать его у себя (как сейчас делаем мы) на небольшом куске проекта, и сделать вывод о дальнейшем использовании.

    Возьмём, наконец, базы данных. Не думаю, что хороший "архитектор" обязан знать, что в какой-нибудь Монге какие-нибудь запросы с агрегацией по двум свойствам работают в 5 раз медленнее, чем по одному свойству. Однако то, что в Монге нет атомарной записи сразу нескольких документов, знать очень полезно, я бы даже сказал, критично (иначе можно пытаться написать какой-нибудь биллинг на Монге вместо какой-нибудь реляционной базы, и сорвать пучок проблем).

    Техническому директору проекта ("архитектору") гораздо важнее уметь правильно обрабатывать информацию, уметь снимать маркетинговую шелуху (вроде той, что была и есть с NoSQL от всех проблем и несчастий), спокойно реагировать на модные баззворды, и собирать библиотеку доверенных людей и информационных ресурсов. И важно знать о вещах, которые с течением времени не меняются, или меняются медленно и неохотно:
    • для каких задач подходят функциональные языки, а для каких - ОО;
    • что графовая СУБД как правило быстрее обрабатывает запросы на поиск с большой длиной цепочки;
    • что утверждение из предыдущего пункта неплохо бы проверить на практике с конкретными СУБД;
    • что веб-фреймворки бывают толстые и тонкие;
    • какие сегодня есть вариации паттерна MVC;
    • что сборка мусора это всегда накладные расходы и иногда не вполне предсказуемое поведение;
    • что данные от пользователя нужно фильтровать, иначе в вашей системе найдут машину Тьюринга не там, где надо;
    • что в информационной системе есть компоненты с разным уровнем доверия, равно как и сотрудники;
    • что транзакции в СУБД придумали не для того, чтобы учебники стали толще.
    Ответ написан
    4 комментария
  • GroupBy из lodash как выгдядит на js?

    mmmaaak
    @mmmaaak
    в документации к лодашу у каждой функции есть ссылка source, она ведет на гитхаб и по якорю точно покажет реализацию данной функции, не благодари
    Ответ написан
    1 комментарий
  • Что значит последовательный участок памяти?

    @Mercury13
    Программист на «си с крестами» и не только
    Один последовательный участок памяти — это значит «последовательные адреса памяти». Таковыми будут массив простой и динамический, строка традиционного устройства, и все структуры памяти, что на них основаны. В том числе простейший стек и кольцевая очередь.

    Для чего это нужно?
    1. Это ближе к железу: проще код, лучше работает кэш, а значит, быстрее.
    2. Некоторые функции, особенно нешаблонные, для своей работы требуют именно последовательных ячеек памяти.

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

    Совершенно верно, будет. Отсюда и знаменитая ошибка «переполнение стека» — непонятно, как наладить стек вызовов бесконечной ёмкости и относительно простого устройства. Потому, если нужна очень глубокая рекурсия (например, при обходе сетей), стек вызовов приходится эмулировать.
    Ответ написан
    7 комментариев
  • При обработке элемента this с методами jQuery возвращают is not a function?

    Fett
    @Fett
    Разработчик
    Судя по контексту, у Вас ths - HTML DOM Input Text Object, оберните его jQuery
    var self = $(ths);
    Ответ написан
    Комментировать
  • Какие интересные методы или способы авторизации на сайте вы знаете?

    In4in
    @In4in
    °•× JavaScript Developer ^_^ ו°
    Авторизация должна быть не интересной, а удобной и быстрой.
    Добавьте возможность авторизоваться на вашем ресурсе через аккаунты других сервисов (тех же соц. сетей). Этого будет достаточно.

    P.s (ответ по теме): можете за место паролей поставить нечто вроде электронных подписей =)
    Ответ написан
    Комментировать
  • Отказаться от group by и sort by?

    При этом "узким горлышком" производительности веб приложений как правило является именно БД.

    Логично, ведь большинство веб-приложений это выборка с некоторой простой обработкой. А БД не все умеют хорошо спроектировать.
    Имеет ли смысл сортировать и группировать результаты выборки с помощью ЯП, чтобы убрать сортировку и группировку из запросов?

    Это имеет смысл только если у вас вообще нет индексов, и по каким-то непостижимым причинам вы не можете их добавить. Чтобы отсортировать быстрее СУБД, нужно построить индекс самому, а вы вряд ли сделаете это лучше СУБД, еще и так, чтобы покрыть расходы на передачу данных. Группировку имеет смысл только если агрегирующая функция вычислительно очень сложная, но такое вы скорее всего в SQL запросе писать и не будете.

    Даже если у вас sort и group действительно занимают основной процент времени, перенос этих операций в код приложения врядли вам поможет. Иначе говоря, пока вы добьетесь приемлемого результата от такого решения, вы добрую часть алгоритмов СУБД перепишите заново (сначала вы напишите индексы для поиска или сортировку слиянием, потом, как заметил Сергей Савостин у вас всё равно данные не будут влезать в ОЗУ и вы захотите писать их на диск, тут же вашу копию данных в приложении нужно будет синхронизировать и вы начнёте писать примитивную репликацию и так далее..)
    Ответ написан
    Комментировать
  • Случайное добавление в список с проверкой на одинаковые элементы, как это правильно сделать?

    @fireSparrow
    Я правильно понимаю, что вам нужно из имеющегося списка взять случайное количество случайных слов?

    Тогда это можно сделать гораздо проще, без цикла:

    import random
    
    WORDS = ["kot", "maga", "lada", "sobaka"]
    
    rand_num = random.randint(1, len(WORDS))
    new_words = random.sample (WORDS, rand_num) 
    
    print(new_words)


    PS: И кстати, в питоне термин "словарь" имеет особый смысл. Не надо этим словом называть просто последовательность слов.
    Ответ написан
    2 комментария
  • Существует ли у значений объекта индекс? Как его получить?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    У обычного объекта - нет. Но вы можете использовать Map.
    Ответ написан
    Комментировать
  • Как лучше подключить css?

    @SergeyZelensky-Rostov
    Вообщем, надо использовать каждый способ, например у вас есть фон, и определенная разметка, которая должна отобразиться как можно быстрее, для нее фрагмент кода помещайте в теле документа, все остальные стили в файл, очень желательно чтобы файл был один, загрузку скриптов, можно делать в конце документа, со стилями так не прокатит
    Ответ написан
    7 комментариев
  • Откуда третий аргумент в setTimeout?

    EreminD
    @EreminD
    Кое-что умею
    Надо где-нибудь посмотреть про это
    Судя по всему, просто набор параметров для вызываемой функции. И, параметров может быть больше
    Вот пример

    Что из себя функция resolve представляет? Пробовали написать не 1, а 2, 3, 4 - результат меняется?
    Ответ написан
    1 комментарий
  • Зависимости внутри системы лучше строить от интерфейсов или абстрактных классов? Когда лучше использовать абстрактный класс и когда интерфейс?

    По-моему зависимости внутри системы от интерфейсов более гибкие.

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

    LoggerInterface

    В каждом ОО-языке свои конвенции именования интерфейсов, но скорее всего лучше назвать просто Logger. Вы же не пишете Class в конце имени каждого класса.

    Подскажите, пожалуйста, как правильно определить когда использовать интерфейс и когда абстрактный класс?

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

    @nirvimel
    #include <iostream>
    
    class Cam;
    
    class OutputBuffer {
    public:
        OutputBuffer() { std::cout << "OutputBuffer " << this << " initialized\n"; }
    
        void receive(Cam &cam) { std::cout << "OutputBuffer " << this << " receiving data from camera " << &cam << "\n"; }
    };
    
    class Cam {
        static OutputBuffer buffer;
    public:
        Cam() { buffer.receive(*this); }
    };
    
    OutputBuffer Cam::buffer = OutputBuffer();
    
    int main() {
        Cam cam1, cam2;
    };


    OutputBuffer 0x6013d1 initialized
    OutputBuffer 0x6013d1 receiving data from camera 0x7fff7742970e
    OutputBuffer 0x6013d1 receiving data from camera 0x7fff7742970f
    Ответ написан
    4 комментария
  • Звуковое оповещение при нахождении определенного текста на странице?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Согласен, через greasemonkey - оптимальнее всего.
    Ну берёте js-либу которая играет звук и по окончанию загрузки DocumentReady - парсите весь DOM: document.innerHTML (вроде так..)
    Ответ написан
    1 комментарий
  • Почему в интерфейсе нельзя использовать protected или private?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Интерфейс предназначен для декларирования внешнего API без уточнения реализации. В нем должны быть лишь публичные члены.

    Вообще говоря, это искусственное ограничение, принятое для удобства. В том же C++ в качестве интерфейсов используются чисто виртуальные (абстрактные) классы без состояния. Наличие же специальной синтаксической конструкции (интерфейсов, как в C# или Java) позволяет явно подчеркнуть, что программиста там не ждет никакого сюрприза и этот тип используется как "клей" между другими классами.
    Ответ написан
    Комментировать
  • Что означает этот meta-тег?

    Xserber
    @Xserber
    Full-stack developer. React.js, AngularJS + NodeJS
    IE=edge при заходе через IE указывает браузеру включать поддержку максимально доступной версии.
    chrome=1 в IE при установленом плагине Google Chrome Frame включает рендер страницы через движок WebKit
    Ответ написан
    Комментировать
  • Что означает этот meta-тег?

    @Xozin
    Гуглится в 3 клика.
    htmlbook.ru/html/meta

    charset - Задает кодировку документа.
    content - Устанавливает значение атрибута, заданного с помощью name или http-equiv.
    http-equiv - Предназначен для конвертирования метатега в заголовок HTTP.
    name - Имя метатега, также косвенно устанавливает его предназначение.
    Ответ написан
    Комментировать