• Как лучше всего передавать и хранить, просмотры и лайки на PHP?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    Посты лайкаются и смотрятся неравномерно: бурлят свежие посты, статично висят старые-забытые.
    Поэтому для кипящего ядра можно держать данные в оперативке, скажем, в Redis – туда писать, оттуда читать. Если ключа поста нет в Redis, то вынимать из БД. Периодически из Redis'а копировать в БД все данные и убирать из Redis данные по постам, которые перестали обновляться.

    Часть нагрузки можно передать на клиент. При загрузке с сервера всем раздавать одинаковые данные о свежих постах (их id без содержания, если длинные). Далее по мере просмотра счётчики лайков/просмотров обновлять на клиенте, синхронизируя лайки с сервером не так часто. И скрипт на клиенте решает дальше, какие посты подгружать и показывать, учитывая локальные просмотры.

    Ещё мысль: nginx умеет Lua. Можно операции с лайками/просмотрами поручить сольному nginx без PHP. Правда, возникает вопрос с авторизацией.
    Ответ написан
    2 комментария
  • Как добится мультиязычной маршрутизации в angularjs?

    mudrick
    @mudrick
    Máximo progreso hemos alcanzado en minimo seso.
    Изящного решения не предложу и на вопрос не отвечу, но оставлю здесь свой комментарий, для истории :)

    Хочу отговорить вас делать такую маршрутизацию — совершенно не обязательно загрязнять УРЛ данными о языке (особенно писать /en, когда у вас домен .com — это же и так обычно английский; или писать /ru при домене на .ru — там же и так русский обычно). Посмотрите на любой многоязычный сайт — там нет языка в адресной строке ни в каком виде, это уже прошлый век. (Исключение состовляют только огромедные сайты, где не только язык интерфейса разделен, но и сам контент и даже поиск по нему — например, Википедия).

    При заходе пользователя на сайт, берете язык из куков или определяете его язык (это делается средствами браузера — navigator.language и иже с ним) и сохраняете полученный язык в куках. Загружаете файл-локализации. Всё. Если пользователь нажал на другой язык, то сохраняете его в куках и подгружаете другой файл локализации.

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

    Так же запаритесь каждый раз при вызове, например, $location.path(...), передавать туда еще и текущий язык. И сам конфиг роутов у вас будет выглядеть неизящно:

    $routeProvider
            .when('/:lang/about',
                {
                    templateUrl: 'pages/about.html',
                    controller: 'AboutController'
                })

    и так каждый роут.

    Ну и еще, а если пользователь ручками наберет адрес раздела в адресной строке и забудет язык указать (наберет просто mysite.com/about, а не mysite.com/ru/about), то что, приложение не будет работать?

    А для локализации используйте Angular Translate.
    Ответ написан
    4 комментария
  • Почему meta информация может теряться в bitmap?

    maaGames
    @maaGames
    Погроммирую программы
    Потому что это не ресайз имеющегося изображения, а создание нового, на основе старого. Т.е. метаинформация осталось в исходном изображении, а в новый битмап её никто не скопировал.
    Ответ написан
    4 комментария