• Может ли JavaScript (клиентский) работать с файловой системой?

    Stalker_RED
    @Stalker_RED
    Может, если:
    • в браузере уязвимость, позволяющая работать с ФС.
    • установлены плагины, позволяющие работать с ФС.
    • в операционной системе зарегистрирован протокол, позволяющий работать с ФС.

    Вероятно, есть и другие способы выхода из песочницы.
    Ответ написан
    Комментировать
  • Как правильно передать массив?

    gbg
    @gbg Куратор тега Arduino
    Любые ответы на любые вопросы
    На C(90)/C++(98) - никак,
    на С++11 - при помощи шаблона функции с переменным количеством аргументов
    template<typename F, typename ...T> void f(F f,T...arr)
    {
       std::array<F,1+sizeof...(T)> a{f,...arr};
    //........
    }

    на С++11, массив фиксированного размера:
    #include <iostream>
    #include <array>
    
    using namespace std;
    
    void f(const std::array<int,3> &arr)
    {
    	for(const auto &v: arr)	
           cout << v << " ";
    }
    
    int main() 
    {
        f({1,2,3,4,5});
    	return 0;
    }

    на C++11, массив произвольного размера (но с использованием кучи):
    #include <iostream>
        #include <vector>
         
        using namespace std;
         
        void f(const std::vector<int> &arr)
        {
        for(const auto &v: arr)	
        cout << v << " ";
        }
         
        int main()
        {
        f({1,2,3,4,5});
        return 0;
        }

    варианты предложил Don Kaban

    на С99
    functionCall((int[]){0, 1, 2, 3});
    спасибо, jcmvbkbc
    Ответ написан
  • Адаптация под разрешения iphone app?

    Flanker_4
    @Flanker_4
    Не все так печально, как у вас написано
    1) На данный момент разработка под эти девайсы не практикуется. Общепринято поддерживать текущую (iOS 8) и предыдущую версию (iOS 7) ОС.
    2) Аналогично предыдущему ответу, за исключением iPhone 4S
    3) и 4) одно и тоже при разработке
    5) +
    И того выходит три типа экранов.
    Как правило, это все обходится малой кровью при использовании Autolayout. А со SizeClasses можно жить даже с iPad'ами.
    P.S. начиная с iOS 8 Apple продвигает идею разработки "резиновой" верстки под iOS (size classes, autolayout'ы). Даже от ориентации девайса отказываются и рассматривают его как банальное изменение размеров "окна".

    Что касается дизайна:
    Обычно дизайн рисуется под один девайс (iPhone 6, тот же), и на все остальные кропается/растягивается. Арты используются трех типов: обычные(девайсы из пункта 1), @2x(девайсы из пунктов 2,3,4,), @3x(девайс из пункта 5). Но от картинок все больше и больше отказываются, с одной стороны plane интерфейсы, с другой - iOS предоставляет отличное api для рисования программно многих вещей. А еще в мир iOS пришла векторная графика...
    Ответ написан
    Комментировать
  • Как выполнить javascript-код в песочнице на сервере?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Есть такой неймспейс "vm", см. nodejs.org/api/vm.html В нем методы: vm.createContext(sandbox), vm.createScript(code, scriptName). Так же в нем класс Script и у него методы: script.runInThisContext(), script.runInNewContext(sandbox). В общем, можно создать песочницу, у которой даже не будет доступа к require, и пробросить в нее только те функции, что нужны для безопасного выполнения скрипта. Потом обернуть выполнение скрипта в Domain, см. nodejs.org/api/domain.html И тогда уж все будет точно безопасно, и доступ ко внешнему миру будет у скрипта закрыт и если он свалится, то через domain можно поймать, и global он своими данными не засрет, т.е. песочницу можно убить и создать новую, даже не перезапуская процесс ноды. Пример использования можно подсмотреть тут: https://github.com/tshemsedinov/impress/blob/maste... Там есть некоторые хитрости, например, как сделать примесь своих функций к базовым классам в песочнице и подобное.
    Ответ написан
    Комментировать
  • Какой облачный провайдер выбрать для хранения static файлов?

    MonkAlbino
    @MonkAlbino
    Фронтенд разработчик
    AWS S3:
    от $0.0240 за 1 ГБ места
    от $0.120 за 1 ГБ траффика

    Webzilla:
    от $0.040 за 1 ГБ места
    от $0.030 за 1 ГБ траффика

    Rackspace:
    от $0.100 за 1 ГБ места
    от $0.12 за 1 ГБ траффика

    Селектел:
    от 3 руб (~$0.085) за 1 ГБ места
    от 0.8 руб (~$0.023) за 1 ГБ траффика

    В итоге Amazon дешевле по месту, а по трафику дешевле всех Selectel.
    По географическому принципу для России Selectel также выигрывает: его сервера есть в России, а остальные за её пределами, но у других хранилищ есть разный CDN по миру. Ну или можно воспользоваться сторонним CDN.

    Я бы статику сайта (css, js) вынес на отдельный домен (assets.example.com).
    Если на странице много аватаров и пользовательских картинок, то разнёс бы и эти 2 сущности по разным доменам (avatars.example.com и pics.example.com) - это даст браузеру возможность грузить с параллельных доменов. Либо же класть без разбора всё на несколько параллельных контейнеров (0.pics.example.com, 1.pics.example.com, N.pics.example.com) - это чуть увеличить нагрузку и время на DNS-резолвинги, но даст браузера параллельность, гибкость (контейнеры могут мигрировать от сервиса к сервису при необходимости) и стабильность.
    Ответ написан
    Комментировать
  • Какую книгу почитать по node.js?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Для начала изучите просто JavaScript. Так как книг по NodeJS я еще хороших не встречал, то учил его по StackOverflow и документации всяких фреймворков к нему. Этого оказалось достаточно.
    Ответ написан
    Комментировать
  • Создание елементов динамически

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Используйте insertAdjacentHTML вместо innerHTML атрибута.
    Ответ написан
    1 комментарий