• Как исключить из регистрации временную почту?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Комментировать
  • Какие варианты логики сквозной информации в секции можете посоветовать?

    erniesto77
    @erniesto77
    oop, rb, py, php, js
    могу предложить использовать так называемые composers. Создаем в папке app папку View/Composers, в папке Composers создаем класс/файл допустим назовем AddStatistic.php:
    namespace App\View\Composers;
    
    use App\Comment;
    use App\Blog;
    use Illuminate\View\View;
    
    class AddStatistic
    {
        public function compose(View $view)
        {
            $statistic = [
                'last_comments' => Comment::getLast(),
                'top_rated' => Blog::topRated(),
            ];
            $view->with('statistic', $statistic);
        }
    }

    затем лучше вынести блок со статистикой в отдельную вьюшку, допустим 'partials.statistic' , потом в Providers/AppServiceProvider.php добавить use App\View\Composers и в методе boot добавить composer во вьюшку блока со статистикой, который будет туда передавать $statistic:
    namespace App\Providers;
    
    use App\View\Composers;
    use Illuminate\Support\ServiceProvider;
    
    class AppServiceProvider extends ServiceProvider
    {
        public function boot()
        {
            ...
            $this->app['view']->composer(['partials.statistic'], Composers\AddStatistic::class);
        }
        
        ...
    }
    Ответ написан
    Комментировать
  • Как написать отзыв?

    RustaMechanic
    @RustaMechanic
    Разработчик, студент, кодер
    День добрый!
    Отзыв пишется только после полной оплаты и финальной сдачи проекта. Клиент и фрилансер могут написать отзыв в течении 13 дней после завершения проекта.
    По срокам: у клиента есть 14 дней на оценку с момента последней отправки результатов вашей работы. Если в течение 14 дней клиент не отвечает, то депозит автоматически переходит к вам.

    Кстати, есть похожий вопрос по вашей теме. "Лучший ответ" может оказаться полезным.
    Ответ написан
    2 комментария
  • Запрет на join? Оптимизированная выборка из связи многие-ко-многим без join с параметрами из линкованных таблиц?

    ruFelix
    @ruFelix
    Предсказание будущего по руке, таро, кофе.
    Они так говорят, потому что:
    1) Если вы везде используете JOIN то на большом проекте у вас перестаёт работать кеш встроенный в БД, т.к. insert или update хотя бы в одну из таблиц участниц join сбросит кеш всего запроса, а на больших проектах изменения данных идут постоянным потоком.
    2) JOIN делает жётские связи на уровне данных, это хоронит возможность оптимизации на уровне архитектуры приложения. Когда таблицы не связанны внешними ключами и запросами то мы можем перенести любую таблицу, в другую БД оптимизированную для нужных типов запросов, написать например на Си отдельный сервис/демон для этих данных. При этом нам надо будет переписать только одну сущность в приложении. В случае с разрешёнными JOIN может выясниться что переписать надо вообще всё.
    3) Существует популярный подход переваривания больших нагрузок/данных это шардинг, т.е. раскидывание диапазонов данных по разным серверам, это когда первые 10 миллионов записей лежат на одном сервере а вторые на другом, join в этом случае сделать нельзя.
    4) Нормализация, полностью нормализованная БД самая медленна(т.к. куча JOIN, каждый из них это умножение двух матриц), но зато самая компактная, полностью не нормализованная БД самая быстрая (так как всё берём одним простым запросом), но очень жирная и неприемлемо сложная в работе.

    Ваш пример очень абстрактен, если про него ясно только, что данных очень много и не известно кто и в каких условиях будет с этим работать, но скорость ответа важна, а количество запросов будет большими. (Например это API к которому сторонние люди будут писать приложения и потенциально рекламировать эти приложения по ТВ)
    То например так:
    1) Запросом c JOIN скормить данные этих двух таблиц в поисковый индекс на sphinxsearch
    2) Делаем запрос с параметрами book.param = 1 AND author.param = 2 поисковому индексу сфинкса, он возвращает нам PK ID нужных сущностей
    3) Делаем SELECT * FROM t WHERE id in(1,2,3..N)

    Таким образом мы получаем сложную и тяжёлую фоновую индексацию, но очень быстрые и отъедающие крохи ресурсов сервера запросы в онлайне. Из минусов сильно усложняем архитектуру, а соответственно написание, отладка и поддержка кода становятся намного дольше, а количество людей которые могут это делать намного меньше, что в свою очередь является серьёзной проблемой но другого уровня.
    Ответ написан
    Комментировать
  • Запрет на join? Оптимизированная выборка из связи многие-ко-многим без join с параметрами из линкованных таблиц?

    @doktr
    Data Scientist
    Если поля, по которым производится JOIN, имеют индексы, то запрос будет идти гораздо быстрее, чем без них, так что нужно смотреть индивидуально. Если индексов нет, то в плане выполнения, скорее всего, будет FULL SCAN и итоговое время будет пропорционально произведению количества строк в двух соединяемых таблицах - O(M*N).
    Ответ написан
    Комментировать
  • Как реализовать взаимодействие между скриптами сайта?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Я боюсь представить, каким местом вы пытаетесь питаться...

    Я так понимаю, вы хотите общаться со скриптами на своем же сайте с помощью HTTP? Да вы редкостный извращенец, скажу я вам...

    Я даже не буду вам говорить почему у вас не получается (и почему в ответ приходит содержимое файла).
    Прочитайте лучше про ООП, не забивайте себе голову "как бы API, только между модулями сайта".
    Ответ написан
    Комментировать
  • Как сохранить яндекс карты как картинку?

    forgotten
    @forgotten
    Руководитель разработки API Яндекс.Карт
    В Конструкторе карт можно получать карту в разрешении 300 dpi для печати. Поддерживается всё, что есть в самом конструкторе.
    https://tech.yandex.ru/maps/tools/constructor/
    Ответ написан
    4 комментария
  • Сборка бекэнда на Node.JS по аналогии с фронтом?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Если честно, то профит в скорости загрузки будет — вызов require приводит к довольно большому количеству обращений к файловой системе. Но это все один раз, при запуске приложения. Поскольку node-приложения запускаются один раз и работают долго, это никчемная и даже вредная экономия на спичках.

    Узкие места и проблемы находятся линтером, как правильно сказал Алексей Уколов, юнит-тестами, профайлингом.
    Ответ написан
    Комментировать
  • Как правильно зациклить функцию?

    Deonisius
    @Deonisius
    Родился в 11110110111 году, 11000 января.
    1. Во-первых, вызывать повторно функцию лучше после успешного завершения ajax-запроса. Т.е. перенести setTimeout в "success callback ". И setInterval - не очень хорошее решение для данной задачи, как предлагали вам выше.
    2. Во-вторых, повторный вызов функции, как это сделано у вас, ни к чему хорошему не приведет, т.к. вы не передаёте в функцию аргументы.
    3. В-третьих, оглядываясь на п.2, непонятно, какие именно аргументы нужно передавать: то ли из предыдущего вызова, то ли необходимо повторно пробежаться по элементам "td[data-pll]", собрать из низ данные и передать в функцию.
    Синтаксис для вызова функции с передачей ей параметров, может быть и таким:
    setTimeout(func, delay, [param1, param2, ...]);
    // т.е. в вашем случае:
    setTimeout(F1, 5000, sname, cls);
    Ответ написан
    Комментировать
  • Реально ли создать стартап без бюджета в наше время?

    @nirvimel
    Нереально создать любой бизнес (можно называть это "стартап" - от этого ничего не меняется) без бизнес-плана. А какой бюджет потребуется для запуска этого бизнеса в бизнес-плане должно быть четко прописано и обоснованно.

    • Если у вас есть бизнес-план, то у вас есть и ответ на вопрос о бюджете.
    • Если у вас нет бизнес-плана, то на вопрос "реально ли", ответ отрицательный.
    Ответ написан
    7 комментариев
  • Можно ли как-то скрывать код при помощи комментариев?

    riky
    @riky
    Laravel
    в шторме можно https://www.jetbrains.com/phpstorm/help/folding-cu...

    пример

    #region Description
    $users = [];
    // ... 
    #endregion


    и кстати для переключения между ними есть горячие клавиши
    https://www.jetbrains.com/phpstorm/help/navigating...
    Ответ написан
    Комментировать
  • Почему не скачивается мануал php?

    Immortal_pony
    @Immortal_pony Куратор тега PHP
    Прямая ссылка: ca1.php.net/get/php_manual_ru.html.gz/from/this/mirror
    На указанной странице нет ссылки "скачать".

    Что же есть?
    Список ссылок на документации в различных форматах и на различных языках:
    JvGiMIe.png

    При нажатии на любую конкретную ссылку, попадаем на страницу со спсикам зеркал, с которых можно скачать документацию. При нажатии на любую из них начинается скачивание:
    0r76txY.png
    Ответ написан
    3 комментария
  • Javascript в браузере. Где найти документацию по работе js в браузерах?

    BohdanK
    @BohdanK
    Документацию смотреть у разработчиков браузеров, соответственно:

    IE: https://msdn.microsoft.com/en-us/library/ms537434(...
    https://msdn.microsoft.com/en-us/library/ms535862(...
    ну и дальше искать что нужно, с русским все плохо, переводы не корректные, если есть вообще.

    у Firefox более доходчиво: https://developer.mozilla.org/ru/docs/Web/JavaScri...

    Chrome, Opera, Safari и большинство других работают под WebKit, соответственно ищите документацию для webkit https://developer.apple.com/library/mac/documentat...

    А то что вас интересует, поиск, удаление и т.д. фактически работает во всех современных браузерах одинаково, редко приходилось сталкиваться с тем, что что-то работает по разному, в основном это касается форм, к примеру range и т.д.
    Ответ написан
    Комментировать
  • Как сверстать такой фон у блока?

    @holfza
    Ответ написан
    Комментировать
  • Почему возникает ошибка incompatible types when assigning to type?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    table = fizz(table);

    Что сделать-то хотел?
    Если проинициализировать массив значением которое вернула fizz, нужно было просто проинициализировать его в этой функции.
    Если поменять область памяти на которую указывает table, то нужно было сделать table указателем.

    Почему при передаче table в fizz struct Item[100] преобразуется в struct Item *table, а при присваивании - нет?

    Потому что массив -- это синтаксис для статического выделения памяти на стеке, в области данных или в структурах. Имя массива -- это имя этого блока памяти, а его адрес -- адрес этого блока. Поэтому имя массива можно легко сконвертировать в адрес. Но если бы язык давал возможность менять адрес массива с помощью присваивания его имени, массив помимо своих элементов должен бы был содержать дополнительный указатель. Получился бы странный, сложный класс объектов, соединяющий в себе свойства массива и указателя. Поскольку язык С -- простой язык, у вас есть отдельно массивы и отдельно указатели, а сложный тип можно сделать самому.
    Ответ написан
    Комментировать
  • Шафл одной переменной, приводит к шафлу двух. Как исправить?

    Массивы передаются по ссылке.
    Когда вы пишите arr3 = arr2, вы не создаёте новый массив, который является копией первого, вы лишь присваиваете ссылку.
    Чтобы скопировать массив, можно например написать arr3 = arr2.slice();
    Ответ написан
    Комментировать
  • Эталонный javascript?

    mbeloshitsky
    @mbeloshitsky
    Вебдев, систем оперейшонс, ж.д. автоматика
    "Эталонный" код отличается от неэталонного тем, что в течение своей жизни, при исправлениях и внедрении каких-либо новых функций, претерпевает минимум изменений, и эти изменения локальны - то есть правится не по 1 строчке в 10 разных местах, а 5-10 строчек в одном месте.

    Поэтому вашим другом в поисках должна стать история изменений в системе контроля версий, соответственно, искать эталонный код надо в местах, где эта история есть, на github и bitbucket. Хорошими критериями для первоначального отбора будут популярность, длительное время жизни проекта, небольшой объем (чтобы разбираться легче было).

    То, что вы написали тоже, конечно, имеет значение, но так абстрактно не рассудишь. Вот мне, к примеру, не нравится когда html мешают c js. Но с другой стороны на подобном подходе построен react.js, в котором этим пожертвовали в угоду идее компонентно-ориентированного подхода. И, по слухам, получилось неплохо.
    Ответ написан
    Комментировать
  • Есть ли сервисы подсчета временных затрат на основе git (gitlab)?

    sim3x
    @sim3x
    Как можно оценить время на фичу из гита если у тебя есть только время пуша?
    Ответ написан
    6 комментариев
  • Как сделать инклуды хидера и футера в Photoshop?

    pozZzitiv
    @pozZzitiv Куратор тега Adobe Photoshop
    Дизайнер и перфекционист
    Уже задавали несколько раз этот вопрос здесь — используйте смарт объекты.
    Делается шапка/подвал/сайдбар и т.п. в отдельном psb и вставляется линком в макет (File/Place). Нужно поменять что-то в шапке - поменяли и в остальных файлах будет уже новый макет (только придётся обновлять вручную или использовать доп плагины). Можно создавать разные версии шапок/подвалов и в основном макете просто заменять содержимое смарт объекта.
    Ответ написан
    Комментировать