• Как в JavaScript первым обработать event?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Можно.
    В JS эвенты находятся в двух состояниях - capturing и bubbling. Capturing - это первая фаза, когда эвент "углубляется" от корня DOM дерева (< body >) до своего target (элемента, на котором эвент сгенерирован), при этом все хендлеры, забинденные на любой из элементов на этом пути отработают (забиндены должны быть именно на фазу capture). Как только эвент дошёл до цели (< form >, например, если submit event), он меняет фазу на Bubbling. Bubbling - это наоборот, всплытие эвента вверх по дереву к корню DOM (от < form > до < body >). И снова эвент запускает все хендлеры, которые его слушают, только уже на фазе bubbling-a. К слову. в jQuery все эвенты работают только с фазой bubbling. Да и вообще у всей этой системы, как обычно, куча нюансов на разных браузерах, кому интересно - www.quirksmode.org/js/events_order.html

    В вашем случае, если хотите, чтобы ваш хендлер отработал раньше всех, этого можно достичь, забиндившись на фазу capture.
    Например:
    jQuery(form).parent().get(0).addEventListener('submit', submit_handler, true);
    // true в третьем параметре как раз и говорит, что бинд на фазе capture, а не bubble

    Для пущей уверенности, можно забиндиться не на элемент, а на его родителя (как в моём примере), при этом сверяя target у эвента, что он точно предназначен нужному вам элементу. Это не гарантирует, что вы отработаете первым, ведь какой-нибудь хитрый засранец мог поставить бинд аж на сам < body > на фазе capture, но ситуация крайне редкая, плюс никакие JS библиотеки не работают с capture фазой.
    Ответ написан
    6 комментариев
  • LMS на Node.js?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    это обычная связка, даже подходящая для ваших задач. В вашей ситуации наверное это лучший вариант. Хотя конечно сложно ожидать от непрограммиста чего-то адекватного в плане программирования.
    Ответ написан
    Комментировать
  • Могу ли я поменять хостинг сайта?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    да
    Ответ написан
    Комментировать
  • Какую схему работу с git и deploy посоветуете?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Ну, поменять воркфлоу в гите для начала. Одна фича = одна ветка. Далее уже вопрос отпадёт сам собой. Если внезапно нужно загрузить на тест проект в состоянии, в котором он никогда не будет (например две новых фичи без третьей и т.д.) то делаете временную ветку, в неё мержите нужные фичи, загружаете на тест, потом удаляете.

    Как деплоить ветки на сервер с помощью гит описано тут: https://toster.ru/answer?answer_id=519141
    Ответ написан
    Комментировать
  • На какой факультет программисту поступать надо?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Чувак, хочешь быть нормальным программистом - поступай на чисто программистский факультет. Их легко отличить даже по названиям - это инженерия, прикладная математика, прикладная информатика, вмк и т.д.
    Знаешь, что быть программистом тебе быстро наскучит - поступай на что-нибудь смежное (ни то, ни сё по-другому) и крутись как хочешь потом) Это бизнес-информатика (маркетинг в основном), ИБ и всё что около IT но не само программирование.
    Ответ написан
    Комментировать
  • Как с помощью nginx закрыть доступ к /index.php?action=admin?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Закрыть доступ HTTP-аутентификацией:
    location /index.php?action=admin {
        auth_basic 'Admin Panel';
        auth_basic_user_file admin.passwd;
    }

    Далее ложите файл рядом admin.passwd, в котором записываете хешированные логины и пароли (читать тут: nginx.org/en/docs/http/ngx_http_auth_basic_module....)
    Ну или прямо плейнтекстом их загоняете туда:
    admin:{PLAIN}password:welcome to admin zone
    Ответ написан
    Комментировать
  • Касса для сайта, с мин. комиссией. Есть такие?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Я.Касса работает со всем чем можно вообще, карты, банки, терминалы, салоны связи. Подключаете её и не паритесь.
    Ответ написан
    1 комментарий
  • Как сравнивать составить битовую маску с большим количеством условий?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Для каждого пункта из фильтра (страна-россия, например, или модель-а5, например) храните битмап длиной N бит, где N - кол-во товаров всего. В битмапе 1 на месте k означает принадлежность товара с id=k этому пункту фильтра. Вот и всё. Очевидно что id товаров должны начинаться с 1, ну или закрепите offset = MIN(id) для каждого индекса товара, чтобы сопоставлять его с битом в битмапе.

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

    Всё это хозяйство прекрасно хранится в Redis с его прекрасной поддержкой битмапов и полным набором операций по ним.
    Ответ написан
    Комментировать
  • Можно ли применить свои стили к кнопке "мне нравится" ВКонтакте?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    нельзя, это айфрейм
    Ответ написан
  • Ваши действия, если джуниор не успевает выполнить задачу?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Очевидно, что если "подчиненный толком ничего не сделал", а вы, как умный начальник, правильно рассчитали сроки и сложность задачки для джуниора, которого хотите видеть - вам с ним не по пути.
    Ответ написан
    Комментировать
  • Как настроить Яндекс.Метрику для AJAX сайта(веб-приложения) на ExtJS 5?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Вебвизор имеет только одну настройку - воспроизводить действия на "живом" сайте на момент просмотра видео, либо же записывать действия вместе с тем, что видит пользователь. Но подозреваю, что оба этих варианта не будут работать, потому что не надо делать JS сайты.
    Ответ написан
    Комментировать
  • Запись лога изменений страницы (курс банка) в файл. Что использовать?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Представляется windows, который бросает цифры (курс банка) в файл (лог) со страниц (некоторых) автоматом по-расписанию и мониторит.
    Ответ написан
    Комментировать
  • Git - приступая к работе?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Комментировать
  • Как можно узнать ширину и высоту изображений не прибегая к функции getimagesize?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Снова не умеем гуглить или не знаем английского.
    https://github.com/tommoor/fastimage
    Ответ написан
  • Почему не ставится Rails на OS X?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Английский не знаете? Переходите на Битрикс.
    Check the mkmf.log file for more details. You may
    need configuration options.


    Гуглить не умеете? Переходите на Спутник.
    stackoverflow.com/questions/12336160/how-to-instal...


    Никогда не работал с Ruby, но ответ нашёлся простым копированием строчки из вашей ошибки в гугл.
    Ответ написан
    4 комментария
  • Проверить, имеет ли пользователь разрешение на получение данных?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Вы можете полностью доверять тому, что вам пришло из сессий, т.к. они хранятся на сервере, а подделать SESSION_ID на клиенте нереально.
    Ответ написан
    Комментировать
  • Стоит ли переходить с CodeIgniter на современные фреймворки?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Автору вопроса советую внимательно прочитать все ответы и найти хоть один объективный минус CI (не субъективный) из названных. (в том числе спросить их у вашего советчика, который вам посоветовал уйти с CI)

    - "В Модели тупо пишешь методы работы с базой"? Вы серьезно? И всё? А, простите, вы как хотели? Хотели автоматический биндинг на поля из базы? Сомневаюсь, что найдётся приложение, которое бы не нуждалось в фильтрации / преобразовании полей и правильного разворачивания связей между таблиц без ручного кода. Покажите мне модели в Yii для среднего размера сайта, там костылей на фильтрацию и преобразование полей для базы ещё больше, чем бы вы в CI ручного кода написали.

    Ну и да, я вообще редко встречаю программиста на PHP фреймворке, который бы понимал, как он устроен и пользовался бы всеми плюсами фреймворка именно так, как задумывал автор фреймворка. Комментарии выше это и подтверждают, судя по тому что у них весь код в контроллерах. Руки кривые у них, а не "фреймворк совсем не помогает".

    CI предельно прост, он и есть тот самый "фреймворк", который не додумывает за тебя, а позволяют самому всё реализовать. Отсюда его скорость, легкость в освоении и предельно понятный код.

    Ну и плюсом ко всему - он абсолютно не устарел. Недели две назад релизнулась 3 версия, коммиты каждый день. Или вас так пугает отсутствие неймспейсов и PSR?
    Ответ написан
    2 комментария
  • Где новичку можно попрактиковаться?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Отличная книжка на неделю осмысленного чтения - Stroustrup 'A tour of C++' - для программистов, желающих стать "сишниками" это просто основа. Её крутость в том, что там всё сразу по делу, без воды и без основ. Дальше, понимая, как работает язык - начните изучать паттерны проектирования - без архитектурных навыков знание языка только индусам разве что пригодится. Есть даже супер книжка, в которой разбираются архитектуры крутых open source современных приложений: www.aosabook.org/en/index.html
    Ну и всё в таком духе. Параллельно определяетесь с направлением, что вам интересно - графика, железо, быстрые вычисления, большие данные, распределённые системы, ОС, сети и т.д.
    Ответ написан
    Комментировать
  • Как правильно оформить регулярку в nginx?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Уберите = в location, а когда уберёте - идите читать что оно означало, а то у вас вся регулярка кривая : nginx.org/en/docs/http/ngx_http_core_module.html#l...
    И в тех же доках прочитайте про rewrite module
    Ответ написан
    Комментировать
  • Создаёт ли nginx отдельное tcp соединение на internal location?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Нихера не понятно, сами терминов напридумывали. Дайте конфиг.
    Если nginx видит rewrite (redirect) то он просто снова начинает матчить location из вашего конфига но уже для нового url.
    nginx.org/en/docs/http/ngx_http_rewrite_module.htm...
    Ответ написан
    Комментировать