Задать вопрос
  • Почему неверно отображается оригинальный размер SVG?

    copist
    @copist
    Empower people to give
    Я в вашем примере ничего про 300x150 не увидел.

    Касательно SVG
    view-source:http://azat-test.webtm.ru/myworld.svg

    1. У него есть свой размер, определяемый внутренним содержимым, то есть кривыми линиями и примитивами.
    Пример:
    <path id="AE" title="United Arab Emirates" class="land" d="M619.87,393.72L620.37,393.57L620.48,394.41L622.67,393.93L624.99,394.01L626.68,394.1L628.6,392.03L630.7,390.05L632.47,388.15L633,389.2L633.38,391.64L631.95,391.65L631.72,393.65L632.22,394.07L630.95,394.67L630.94,395.92L630.12,397.18L630.05,398.39L629.48,399.03L621.06,397.51L619.98,394.43z"/>

    Вот тут куча точек в сложной кривой.

    2. В файле указан конкретный размер картинки
    <svg xmlns="www.w3.org/2000/svg" version="1.1" viewbox="0 0 1009 651" width="1009" height="651">
    Все элементы этого изображения масштабируются под указанный размер
    Ответ написан
    Комментировать
  • Какие преимущества хранения сессий в бд?

    copist
    @copist
    Empower people to give
    Сессию в базе хранят на тот случай, если там есть что-то ценное.
    Например, есть конструктор сайтов или социальная сеть. И пользователь может кое-что сделать ещё до регистрации, например, создать пост или профиль свой заполнить. Можно все его временные данные сериализовать и поместить в базу, чаще всего JSON в NoSQL.
    В обычную сессию тоже можно сохранить, но обычно пространство для хранения сессий регулярно чистят и тогда данные потеряются.
    Сохранять в базу стоит только тогда, когда пользователь сделал что-то. Для каждого пользователя выделять место в базе бессмысленно.
    Когда пользователь авторизуется, временные данные переносят на постоянное место хранения.
    Регулярно область сессий неавторизованных пользователей чистят, но гуманно, то есть не очень активно, с большим интервалом хранения.

    Я обычно с другим сталкивался - данные из базы выгружают в сессию, чтобы меньше нагружать базу.
    Вот схема: https://toster.ru/answer?answer_id=645494
    Ответ написан
  • Есть ли такой паттерн?

    copist
    @copist
    Empower people to give
    Нельзя вызвать __destruct объекта. Он вызывается автоматически, когда сборщик мусора определяет, что этот объект больше никому не нужен (не осталось ссылок на него)

    Если ты скажешь: "Но ...?", отвечу: "А что делать тем, кто этим объектом уже пользуется?"
    class SelfDestructible
    {
        public $myname;
        function __construct($myname)
        {
            $this->myname = $myname;
        }
    }
    
    $a = new SelfDestructible('#1');
    // Эта конструция буквально означает следующее: 
    // 1. выделить область памяти под объект '#1'
    // 2. поместить в переменную $a адрес этой области памяти
    // Иначе говоря, в переменной $a хранится указатель на объект
    
    $b = new SelfDestructible('#2');
    // Согласно твоей логике, тут должна была бы освободиться память, выделенная ранее под объект '#1'
    // но как же поступить с переменной $a, которая всё ещё хранит адрес области памяти этого объекта
    // И через переменную $a можно обратиться к той области памяти.
    // То есть вломиться в склеп, где лежат останки безвременно погибшего объекта '#1' и бесчестно
    // надругаться над ним
    // Ни один язык такое кощунство и вандализм не позволит


    P.S. поправка под уточнёный вопрос

    class SingleSingleton
    {
        /**
         * приватный - чтобы никто не делал new SingleSingleton
         */
        private function __construct()
        {
        }
    
        /**
         * @return static
         */
        public static function getInstance()
        {
            static $instatiated; // признак, что ещё не делали экземпляр класса
            if (is_null($instatiated)) // если ещё не делали экземпляр класса
            {
                $instatiated = true; // пометить, что теперь сделали
                return new SingleSingleton; // вернуть новый объектт
                // метод getInstance может делать new SingleSingleton потому что находится в том же классе
            }
            else // уже был создан объект
            {
                return null; // вернуть ничего
            }
        }
    }
    
    // первый получит объект
    $a = SingleSingleton::getInstance();
    var_dump($a); // -> object(SingleSingleton)#1 {}
    
    // второй получит ничего
    $b = SingleSingleton::getInstance();
    var_dump($b); // -> NULL
    
    // а сделать new SingleSingleton нельзя
    $c = new SingleSingleton; // -> PHP Fatal error
    Ответ написан
  • Что еще нужно знать программисту?

    copist
    @copist
    Empower people to give
    Ну в общем, уже пора. Начинай. IDE (sublime, webstorm и другие) - классные штуки, очень облегчают жизнь.
    А если онлайн-редакторы кода, то codepen.io очень неплох и cloud9

    А про практические задачи, то есть то, что было бы хорошо уметь: Какие задачи нужно уметь выполнять на JS начинающему?
    Могу аналогичный список составить для серверных языков
    Ответ написан
    1 комментарий
  • Дизайнер, моделлер. Существуют ли вакансии с обучением?

    copist
    @copist
    Empower people to give
    Из недавно прочитанного интервью с директорами геймстудий (ссылку не могу найти), вывод такой: нужно найти игру с открытой возможностью к расширению и написать свой аддон к ней (новые уровни, новая физика, новые игровые возможности), а лучше несколько таких аддонов, можно к разным играм. Тут и левел-дизайн, и гейм-дев. С таким портфолио есть шанс, что возьмут в студию.

    Идеальный вариант - сделать "играбельную" игру на нужном тебе движке с нуля.

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

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

    copist
    @copist
    Empower people to give
    Сделай два запроса и соедини в PHP. Так будет проще.
    Ответ написан
    Комментировать
  • Какой лучший способ изучить основы фреймфорк?

    copist
    @copist
    Empower people to give
    Как Вы изучили фреймворки? Что бы вы порекомендовали? Реально ли это при практически нулевом знании английского?

    Когда-то пытался придумать свой, пару лет работал на нескольких проектах с ним.

    Потом познакомился с Zend Framework. Мой велосипед стал не интересен.
    Потом Yii и сразу сменил работу. ZF стал неинтересен.
    Потом Laravel, в свободное время экспериментировал. И симфонию - они похожие.
    Потом Phalcon, в свободное время и он мне очень понравился, сделал несколько более сложных проектов для себя самого.
    Потом Python, укрепил язык и на Django для себя сделал проект.
    Потом nodejs, и на Express сделал для себя проект.

    Фактически на мелких задачах тренировался.
    Книги прочитал по ZF, Yii, Laravel. На русском. Это помимо всего того, что я вообще читал про разработку и языки.
    Видео-уроки смотрел по Laravel.
    Читал код фрейворков в особо непонятных местах - смотрел, как они это реализуют, присылал свои исправления в официальные репозитории.

    Английский надо. Но он не сложный
    Ответ написан
    Комментировать
  • Стоит ли работать программистом?

    copist
    @copist
    Empower people to give
    Я тут всем пролайкал ответы. Отвечу и сам.

    Денежный вопрос стоял остро, первые несколько лет, пока я сортировки пузырьками писал сам и фантазировал на тему своего мегакрутого фреймворка, который на поверку был 10% от Yii или Zend Framework.

    Затем мега скачок. И в стартапах поработал, и в интерпрайзе, и на фрилансе. Почему-то всё стало легко. И дедлайны легко переживаю. Постепенно выбрал себе специализацию: веб-архитектор и backend-разработчик.

    Самообразование идёт без проблем. За технологиями, в общем-то слежу, но не рвусь знать вообще всё. Тут прочитал книгу, тут статью, там попробовал покодить, здесь знаю у кого спросить. Хорошие умные ребята встречались, многому научили, всегда помогут. В общем, я в тренде и я не один, если что - не закопаюсь.

    Знаю 15+ языков программирования, в разной степени.

    Что я всегда за собой замечал - всё в IT всегда было в удовольствие. И сервера ставил, и интернет-магазины делал с интересом, и веб-порталы кодил.

    Ответом на часть твоих вопросов будет следующее:
    * Чтобы нравилась работа, делай то что нравится тебе
    * Чтобы стОило, делай то, что нужно другим
    * Когда первое и второе совпадут, ты будешь финансово обеспечен и морально удовлетворён

    А про тяжести работы ... у меня всегда перед глазами вот это и я просто помолчу.
    Ответ написан
    1 комментарий
  • Phpstorm конфликты классов как быть?

    copist
    @copist
    Empower people to give
    PHPStorm не инклудит, а телает typehint
    Ну и пусть жалуется, раз они у тебя дублируются.

    А отсутствующий класс надо исправить - либо создать класс, либо удалить упоминания про него
    Ответ написан
    Комментировать
  • Какой URL лучше для продвижения?

    copist
    @copist
    Empower people to give
    Неглубоко в каталоге, по сравнению с первой ссылкой - когда товар находится через 2-3 уровня от каталога.

    Уровень вложенности
    Не вид URL важен, а за сколько кликов пользователь попадёт в нужную страницу начиная с главной.

    Пример: https://icons8.com/ раньше все ссылки для поисковых ботов мы выдавали только через sitemap, а на главной странице была только форма поиска. Но затем все страницы обросли ссылками в верхнем меню, в тексте и в подвале, чтобы для поисковой системы уменьшить уровень вложенности ссылок и увеличить связность.
    Судя по картам кликов, по этим ссылкам в меню и подвале кликают редко, то есть нельзя надеяться, что пользователь по ним пройдёт. Надо придумывать, как пользователи иными способами попадут на те же страницы. Но ссылки там всё равно останутся, для SEO.
    Ответ написан
  • Как подключить SweetAlert к существующему JS скрпту?

    copist
    @copist
    Empower people to give
    1. У тебя опечатка в строке <script scr="jsB/sweetalert.min.js"></script>
    2. В файле welovepavel.esy.es/techno/common.js лишняя строка <script src="common.js"></script>
    В остальном проблем не вижу
    Ответ написан
    2 комментария
  • Возможно ли найти наставника?

    copist
    @copist
    Empower people to give
    И я со своим хочу познакомить:

    Менторские программы по веб-технологиям webmentor.pro
    Всё самое основное по программам: где, на чём, как и почему?
    Ответ написан
    Комментировать
  • Изучение Django с наставником. Реально ли?

    copist
    @copist
    Empower people to give
    Менторские программы по веб-технологиям webmentor.pro
    Всё самое основное по программам: где, на чём, как и почему?
    Ответ написан
    Комментировать
  • Поиск наставника, рально ли?

    copist
    @copist
    Empower people to give
    Ответ написан
    Комментировать
  • Наставник, где мне тебя найти?

    copist
    @copist
    Empower people to give
    Возможно, ответ не актуален автору.
    Для тех, кто попал с поиска, просто оставлю это здесь : webmentor.pro
    Ответ написан
    Комментировать
  • Опишите тезисно, как сегодня должен быть сверстан хороший сайт?

    copist
    @copist
    Empower people to give
    Может вот эта статья пригодится? Базовые принципы вёрстки
    Ответ написан
    Комментировать
  • Как добавить иконки к уже встроенному шрифту?

    copist
    @copist
    Empower people to give
    Простой путь
    Фонтелло умеет добавлять иконки. Посмотри их API, у них есть утилита на github и веб-интерфейс.

    https://github.com/fontello/fontello#developers-api
    https://github.com/fontello/fontello

    Распаковываешь архив с веб-шрифтом, добавляешь несколько иконок и запускаешь утилиту - через некотрое время получишь дополненный веб-шрифт

    Джедайский путь
    1. записать файл icons8.woff.b64 такого содержания:
    d09GRgABAAAAABaUAA4AAA ..... много буков ..... /9YNLL0bmRhcAAfTIrgAAAA=

    2. распаковать из формата base64
    php -r '$file = file_get_contents("icons.woff.b64"); file_put_contents("icons8.woff", base64_decode($file));'


    3. полученный файл шрифта icons8.woff с помощью https://everythingfonts.com/woff-to-svg сконвертировать в шрифт в формате SVG
    4. полученный файл c шрифтом в формате SVG icons8.svg с помощью https://github.com/icons8/svg-caster преобразовать в кучу SVG файлов-иконок
    5. добавить свои файлы-иконки в формате SVG
    6. с помощью fontello.com создать веб-шрифт из этого набора файлов-иконок

    НО
    А. Коды символов изменятся, в вёрстке иконки могут оказаться не на своих местах оказаться, если в HTML вставляются через коды, а не имена классов.
    Б. Иконки надо согласовать по размерам, чтобы новые две не выглядели воронами. Пригодится редактор Inkscape или Adobe Illustator
    Ответ написан
    6 комментариев