• Как добавить иконки к уже встроенному шрифту?

    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 комментариев
  • Какие есть онлайн-тесты на знание SQL-запросов?

    copist
    @copist
    Empower people to give
    Ответ написан
    Комментировать
  • Новостной сайт с публичным api?

    copist
    @copist
    Empower people to give
    Любой RSS. Выдаётся в XML. Парсить легко. Любой новостной ресурс.
    habrahabr.ru/rss/interesting
    lenta.ru/rss
    Ответ написан
  • Как правильно сохранять отношения в Yii2?

    copist
    @copist
    Empower people to give
    Прямых методов нет, то ты можешь реализовать их таким образом самостоятельно

    class Comment extends CActiveRecord
    {
        public function setUser(\User $user = null)
        {
            if (is_null($user))
            {
                $this->user_id = null;
            } else
            {
                $this->user_id = $user->id;
            }
        }
    }
    
    $comment = new Comment;
    $comment->user = $user;
    // или
    $comment->setUser($user);


    На самом деле схема значительно более сложная, чем просто написать setter для свойства user.
    Что делать, если поменять свойство user_id через которое вычисляется user - его же вроде опять надо подгрузить из базы?
    Будут ли идентичными сущности $user для двух разных комментариев с одинаковым user_id?
    Что делать, если $user ещё не был сохранён ? Не давать присваивать $comment->setUser($user) или делать автоматическое сохранение цепочкой (сначала $user, затем $comment) ?

    Много много много вопросов.
    В Yii2 такие сложности не реализованы, поскольку универсальное всеохватывающее решение как в Doctrina или PropelORM работают очень медленно и жрут память. Там как раз иногда приходится запрещать навороченную логику.
    Ответ написан
    1 комментарий
  • Frontend или Backend?

    copist
    @copist
    Empower people to give
    Ответ написан
    Комментировать
  • Есть ли интересные(обучающие) задачники по программированию (для новичка)?

    copist
    @copist
    Empower people to give
    Чтобы напрячь свои извилины, нужно напрячь свои извилины. Рекурсия.
    Придумай сам, чтобы такого сделать. И сделай.
    Ответ написан
    Комментировать
  • Стоит ли отходить от нормализации бд, чтобы улучшить производительность?

    copist
    @copist
    Empower people to give
    Можно завести ещё одну таблицу - список тех, кто поменял что-то совсем недавно и для него надо обновить вычисленное поле. Проходить только по ней. Сократит время обновления.

    Или перевычислять это поле по факту изменений, но асинхронно, через очереди.
    Ответ написан
  • Можете объяснить, чем полезна буферизация?

    copist
    @copist
    Empower people to give
    Гарантия того, что заголовки HTTP отправятся раньше, чем содержимое.
    Ответ написан
    Комментировать
  • Сидячий образ жизни кодера на самом деле ухудшает здоровье?

    copist
    @copist
    Empower people to give
    Вес потихоньку набирается, потому что сладкое обожаю. Спасибо Дмитрий Макаров за совет с кашами, но какие именно?
    Если совсем не шевелиться, то из-за застойных процессов нарушается кровообращение и как следствие плохо варит котелок. А так же боли в спине и шее. Ленивый кишечник. Дискомфорт в ногах.

    Бегать на улице не в кайф. Велика нет. Лыжи редко и вообще только зимой. Вот моё решение:
    PSM-Od3RUCE.jpg
    Пробежка 30-40 минут + гимнастика на растяжения + гантели/пресс/подтягивания + прохладный душ. В лучшем случае управляюсь за час.
    Голова работает отлично. Сплю 6 часов в сутки, не устаю. Кстати, режим сна 5 часов + 4 * 15 минут днём.

    Раз в квартал нанимаю массажистку для спины, плечей и шеи. 10 сеансов.

    На мониторе на стене смотрю фильмы или сериалы во время пробежки. Ещё там можно читать книги, но я предпочитаю читать бумажные и делать пометки на полях.

    Плавно мигающее световолокно перед глазами позволяет расслабить зрение. На столе лампа 2*18Wt очень яркая. Под потолоком 4*20Wt 4200K дневной свет.

    Два очистителя воздуха с ионизаторами. Один чистит внутренний воздух ультрафиолетом. Второй, приточный, чистит уличный воздух. Кондиционера нет.

    Играю (очень-очень редко, по разным причинам) в XBox Kinect. Специально играю только в кинектовские игры, подвижные. "Звёздные войны" очень разминают руки, а "Adventures" - ноги и спину.

    Часть времени работаю стоя. Ноут стоит на крышке террариума, а я рядом.
    Ответ написан
    6 комментариев
  • Как справляется Google с индексацией сайтов на AngularJS и других фреймворках?

    copist
    @copist
    Empower people to give
    Личный опыт работы с prerender habrahabr.ru/post/254213/#comment_8546193 на проекте с 100 000+ страниц.

    Ну и в результате отличная индексация, icons8.com на первой странице выдачи гугла по ключевым, пользователи заходят практически на все из 100 000 страниц из поиска
    Ответ написан
    3 комментария
  • Как решить проблему после отправки POST?

    copist
    @copist
    Empower people to give
    Если надо остаться на той же странице
    <?php
    if (/* login success */) {
       header("HTTP/1.1 205 Reset Сontent");
    }

    Можно никуда не редиректить. Браузер забудет, что отправлял данные методом POST. Если перегрузить страницу, сообщений "Надо повторно отправить форму..." не появится.

    Если надо перейти на другую страницу, но чтобы не появлялось "Чтобы отобразить эту страницу, XXX должен отправить информацию..." когда он в браузере кнопку "Вернуться" нажмёт
    <?php
    if (/* login success */) {
       header( 'Location: /* new location*/', true, 205);
    }
    Ответ написан
  • Стоит ли встраивать js и css в тело страницы?

    copist
    @copist
    Empower people to give
    Что касается CSS.
    Можно разделить код CSS на две части: первая небольшая часть для того, чтобы сайт выглядел пристойно, вторая - чтобы выглядел идеально.
    Первый блок встраивается в HTML, а второй загружается из файла.
    Можно поставить куку и при её наличии в текст HTML стили не подключать, а использовать только подключаемый файл. Или делать такое деление только на посадочных страницах, а на более сложных внутренних не заморачиваться.

    Насчёт JS принцип тот же. Первый блок встраивается в HTML чтобы сайт не ломался, пока загружается основной JS, но тут так просто не поделишь. Я бы порекомендовал сайт изначально делать так, чтобы он не ломался, пока сценарии JS не загрузились.

    Это называется progressive enhancement. В целом это даёт более высокий рейтинг от google pagespeed insights и радует посетителей.

    Не забудь выставить заголовки для кэширования CSS и JS в браузере.
    Ответ написан
    Комментировать
  • Идея для проекта: уникальная или аналог существующего?

    copist
    @copist
    Empower people to give
    Первое значение "гуру" - мастер, учитель, наставник.
    С этой стороны, имя домена намекает, что его владелец - многоопытный специалист, выполняет какое-нибудь наставничество, духовное или профессиональное. Стало домен быть подходит под сервисы наставничества.
    Пример: https://smartprogress.do/site/evolution

    Второе значение гуру - достойный, великий, важный, тяжелый, утвердившийся в истине, непоколебимый.
    С этой стороны, имя домена могло бы означать не текущее состояние, а цель. "Я хочу стать гуру". Может быть опять же наставничество, а может быть и контентный проект, на котором можно ознакомиться с лучшими практиками, историями, приобрести литературу, записаться на тренинги, мастер-классы, курсы.
    В общем, чему-то научиться.
    Аналог - www.mann-ivanov-ferber.ru/samorazvitie-books samopoznanie.ru 4brain.ru

    Третий вариант - от сленгового значения гуру как профессионал. Портал для поиска работы для профессионалов. Кадровое агенство? Электронная биржа труда? На ум приходит Linked In

    Объединить все три идеи вместе?

    P.S. Знаю я человека, который питался идеей разработать проект под удобный домен profy.*** чтобы продать его за миллион зелёных бумажек. Тоже проект под доменное имя. А так вообще на нём болтался блог на wordpress и частично из-за своего названия был посещаемым.
    Ответ написан
    1 комментарий
  • Каковы Возрастные ограничения в программировании?

    copist
    @copist
    Empower people to give
    Может что посоветуете для начала карьеры, так как сейчас работаю в совершенно другой сфере в жестком графике и чисто физически времени и сил не хватает на то чтобы быстрее вникнуть.

    А кто обещал быстро?
    Ответ написан
    Комментировать
  • CURL Почему сервер возвращает неполный ответ?

    copist
    @copist
    Empower people to give
    nginx ? Проверьте права на запись в /var/lib/nginx/fastcgi/
    Ответ написан
    Комментировать
  • Как проверить размер загружаемых файлов до загрузки на сервер?

    copist
    @copist
    Empower people to give
    Можно прочитать файл, не загружая на сервер
    Вот пример codepen.io/copist/pen/VvmLbZ - выбери файл в формате SVG и он сразу будет отображён. POST или AJAX не используются.

    Есть специальные библиотеки на JS, которые занимаются валидацией файлов на стороне браузера: расширение, размер в байтах, размер изображений в пикселах. У меня вот проверяется что выбран именно файл, содержащий разметку в формате SVG.

    А также в настройках PHP и веб-сервера можно указать максимальный объём данных для загрузки на сервер. При превышении размера сервер просто не будет принимать файлы.
    Ответ написан
    Комментировать
  • Как сделать стиль для SVG?

    copist
    @copist
    Empower people to give
    Если под стилем подразумевается рамка вокруг картинки, то легко

    .icon {
        border: 1px solid red;
    }


    А если нужен доступ к отдельным линиям, то не используй embed, a вставляй сразу в HTML.
    Вот пример: меняется видимость и цвет элементов codepen.io/copist/pen/WvVRRL
    Ответ написан
    Комментировать
  • Как людям удается столько зарабатывать на фрилансе?

    copist
    @copist
    Empower people to give
    Создать новостной портал с дизайном, адаптивной версткой и посадить все это дело на Drupal за 4000р.


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

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


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

    Нужно иметь актуальное портфолио, из которого будет видно, чем и как ты занимаешься. Все выполненные работы регулярно вноси в портфолио.

    Не пробовал удалёнку поискать? Аутсорс? (на сайтах вакансий искать "удалённо", "неполный день", "по совместительству"). И попутно ещё разовые заказы брать на биржах.

    А ещё есть биржи труда для стартапов, там бывают неплохие предложения по удалённой работе.

    и другие ресурсы по фразе стартап поиск команды
    Ответ написан
    9 комментариев
  • Как реализовать пошаговую обучающую мини игру на веб сайте?

    copist
    @copist
    Empower people to give
    Очень смутный вопрос. А что за игра?
    Игры можно сделать на стороне клиента (веб-браузер), технологий очень много.
    Можно на JS сделать с использованием <canvas> и более простые варианты возможны.
    Ответ написан
    Комментировать
  • Почему PDO::lastInsertId возвращает неверный ID при частых вставках в БД?

    copist
    @copist
    Empower people to give
    Нет ли у вас такого, что запрос всталяет сразу несколько записей?
    Тогда вернётся ID самой последней вставленной

    P.S. Кстати, использованный метод UUIDv4 не самый надёжный в плане уникальности ключей
    Ответ написан