• Как google оптимизирует картинки?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Как google оптимизирует картинки?

    Хреново он их оптимизирует. Только ширину с высотой уменьшает, если на сайте они ужаты. Чтобы гугл не ругался, просто не вписывайте картинки в контейнеры меньше их размеров и не уменьшайте их через стили.

    Если хочется бесплатной оптимизации. Для png рекомендую использовать
    pngquant --force --skip-if-large --speed 1 256
    Если хочется выжать еще немного - поверх проходимся PNGZopfli, но это долго.
    Ответ написан
    Комментировать
  • Сложить элементы в массиве JavaScript?

    crazy_leo
    @crazy_leo
    Frontend Developer
    Надо хитрым образом подсчитать, а на счет правки, скорее всего это ошибка автора данного сайта
    var list = [1, 2, 3, 4, 5, 6];
    
    function sum() {
      var sum = 0;
      for (i=0; i<arguments.length; i++) {
        sum += arguments[i];
      }
      return sum
    }
    
    sum.apply(null, list) // output => 21
    Ответ написан
    1 комментарий
  • Как исправить неверный подсчет строк в MySQL?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    UNION по умолчанию выполняется как DISTINCT, то есть в результирующей таблице будут только уникальные строки, вместо трёх двоек будет включена только одна. Замените UNION на UNION ALL.
    Ответ написан
    Комментировать
  • Как найти в строке один из набора символов?

    @vivcogit
    JS разработчик
    если нужно найти первое вхождение одной из строк, то вот так
    'post.sher'.search(/.she|po|s/)
    а иначе только цикл с отдельным поиском каждой строки
    Ответ написан
    Комментировать
  • Как разрешить некоторые символы у input type NUMBER?

    @vintage
    Тут по надо использовать type=tel htmlbook.ru/samhtml5/formy/pole-dlya-telefona
    Ответ написан
    Комментировать
  • Вывод числа в двочиной с/с в Node.js?

    @YemSalat
    number.toString(2)

    [UPDATE]
    для отрицательных чисел:
    function dec2bin(dec) {
        return (dec >>> 0).toString(2);
    }

    взято отсюда: stackoverflow.com/questions/16155592/negative-numb...
    Ответ написан
    1 комментарий
  • Сколько членов ряда Фурье необходимо использовать для приближения функции на концах отрезка и в районе середины отрезка?

    @Dum_spiro_spero
    Это тяжелый вопрос.
    1. На концах отрезка всё будет скорее всего плохо из-за эффекта Гиббса.
    bourabai.ru/signals/ts0403.htm
    2. Количество членов зависит от функции и от требований - что считать достаточно точным приближением.
    Напишите программу в чем-то типа Maple - и поразвлекайтесь с разным количеством. Я так делал - программа пишется за 15 минут, и дальше можно играться.
    Ответ написан
    2 комментария
  • Ошибки в конфигах Nginx, как исправить?

    alsopub
    @alsopub
    Создал ваши конфиги на тестовой системе, сделал nginx -t - пишет syntax is ok.
    Надо смотреть детально файлы - может быть BOM символ в начале или еще какой-то непечатаемый символ.
    Попробуйте вставить перевод строки перед server, может поможет.
    Ответ написан
    2 комментария
  • Можно ли оптимизировать код по скорости?

    15432
    @15432
    Системный программист ^_^
    Из очевидного - участки вида HR_PRED(LOOP_CASE, 73) используются в самой глубине ваших циклов и, возможно, пересчитываются на каждой итерации.

    Можно в самом начале до циклов посчитать все возможные значения для 1...MatrixRows и аргументов 71-75 в табличку размерности MatrixRows * 5 , а в формулах брать готовые значения из этой таблицы.

    И вообще, что такое HR_PRED ? может получится чуток свернуть формулы?

    Ещё из предложений - значения a/b/c/d/e в циклах заменить на целочисленные (-8...8, step 1), а в самой формуле поменять коэффициенты умножения соответствующим образом (HR_PRED тоже чуть иначе считать потребуется).

    Также заметил, что второй аргумент HR_PRED влияет на то, с чем будет складываться. Тогда можно еще больше упростить, предварительно вычислив пять значений HR_PRED(LOOP_CASE, 71)+a, ...72+b ...73+c, и уже их подставлять в формулы на следующем шаге
    Ответ написан
    1 комментарий
  • Компиляция из jade в html при изменениях?

    delphinpro
    @delphinpro Куратор тега HTML
    frontend developer
    следить нужно за .jade файлами
    Ответ написан
    5 комментариев
  • Какая максимальная длина value?

    petermzg
    @petermzg
    Самый лучший программист
    При GET запросе вы можете отправить примерно 1-2 Кбайта.
    Для POST запросов ограничения нет, если только на принимающем сервере не установлены ограничения по размеру сообщения.
    Ответ написан
    Комментировать
  • Какой оптимальный способ структуры папок под хранение картинок?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    Название изображения хешируем:
    например: D41D8CD98F00B204E9800998ECF8427E
    Первые 2 символа первая папка, вторые 2 вторая, итого путь:
    */D4/1D/D41D8CD98F00B204E9800998ECF8427E.png
    Ответ написан
    5 комментариев
  • Действительно ли новая asp.net core 1.0 быстрее в 8 раз Node.js?

    Jump
    @Jump
    Системный администратор со стажем.
    Правда ли, что новый Mercedes-AMG GT ездит в 8 раз быстрее Камаза?
    Конечно правда. По асфальту в легкую.
    Ну конечно если асфальт хороший, а не гравийка ухабистая.
    К тому же злые языки утверждают что Mercedes-AMG GT вообще не ездит. Реально пробовали - насыпали в салон 20тонн гравия, а он собака ехать не хочет.
    Ответ написан
    1 комментарий
  • Как эффективно изучать angular js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1) продолжаем учить "ванильный JS", паралельно почитывая про babel, es2015 и т.д.
    2) когда мы ищем информацию в интернетах - учитываем что сейчас актуальная версия ангуляра - 1.5, второй ангуляр в бете, так что 90% информации устарело. Я даже больше скажу - даже официальная документация устарела, обновленный вариант сможете найти на github проекта в пул реквестах.
    3) https://github.com/gdi2290/ngExam - рекомендую этот список тем того, что вам надо знать про ангуляр (ну и не только).
    4) https://github.com/AngularClass/NG6-todomvc-starter - тут я попытался собрать полезные статьи на тему что надо учить и как + пример маленького современного приложения. Так же в ишусах к NG6-starter обсуждается как лучше его готовить.
    5) https://habrahabr.ru/post/277087/ - про angular 1.5 и то как я готовлю ангуляр.

    Ну и так же не стоит пренебрежительно относиться ко всяким реактам и эмберам - идеология у всех приблизительно схожа, все крутые чуваки юзают компонентный подход (потому что это удобно и логично для проектирования интерфейсов), у всех примерно одинаковое виденье по поводу data-flow в приложениях и т.д. Так что с ними ознакомиться тоже можно, у реакта чуть больше расписано про компоненты например.

    Ну и да - обязательно прочитать документацию к ангуляру. Возможно не всю сразу но базовые понятия что бы раскрыть. И разобраться с тем что значит "декларативное представление".
    Ответ написан
    4 комментария
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смотря зачем)). Я когда делаю Code Review критерии следующие:

    * Безопасность:
    - Каждый аргумент метода простого типа должен проверяться на тип в случае его проксирования и на граничные значения в случае обработки. Чуть что не так - бросается исключение. Если метод с кучкой аргументов на 80% состоит из поверки из аргументов - это вполне норм))
    - Никаких trigger_error, только исключения.
    - Исключения ДОЛЖНЫ быть человеко-понятны, всякие "Something went wrong" можно отдавать пользователю, но в лог должно попасть исключение со стектрейсом и человеко-понятным описанием, что же там пошло не так.
    - Каждый аргумент (объект) метода должен быть с тайпхинтингом на этот его класс, или интерфейс.
    - За eval как правило шлю на **й.
    - @ допускается только в безвыходных ситуациях, например проверка json_last_error.
    - Перед работой с БД - обязательная проверка данных.
    - Никаких == и !=. Со swtich - единственное исключение, по ситуации.
    - Если метод возвращает не только bool, а еще что-то - жесткая проверка с ===, или !== обязательна.
    - Никаких условий с присваиваниями внутри. while($row = ...) - тоже идет лесом.
    - Магические геттеры/сеттеры разрешаются только в безвыходных ситуациях, в остальном - запрещены.
    - Конкатенации в sql - только в безвыходных ситуациях.
    - Параметры в sql - ТОЛЬКО через плейсхолдеры.
    - Никаких глобальных переменных.
    - Даты в виде строки разрешаются только в шаблонах и в БД, в пхп коде сразу преобразуется в \DateTimeImmutable (в безвыходных ситуациях разрешено \DateTime)
    - Конечно зависит от проекта, но как приавло должно быть всего две точки входа: index.php для web и console(или как-то по другому назваться) - для консоли.

    * Кодстайл PSR-2 + PSR-5 как минимум, + еще куча более жестких требований (для начала все то что в PSR помечено как SHOULD - становится MUST)
    - В PhpStorm ни одна строчка не должна подсвечиваться (исключением является typo ошибки, например словарик не знает какой-то из аббревиатур, принятых в вашем проекте). При этом разрешается использовать /** @noinspection *** */ для безвыходных ситуаций.
    - Если кто-то говорит, что пишет в другом редакторе и у него не подсвечивается, на эти отговорки кладется ВОТ ТАКЕЕЕНЫЙ мужской половой **й и отправляется на доработку)).

    * Организация кода:
    - Никаких глобальных функций.
    - Классы без неймспейса разрешаются только в исключительно безвыходных ситуациях.

    * Тестируемость (в смысле простота тестирования) кода должна быть высокая.
    - Покрытие кода обязательно для всех возможных кейсов использования каждого публичного метода с моками зависимостей.

    * Принципы MVC:
    - Никаких обработок пользовательского ввода в моделях, от слова совсем.
    - Никаких ***ть запросов в БД из шаблонов.
    - Никаких верстки/js/css/sql-ин в контроллерах.
    - В моделях НИКАКОЙ МАГИИ, только приватные свойства + геттеры с сеттерами.
    - В моделях разрешено использовать метод save(при наличии такого разумеется) только в исключительных ситуациях. Во всех остальных - либо insert, либо update.

    * Принципы SOLD:
    - Никаких божественных объектов умеющих во все.
    - Если метод для внутреннего пользования - private, никаких public.
    - Статические методы разрешаются только в случае безвыходности.

    * Принцип DRY разрешено нарушать в случаях:
    - Явного разделения обязанностей
    - В тестах (каждый тест должен быть независимым, на сколько это возможно)

    * Работа с БД:
    - Запрос в цикле должен быть РЕАЛЬНО обоснован.
    - За ORDER BY RAND() - шлю на***й.
    - Поиск не по ключам (конечно если таблица НЕ на 5 строк) запрещен.
    - Поиск без LIMIT (опять же если таблица НЕ на 5 строк) запрещен.
    - SELECT * - запрещен.
    - Денормализация БД должна быть обоснована.
    - MyISAM не используется (так уж)) )
    - Множественные операции обязательно в транзакции, с откатом если чо пошло не так.
    - БД не должна содержать бизнес логики, только данные в целостном виде.
    - Не должно быть нецелесообразного дерганья БД там, где без этого можно обойтись.

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

    * О людях:
    - "Я привык писать так и буду дальше" - не вопрос, ревью пройдешь только когда поменяешь свое мнение.
    - "Я пишу в vim-е и мне так удобно" - здорово, код консолью я тоже в нем пишу)) но есть требования к коду, если в них не сможешь - не пройдешь ревью.
    - "Я скопировал этот страшный метод и поменял 2 строчки" - это конечно замечательно, но по блейму автор всего этого метода ты, так что давай без говняшек, хорошо?
    - "Оно же работает!" - вот эта фраза переводится примерно так: "да, я понимаю, что пишу полную хрень, но не могу писать нормально потому, что руки из жо", я правильно тебя понял?))
    - "У меня все работает!" - рад за тебя, а как на счет продакшна?
    - "Там все просто" - не используй слово "просто", от слова "совсем". Вот тебе кусок кода (первого попавшегося с сложной бизнес логикой), где там ошибка (не важно есть она, или нет)? Ты смотришь его уже 2 минуты, в чем проблема, там же все "просто"))

    * Всякое:
    ActiveRecord (это я вам как в прошлом фанат Yii говорю) - полное говно, примите за исходную. По факту у вас бесконтрольно по проекту гуляют модельки с подключением к БД. Не раз натыкался на то, что в тех же шаблонах вызывают save, или update (за такое надо сжигать).
    То, что используется Laravel - это печально((. Что бы выполнить требования приведенные выше, приходится "воевать" с фреймворком.

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

    UPD

    Формализировал данные критерии по ссылочке: https://github.com/index0h/php-conventions
    Ответ написан
    55 комментариев
  • Верстать без фреймвороков это значит быть не професионалом?

    Kaer_Morchen
    @Kaer_Morchen
    Разрабатываю web-приложения.
    Смотрю многие пишут что с фреймворком, тянутся лишние стили и бла-бла-бла. Вы вообще давно на фреймворках верстали? Ставите сборщик, выключаете лишние не используемые компоненты, как в scss так и в js, переопределяете настройки в settings файлах. Дописываете недостающее.
    В итоге вы получаете минималистичный, проверенный времени и кучей народа, готовый к масштабированию результат, который смогут подхватить другие специалисты.
    Заказчик ответил грубовато, но в целом он прав.
    Ответ написан
    Комментировать
  • Клиент без сервера. На каких технологиях можно написать чат клиент без сервера?

    То, что вы описали, решили, например, в протоколе WebRTC. Почитайте его спецификацию и реализацию в браузерах.
    Ответ написан
    3 комментария
  • Как заставить json в golang не подменять &?

    Winsik
    @Winsik
    сис.админ, недопрограммист :)
    https://golang.org/pkg/encoding/json/#Marshal
    "String values encode as JSON strings coerced to valid UTF-8, replacing invalid bytes with the Unicode replacement rune. The angle brackets "<" and ">" are escaped to "\u003c" and "\u003e" to keep some browsers from misinterpreting JSON output as HTML. Ampersand "&" is also escaped to "\u0026" for the same reason. "
    Ответ написан
    Комментировать
  • Как избежать добавления в спам при отправке почты с сервера через yandex?

    @nikolayvaganov
    Исходя из опыта и требований полный список :

    1. Корректное имя отправляемого сервера ( PTR , hostname , mailname )
    2. DKIM , SPF , DMARC политики
    3. отсутствие в черных списках глобальных.
    Ответ написан
    Комментировать