• Как спрятать папку vendor(в конкретном случае) и надо ли это делать?

    DevMan
    @DevMan
    можете просто запретить доступ к этой дире через браузер и отдавать 403 ошибку.
    Ответ написан
    2 комментария
  • Почему многие не обновляют дату в копирайте на сайте?

    CrewCut
    @CrewCut
    Коплю силы на переезд в тропики
    Ставят "чтоб было". Чаще всего ни о каких правах речи не идет, с юр.точки зрения. Просто так принято. А не меняется, потому что сделано криво и год забит намертво
    Ответ написан
    Комментировать
  • Почему многие не обновляют дату в копирайте на сайте?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Либо год означает открытие сайта, либо тупо забили-забыли.
    Ответ написан
    Комментировать
  • Какая лицензия позволяет вообще забить на всё?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    https://ru.wikipedia.org/wiki/WTFPL
    Do What The Fuck You Want To Public License (WTFPL)
    Ответ написан
    Комментировать
  • Откуда произошла фраза "компьютер завис"?

    saboteur_kiev
    @saboteur_kiev Куратор тега Железо
    software engineer
    В момент выполнения программа висит в памяти.
    И если она перестала работать, но не завершилась, она там "зависла" или "hangs".
    Ответ написан
    Комментировать
  • Откуда произошла фраза "компьютер завис"?

    GavriKos
    @GavriKos
    Эта фраза применима не только к компьютерам. "Работа зависла", например. Оттуда же и в компьютерный сленг перекочевало.
    Ответ написан
    Комментировать
  • Нарушаю ли я MIT?

    Maronus
    @Maronus
    В вики есть перевод лицензии, где четко сказано, что 1 - нарушаете, 2 - нужно оставить.

    3. В самом верху лицензии указывается год и владельцы прав (пример в той же вики). Там должен быть оригинальный разработчик, решения которого вы использовали, и собственно вы сами.

    PS: Если прям значительно меняете, то можете не париться и указывать только себя.
    Ответ написан
    5 комментариев
  • Как лучше загрузить огромное количество фото в кэш пользователя для быстрого отображения?

    sim3x
    @sim3x
    1000 фоток вот так сразу и не показать пользователю
    если загрузить их к пользователю в кеш, а он ограничен, то твой контент будет вытеснен их кеша
    юзкейс странный

    вот что жс может сделать
    stackoverflow.com/questions/280049/javascript-call...
    Ответ написан
    8 комментариев
  • Какая лицензия позволяет вообще забить на всё?

    @IvaYan
    Public Domain - общественное достояние. Кто угодно может делать что угодно,
    Ответ написан
    Комментировать
  • Почему по умолчанию umask - 644 для файлов сгенерированных www-data?

    @Tabletko
    никого не трогаю, починяю примус
    В группу www-data могут входить другие пользаватели. Читайте это как "изменять может только владелец"
    Ответ написан
    2 комментария
  • Почему многие не обновляют дату в копирайте на сайте?

    sim3x
    @sim3x
    верстальщики не в курсе, что можно вставить js для такого
    бекендерам лень вставлять что-то
    пользователям побоку
    владельцы вообще не в курсе, что можно и нужно ставить актуальную дату
    Ответ написан
    2 комментария
  • Почему store.steampowered не использует SSL?

    sim3x
    @sim3x
    Предположительно, економят на серверах
    по крайней мере и хабр раньше так говорил
    Ответ написан
    3 комментария
  • Командная разработка. Что почитать?

    titov_andrei
    @titov_andrei
    All my life I learn - and die a fool!
    То что возникают проблемы в команде - это вопрос времени. Читать тут нечего. Это как пособие типа как заводить друзей или как соблазнить девушку. Тут пробовать надо.

    Вы для себя какую роль в команде видите? Начните свой проект и пиартесь потихоньку.
    Ответ написан
    Комментировать
  • Какое лучше комплексное онлайн обучение веб-разработке из перечисленных?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Наилучшее обучение вне зависимости от разметки/языка (вся информация берётся из первоисточника!):
    1. Общая структура построения кода, архитектура приложения, подключение библиотек/модулей, управление компиляцией и т.д.
    2. Базовые операторы, функции, методы и т.д.
    3. Приложение типа Hello world.
    4. Ставите сами себе новую задачу чуть сложнее предыдущей.
    5. Смотрите API и находите необходимые функции для этой задачи.
    6. Реализуете.
    7. GOTO 4
    Ответ написан
    Комментировать
  • Как можно устновить родительскйи контроль для youtube?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    1. Любопытство и изврещение - разные вещи. В любом случае он доберется до 18+ видео. если очень захочет. Нужно просто воспитывать адекватное отношение, что делается не воспитательным рассказом на 5 минут. а регулярными пояснениями.

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

    3. Кроме ютуба, полным полно мест, где можно найти видео и картинки. Поэтому все же пункт первый - первоочередной.
    Ответ написан
    5 комментариев
  • Как узнать номер элемента массива?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    var arr = [{name:'Петя', id: 45},{name:'Петя', id: 123},{name:'Игорь', id: 6542},{name:'Коля', id: 5},{name:'Вася', id: 2}]
    var index, search = 5;
    for( var i=0;i<arr.length;i++) if( arr[i].id === search) { index = i; break; }
    
    // В переменной index либо по-прежнему undefined, либо индекс искомого элемента
    console.log( "Индекс " + (index === undefined ? 'не найден' : index));
    // Индекс 3


    Upd. не самый удачный вариант Максим можно улучшить через .some():
    var found, search = 5;
    arr.some(function (el, index) {
      if( el.id !== search) return;
      found = index;
      return true;
    });
    Ответ написан
    1 комментарий
  • Добавить в корзину товары, которые парсятся с сайта поставщика?

    by25
    @by25
    Веб-разработчик
    В целом логичное решение. Но я бы немного доработал.
    В классе записи корзины (CartItem) добавляем поле "storage" (или типа того). Если 'local' - товар из текущей БД магазина, для поставщиков добавляем какой-то идентификатор. Выборку должен осуществлять, с учетом storage, наш репозиторий/менеджер/etc.
    Во время добавления в корзину, я бы не добавлял запись в БД. Исходя из нашего "storage" можно дергнуть товар у поставщика. Но не совсем эффективно делать каждый раз запрос. Поэтому результаты запросов к api поставщиков кэшируем (файл-кэш, редис, мемкэш и т.д.). А при оформлении заказа, уже нужно инсертить товар внешнего поставщика. Причем можно пересмотреть структуру таблицы "Товары заказа", как-то так:
    storage, order_id, product_id, quantity, price_unit...
    Ответ написан
    1 комментарий
  • Какие стандарты именования в C#?

    @Sing303
    Pascal casing (Пример: ManagmentObject)
    Пространства имён
    Типы (Интерфейсы, Классы, Структуры, Перечисления (и их значения))
    Делегаты
    События
    Методы
    Свойства
    Readonly поля

    Camel casing (Пример: managmentObject)
    Локальные переменные
    Аргументы методов
    Private и Protected поля

    Суффиксы/префиксы
    Имена интерфейсов начинаются с префикса «I»
    Имена классов исключений заканчиваются суффиксом «Exception»
    Имена делегатов обработчиков событий заканчиваются суффиксом «EventHandler»
    Имена классов-наследников от EventArgs заканчиваются суффиксом «EventArgs»
    Имена атрибутов заканчиваются суффиксом «Attribute»

    Чаще всего так. И никакой венгерской нотации или подчёркиваний
    Ответ написан
    3 комментария
  • Как узнать какой именно php скрипт приводит к ошибке или работает медленно?

    copist
    @copist
    Empower people to give
    Если есть возможность, замените Apache на PHP FPM SAPI, прилагающийся к PHP. При этом можно включить PHP slow log. В специальном логе будут появляться стек-трейсы процессов, которые работали больше заданного количества секунд именно в этот самый момент, то есть например, в 30ую секунду от запуска процесса.

    В случае проблем рекомендуется делать slow log на все запросы, которые работают больше 1-2 секунд. Возможно дьявол кроется не в длинных процессах, а в огромном количестве мелких.

    Также к PHP FPM прилагается встроенная система мониторинга. Можно посмотреть, сколько сейчас порождено процессов. Иногда их чрезвычайно много.

    Если заменить Apache на PHP FPM невозможно, то путь исследования более длинный: нужно в настройках Apache настроить CustomLog с замером времени на выполнение. см. ответ на serverfault. Затем исследовать логи (там будут только URL запросов, без стрек-трейсов) и самостоятельно определять, что именно могло вызвать тормоза.

    Можно подключить профилировщики XDebug + Webgrind или XHprof. Замеры можно делать на выборочных запросах, например только для пользователя с определённого IP или при наличии определённой куки. Отчёты будут очень детальные и будут включать замеры по всем внутренним вызовам от начала до завершения процесса, а не только в 30ую секунду, как делает php slow log.
    Ответ написан
    Комментировать
  • Как правильно комментировать коммит?

    @abcd0x00
    Может есть какой-то стандарт, о котором я не знаю?

    Вообще, сам git скачай в виде исходников, там есть файл SubmittingPatches.

    Выдержка оттуда
    (1) Make separate commits for logically separate changes.
    
    Unless your patch is really trivial, you should not be sending
    out a patch that was generated between your working tree and
    your commit head.  Instead, always make a commit with complete
    commit message and generate a series of patches from your
    repository.  It is a good discipline.
    
    Give an explanation for the change(s) that is detailed enough so
    that people can judge if it is good thing to do, without reading
    the actual patch text to determine how well the code does what
    the explanation promises to do.
    
    If your description starts to get too long, that's a sign that you
    probably need to split up your commit to finer grained pieces.
    That being said, patches which plainly describe the things that
    help reviewers check the patch, and future maintainers understand
    the code, are the most beautiful patches.  Descriptions that summarise
    the point in the subject well, and describe the motivation for the
    change, the approach taken by the change, and if relevant how this
    differs substantially from the prior version, are all good things
    to have.
    
    Make sure that you have tests for the bug you are fixing.  See
    t/README for guidance.
    
    When adding a new feature, make sure that you have new tests to show
    the feature triggers the new behaviour when it should, and to show the
    feature does not trigger when it shouldn't.  Also make sure that the
    test suite passes after your commit.  Do not forget to update the
    documentation to describe the updated behaviour.
    
    Speaking of the documentation, it is currently a liberal mixture of US
    and UK English norms for spelling and grammar, which is somewhat
    unfortunate.  A huge patch that touches the files all over the place
    only to correct the inconsistency is not welcome, though.  Potential
    clashes with other changes that can result from such a patch are not
    worth it.  We prefer to gradually reconcile the inconsistencies in
    favor of US English, with small and easily digestible patches, as a
    side effect of doing some other real work in the vicinity (e.g.
    rewriting a paragraph for clarity, while turning en_UK spelling to
    en_US).  Obvious typographical fixes are much more welcomed ("teh ->
    "the"), preferably submitted as independent patches separate from
    other documentation changes.
    
    Oh, another thing.  We are picky about whitespaces.  Make sure your
    changes do not trigger errors with the sample pre-commit hook shipped
    in templates/hooks--pre-commit.  To help ensure this does not happen,
    run git diff --check on your changes before you commit.
    
    
    (2) Describe your changes well.
    
    The first line of the commit message should be a short description (50
    characters is the soft limit, see DISCUSSION in git-commit(1)), and
    should skip the full stop.  It is also conventional in most cases to
    prefix the first line with "area: " where the area is a filename or
    identifier for the general area of the code being modified, e.g.
    
      . archive: ustar header checksum is computed unsigned
      . git-cherry-pick.txt: clarify the use of revision range notation
    
    If in doubt which identifier to use, run "git log --no-merges" on the
    files you are modifying to see the current conventions.
    
    The body should provide a meaningful commit message, which:
    
      . explains the problem the change tries to solve, iow, what is wrong
        with the current code without the change.
    
      . justifies the way the change solves the problem, iow, why the
        result with the change is better.
    
      . alternate solutions considered but discarded, if any.
    
    Describe your changes in imperative mood, e.g. "make xyzzy do frotz"
    instead of "[This patch] makes xyzzy do frotz" or "[I] changed xyzzy
    to do frotz", as if you are giving orders to the codebase to change
    its behaviour.  Try to make sure your explanation can be understood
    without external resources. Instead of giving a URL to a mailing list
    archive, summarize the relevant points of the discussion.

    Ответ написан
    Комментировать