Блог Максима Федорова [18+]

Крутая идея для SEO

UPD: Подкинули мне, что идея не новая идея и давно такое уже такое есть, но может как мне будет полезно.

Пару дней назад на Тостере задали вопрос, влияют ли сохраненные пользователями на сайте запросы в поиске сайта на SEO, и привели пример, где такое реализовано:

Вопрос интересный — пошел по ссылке и увидел, как красавцы сделали выдачу реальных последних запросов своих посетителей на сайте:

В чем фишка

Идея заключается в том, что посетители сами формируют низкочастотные запросы, которые им интересны, на основании этих запросов формируется ссылка и готовая страница под нужный запрос.

Например у вас есть набор телефонов с обычной категорией «телефоны» или «смартфоны» и есть поиск по их параметрам или по описанию. Вот например в описании сказано, что телефон подойдет для плоховидящих или слепых людей, так как у него большие кнопки — тогда при вводе запроса «телефон для слепых» в поиске сайта формируется выдача с нужными телефонами и формируется нужная ссылка, итог — релевантная страница, с нужным заголовком и как итог — продвижение по запросу «телефон для слепых». Это гениально!

В чем соль

На сайте должен быть хороший поиск, например нужно сделать полнотекствоый поиск с помощью Sphinx или ElasticSearch, или умудриться сделать хороший поиск средствами MySQL по описанию, названию и свойствам товара...

Кстати я помню кейс от Мосигры — они сделали синонимы при разработке своего поиска, например игру «Шакал» можно было найти по запросу «Кайот», но по этому же запросу в Яндексе вряд ли бы кто нашел эту же страницу, реализую функционал выше — можно было бы не хило продвинуться по этому запросу.

Если же поиск сайта шалит — можно сделать этот ресурс администрируемым.

14 сентября   SEO   Идея   Советы

Причина 404 ошибки Profiler в Symfony 3 при открытии app_dev.php

Когда разворачиваете приложение на Симфони 3 и при открытии страницы /app_dev.php может выскочить ошибка в профайлере:

На странице app_dev.php

Ошибка частая — может возникнуть, если вы настраиваете веб-сервер (у меня nginx) привычным образом и не внимательно следуете официальной документации.

После диррективы fastcgi_pass нужно ввести:

fastcgi_split_path_info ^(.+\.php)(/.*)$;

Чтобы в итоге получилось примерно так:

location ~ ^/(app_dev|config)\.php(/|$) {
        fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        ...
}

Перезапустите nginx:

sudo service nginx restart

Можете радоваться профайлингу:

Ссылка на раздел в официальной документации: https://symfony.com/doc/current/setup/web_server_configuration.html#nginxСоветы

3 сентября   nginx   symfony   Советы

Отвечаю на вопросы по php

Готов помочь с проблемным кодом на php. Присылайте вопросы, примеры кода и описание задач, которые вы пытаетесь решить. Мне будет полезно отрабатывать навыки, вам возможно найдется решение. Ну сайт делать вам не расскажу как, а вот как настроить сервер, починить отправку писем или как работать с циклом, массивом или классом— велкам!


Присылайте вопросы в Вконтакте или на почту

Помогаю на Тостере

P.S. К сожалению закрыл комментарии из-за уебищного закона о персональных данных, а зарубежную версию сайта не открыл еще.

27 августа   Помощь

Верные друзья джуниора

Неделю назад устроился младшим программистом в крутую команду разработчиков — буду участвовать в разработке двух сервисов. Хочу поделиться своими недельными выводами.

Уметь в контроль версий (GIT)

Пришел с небольшим опытом работы в Гите, но так как не работал в команде, то понятия не имел как работать с ветками. Именно тут и наплутал — сделал одну фичу, но тут же вскоре понадобилось выполнить пару несложных доработок, которые сделал поверх этой первой фичи и запушил их на dev-сервер, еле-еле распутался.

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

И еще:

Следуйте GIT WORKFLOW

Ссылки:
https://habrahabr.ru/post/60030/
https://habrahabr.ru/post/106912/

Любить следующего парня

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

В итоге на одном проекте не было нужных для php модулей языка. На двух сыпались миграции — пришлось качать с тестового сервера копию базы (что тоже нужно догадаться — где и как взять доступы к ним?), на этих же проектах нужно было узнать — какой доступ к админ-панелям. На третьем все было хорошо, но чтобы создать администратора — нужно было пользоваться консольным приложением, команды которого (как и сам факт его наличия) знает только его разработчик — так себе зависимость ¯\_(ツ)_/¯

По итогу дня я вхреначил в README у каждого проекта инструкцию с установкой, а также вставил описание проблем и прямо захреначил коммиты в prod-ветку — с ветками в гите на тот момент я еще не разобрался ¯\_(ツ)_/¯

Делай инструкции для следующего парня!

Это сбережет новичку нервы, а опытному сотруднику время.

Уметь в  Linux

Очень важно знать консоль и работу с Линуксом. Хорошее знание SSH, настройки хостов в nginx, да и много чего — пригодилось практически с первого дня. Даже чуток помог другому новичку. Кстати почти вся команда разработчиков работает либо под Убунтой, либо под Мак-ОС.

Уметь в автоматические тесты

К сожалению тесты — не уровень новичка, так как сложноватая штука и по приоритетам приходится уделять время языку и фреймворкам, на которых работаешь.

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

Тесты нужны, тесты важны, тесты сложны!

Виды решений для интеграций CMS с онлайн-кассами

Решение с арендой онлайн-кассы

— Интеграция CMS напрямую с сервисом онлайн-касс (например Атол-онлайн)
В этом случае CMS получает статус подтверждения оплаты и отправляет в сервис данные о покупке (наименование товаров, их цену и количесвто, итоговоую сумму, дату и еще ряд значений).

Последняя на момент написания документация API сервиса Атол-онлайн:

— Интеграция через Яндекс-кассу или др платежные системы

Тут CMS вообще не участвует — очень удобый и простой вариант, но есть зависимость от платежной системы, если все платежи на сайте идут через Яндекс-кассу или через PayAnyWay — нет проблем, а вот если у вас винегрет из платежных модулей — то беда, подойдет только вариант напрямую с Атол-онлайн (или похожими сервисами) или хардкорный со своим железом.

Плюсы и минусы:
+ Отказоустойчивость
+ Соответствие всем стандартам безопасности
+ Простая интеграция
— Абонентские платежи


Решение со своим железом

В данном случае кассовый аппарат находится у себя, он подключен к компьютеру, на котором будет ставиться софт — я так понял он подходит в случае интеграции с 1С, то есть 1С выгружает в папку на компьютере информацию о покупке, далее веб-сервер на компьютере проверяет наличие новых файлов в папке и если найдет — выводит на печать в кассовый аппарат, который сам уже связывается с ОФД.

Что нашел — можно связать через:

Плюсы и минусы:
+ Нет ежемесячных расходов на аренду
+ При необходимости PayPal — походу это пока единственное решение
— Необходим постоянный стабильный интернет и энергоснабжение
— В случае поломки придется остановить прием платежей
— Необходимо подключение к ПК и настройка специальной программы

26 июля   54-ФЗ   Онлайн-кассы

Ошибка 500 в Laravel 5 при установке

Ошибка проявляет себя сразу после установки.

Нужно просто поменять права у папки storage на 777 (исполнять, читать и редактировать для всех пользователей)

Для Линукса

Переходим в папку приложения (для приведенного случая в папку /laravel/blog)

cd /laravel/blog
chmod 777 -R storage/

и меняем права:

chmod 777 -R storage/
26 июня  

Первый опыт работы с учеником

Полторы недели назад взял ученика помогать с работой. В основном нужно много верстать страницы сайта и мейл-письма — хотел разгрузить себя от рутины, нужна была мотивация для самоорганизации и давно уже хотел делиться знаниями.

Бывалый верстальщик показывает как верстать с помощью БЭМ, Богданов И., 1893 год

Зачем взял помощника

Я посчитал, что если взять помощника, и через полтора-два месяца он сможет делать работу, то я смогу брать заказы по программированию и не заморачиваться с версткой и другой работой и при том нормально выучиться по программированию, плюс будет какой-никакой опыт командной работы — например через пару недель буду встраивать в нашу работу GIT, да и с какой стороны не посмотреть — это круто!

Единственным возражением было — ничего не выйдет. Но я посчитал, что это не причина  — если может не получиться, то теперь ничего никогда не пробовать?!

Как нанимал

Было 5 кандидатов — неплохо для зарплаты в 10 тысяч рублей:

  • была девушка, которая как раз собиралась найти работу для практики на лето, но ее по понятным причинам смутила работа на квартире у какого-то лысого мужика :) думаю — это нормально
  • был супер-парень, который учился на автоматизации оборудования, знал bash, Java и  C#, и вообще был матерый, в итоге он ушел в крупную компанию на стажировку, подтвердив этим свое умение думать :)
  • был матерый верстальщик, умеющий верстать пиксель в пиксель — мне показалось, что с его навыками зарабатывать 10 тысяч не совсем уместно...
  • и было два молодых не опытных парня, один закончил колледж по сварке (24 года) , другой студент-юрист (20 лет), оба примерно полгода изучали верстку — именно им и предложил встречу.

На встрече дал обоим тестовое простое задание на верстку — нужно было сделать 2 задания из 3. Оба выполнили задание еле-как, но жалею, что не дал никакого задания по математике — дело в том, что сначала позвал парнишку-сварщика, но он был слабоват в простейших математических операциях и не говорил о своих трудностях, говорил «сделаю» и не делал. Студент-юрист же наоборот — делал все с опережением, проявлял инициативу, но у него началась летняя практика, потому его не позвал на первый день работы.

В итоге взял парнишку постарше — за 3 дня до выхода дал задание как-нибудь сверстать для интернет-магазина страницы товара и категории, но первый день показал, что тяжело идет даже обычная математика — грубо говоря 100 разделить на 4 вызывали минутные задержки. Долго объяснял, как строится ХТМЛ-дерево, что такое классы и стили , когда и как нужно их применять, но я немного разочаровался и в итоге отказал после первого дня.

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

Обучение и работа

Сильно изменился подход к своей работе.

Джедай Mace Windu, фильм «Звездные войны»

Теперь стараюсь к каждому рабочему дню подготовиться и подготовиться заранее, даю стажеру максимально боевые задания:

  • сверстать адаптивную страницу товара и категории
  • сверстать мобильную страницу товара
  • сверстать слайдер

Причем само задание объясняю подробно, но некоторые вопросы опускаю на самостоятельное решение — вообще не лезу, например освоить OpenServer и Filezilla давал на дом.

Круто, что получается обучаться нам обоим. Например стажер спрашивает про флексы и гриды, а я говорю — делай все без них, в итоге понял, какого хера я торможу — дал ему волю и сам пытаюсь больше усвоить уже за ним. Он сразу же освоил инструменты автоматизации, например Emmet и хоткеи в Sublime — я в самом начале пути о них и не думал, помог ему только, как делать инклуды в  php, чтобы по сто раз не переделывать шапку например. Также раньше редко обращался к документации БЭМ — со стажером дело пошло шустрее, нужно было не просто понять, а еще и объяснить — в итоге материал быстро усвоился.

Помимо всего — основная работа пошла живее, запрограммировал расширенный личный кабинет в магазине, запустил оптовый сайт, изучил несколько крупных разделов по Yii 2. Постоянно идут вызовы — например решился конкретно взяться за LESS и SASS, самому мотивации не хватало — на следующей недели запланировал разобраться и сделать урок по ним.

Что не получается

Из-за работы не успеваю подготовить задания и описание урока и иногда игнорирую инициативы.
Приходится очень часто отрываться от работы — понял, что нужно готовить целые разделы и как-то упростить формат. Например нужно дать свободу в исполнении, но потом выделить время и объяснить разные подходы с плюсами и минусами.


Если не можешь объяснить что-то простым языком — значит ты сам не понимаешь этого в полной мере. Альберт Эйнштейн

24 июня   Работа   Ученик

Ищу стажера веб-разработчика

Меня зовут Максим Федоров и я руковожу в Новосибирске интернет-магазином одежды (оптовый и розничный) — программирую, автоматизирую работу и помогаю компании повысить продажи, а менеджерам автоматизировать рутину.



Мне нужен помощник для верстки и доработок + помимо работы нужен напарник для изучения фреймворков Yii 2 и Vue.js (или Реакт). Можно студент, желательно из технической специальности.

Мы будем верстать, исправлять баги, создавать лендинги и рассылки, писать первые модули — например парсеры, слайдеры, дорабатывать админку и делать первое REST API. Также изучать вместе со мной программирование и разрабатывать пару сервисов.

Требования:

  • HTML/CSS — уметь быстро сверстать страницу, очень круто если верстали адаптивно
  • PHP — хотя бы понимать, что такое переменные и как подключить файл, знать в теории, что такое массивы и функции, круто если в теории понимаете объектно-ориентированный подход
  • JS — хотя бы на уровне прикрутить плагин JQuery

Условия:

  • Работать будем у меня дома (р-н Пединститута) вместе с котом :-), нужно будет работать около 80-100 часов в месяц.
  • Оплата будет в районе 10-15 тысяч рублей за основную деятельность (интернет-магазин джинс) + возможна премия за хорошую работу
  • Если вы студент, то компания может поставить официальную летнюю стажировку
  • Как понимаете — ищу больше напарника, нежели подчиненного
  • Есть свободный ноутбук с Линуксом и VPS-сервер
  • Работать будем через Github (вместе будем настраивать), а задачи ставиться будут в Трелло и Гугл-Доксе
  • Книги и недорогие подписки за мой счет

По работе остро нужна помощь, если все будет хорошо — будет повышение зарплаты (уже не из моего пирога).

[ ! ] Ко всему прочему сыпятся иногда заказы — не всегда беру из-за занятости, тут прибыль пополам.

Обо мне

Я руководитель интернет-проектов. Мне 26 лет. Сам программирую на уровне джуниора и хорошо верстаю. Помогаю новичкам на форумах по верстке и не сложным доработкам по интернет-магазинам...

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



Читаю почту hello@maksfedorov.ru
И всегда Вконтакте

2017   Работа

Как я искал работу на vc.ru и в соцсетях

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

Нетрадиционный поиск — через vc.ru

Сразу после НГ праздников разместил свое резюме на vc.ru, результаты:

  • 6 предложений — 3 из Москвы, 2 из Питера, 1 из Казани и 1 из Новосибирска, еще пару предложений было через месяц и через два,
  • 400 человек смотрели резюме, в среднем смотрели 2,1 страницы и провели 2,28 минуты на сайте — внимательно изучали портфолио и читали некоторые статьи,
  • Просмотры в основном из Москвы (105) и Питера (40)

Скрин на 20 января


На самом деле это успех — такой результат только с одной площадки. В резюме не стал раздувать свой опыт и навыки, зарплата была обоснована и не надута, а еще указал недостатки, что повлияло на ожидания соискателей — не было мусора и пустых вопросов.

Без остроты рассказываю про недостатки

Нетрадиционный поиск — через соцсети

Тут было проще — открыл 2ГИС и пошел по всем веб-студиям и диджитал-агентствам в центре Новосибирска. В основном старался найти руководителей в ВКонтакте или Фейсбуке и списаться с ними для встречи. Писал и звонил очень много, в итоге встретился раз 5, с некоторыми компаниями переписывался долго и в ходе переписке определялись, чем подходим друг другу.

Сообщения старался писать под потребности компании и их вакансии

Вывод:

Соцсети и тематические СМИ — комфортный и удобный канал для поиска работы

Традиционные каналы

Тем не менее, нашел работу через «Зарплата.ру» — это местный агрегатор вакансий, типа «Хедхантера». Еще искал работу по горячим вакансиям. В итоге предложили работу по размещенному резюме, на поднятие которого потратил в районе 400 рублей :)

2017   Работа

Как подписаться на меня

После страшного события в Питере (мои соболезнования родственникам) ожидаю:

  • витка затягивания гаек в интернете
  • затягивания гаек после митингов
  • до этого всего курс был однозначный

Может кто-то и заметил, вчера меня заблокировали в ВК за репост митингов https://maksfedorov.ru/blog/all/vk-zablokiroval-menya-za-repost/
не регулярных, а за одно видео, выложу его и снова заблочат.

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

Безопасность одобряю, но прослушку россиян «по умолчанию» со стороны ведомств — считаю как раз дико не безопасным и чреветым утечками данных. Наши дебилы в Госдуме вечно путают причину со следствием.

Я на связи

Связаться со мной можно любым способом, везде читаю и отвечаю — например задать вопрос или предложить работу над проектом:

РСС блога:
https://maksfedorov.ru/blog/rss/

Телеграмм:
https://t.me/@maksfedorov

Фейсбук:
https://www.facebook.com/maksfedorovru

Почта:
hello@maksfedorov.ru

Ctrl + ↓ Ранее