Как стать автором
Обновить
0
Иванов Дмитрий @ivanopol read⁠-⁠only

Пользователь

Отправить сообщение

10 лайфхаков, как запустить собственное мини-приложение ВКонтакте: от автора сервисов «Футбол», «Хоккей» и «Баскетбол»

Время на прочтение 6 мин
Количество просмотров 2.9K

Привет! Меня зовут Андрей Комаров, я основатель проекта «Матчи». Это название вряд ли вам о чём-то говорит — зато вы наверняка слышали о сервисах «Футбол», «Хоккей» и «Баскетбол», которые работают ВКонтакте и в Одноклассниках. Там можно следить за расписанием соревнований, получать уведомления о забитых голах и общаться с болельщиками любимых клубов.

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

Читать далее
Всего голосов 47: ↑44 и ↓3 +41
Комментарии 4

Альтернатива Themeforest для тех, кто хочет продавать темы на WordPress

Время на прочтение 4 мин
Количество просмотров 13K

Я давно верстаю и делаю темы для WordPress: где-то уже более 4 лет. И, когда через года два после начала, я сделал больше 100 сайтов на WordPress, то конечно пришла мысль о том, как сделать себе пассивный заработок на создании плагинов и тем для Envato и ThemeForest. Поначалу впечатлила самая продаваемая тема Avada и, конечно же, плагины Revolution Slider и Visual Composer. Сразу начинаешь умножать продажи на цену и получается прилично. Первое время я даже не замечал темы на WordPress, которые имели очень хороший дизайн, но при этом у них почти не было продаж. Можете даже посмотреть один пример: здесь и дизайн крутой и функционал неплохой, но продаж только 20 за 4 месяца.


image

Читать дальше →
Всего голосов 14: ↑8 и ↓6 +2
Комментарии 12

Рекомендации по применению Hero Images (UPD)

Время на прочтение 4 мин
Количество просмотров 13K
Несмотря на то, что тренд по использованию Hero Image уже не так свеж, он все еще актуален. Использование подобных изображений помогает сделать ваш продукт или страницу сайта привлекательнее и мотивирует пользователя посмотреть, что же вы ему предлагаете. Сегодня мы приглашаем читателей ознакомиться с переводом статьи Ника Бабича о том, как достичь максимального эффекта, применяя данный прием.

Из статьи вы узнаете:

  • почему визуальная составляющая играет решающую роль в привлечении пользователей;
  • какие функции выполняют изображения на сайтах;
  • что следует учитывать при отборе картинок.


Читать дальше →
Всего голосов 15: ↑11 и ↓4 +7
Комментарии 4

Ускорение WordPress. Тотальный разбор плагинов для кэширования. Личный опыт (часть 1)

Время на прочтение 14 мин
Количество просмотров 18K

Что делать, если сайт на WordPress грузится медленно? Ответ на самом деле прост – настрой кеширование. Можно ещё заниматься оптимизацией изображений, настройкой lazy loading и прочими хитростями. Но кеширование всё равно остаётся ключевым способом ускорения любого сайта на Вордпресс. Кажется, всё просто, зайди в Google, напиши "WordPress cache", найди статью, где больше всего картинок, скачай упомянутый в статье плагин и выстави настройки согласно скриншотам. При любом раскладе твой сайт сразу начнет работать в разы быстрей.

Но дьявол, как обычно, кроется в деталях. В интернете есть самые разные обзоры и сравнения плагинов кеширования. И за столько лет кто-то же должен был выдать идеальный рецепт? Но нет. Все эти обзоры сводятся к тезису: «мы сделали 10 одинаковых сайтов, установили плагины с дефолтными настройками и смотрим, где страница загрузилась быстрее». При этом все забывают, что нюансов при оптимизации кеширования вагон и маленькая тележка. Похоже, эта статья первая, которая примет во внимание реальное поведение пользователей на сайте, вместо сравнения скорости загрузки одной страницы в тепличных условиях.

Используя бестселлеры с Themeforest или, те же конструкторы, вроде Elementor, WP Backery и прочие, сайт обречен на 5-15 секунд TTFB (time for first byte, время ответа сайта) при загрузке КАЖДОЙ страницы. С одной страницы может быть несколько сотен обращений к базе данных, выполняться большое число php-функций, подключаться множество библиотек. Естественно, что такая скорость недопустима, она влечет за собой понижение в поисковой выдаче, "отказы" посетителей, сливы бюджетов на рекламу и так далее. С этим нужно что-то делать.

Читать далее
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 7

Как мы сделали мобильное приложение для курьеров «ВкусВилл» за 9 дней

Время на прочтение 5 мин
Количество просмотров 9.3K
Привет, меня зовут Алексей Кафтанов, я — руководитель компании FullStack (входит в ГК «Автомакон»). Мы занимаемся разработкой мобильных и web-приложений.

В начале года у нас появился интересный кейс. За две недели мы сделали базовое курьерское приложение с обновлением функционала без необходимости выгрузки билда в стор.
Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 19

Пожалуйста, прекращайте говорить про шаблон Репозиторий с Eloquent

Время на прочтение 5 мин
Количество просмотров 22K

Я регулярно вижу статьи в стиле "как использовать шаблон Репозиторий с Eloquent" (одна такая попала в недавний PHP-дайджест). Обычное содержание их: давайте создадим интерфейс PostRepositoryInterface, EloquentPostRepository класс, красиво их забиндим в контейнере зависимостей и будем использовать вместо стандартных элоквентовских методов save и find.


Зачем этот шаблон нужен иногда вовсе не пишут ("Это же шаблон! Разве не достаточно?"), иногда что-то пишут про возможную смену базы данных (очень частое явление в каждом проекте), а также про тестирование и моки-стабы. Пользу от введения такого шаблона в обычный Laravel проект в таких статьях сложно уловить.


Попробуем разобраться, что к чему? Шаблон Репозиторий позволяет абстрагироваться от конкретной системы хранения (которая у нас обычно представляет собой базу данных), предоставляя абстрактное понятие коллекции сущностей.

Читать дальше →
Всего голосов 30: ↑25 и ↓5 +20
Комментарии 33

Полезные репозитории с Eloquent?

Время на прочтение 7 мин
Количество просмотров 19K

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


<?php
interface PostRepository
{
    public function getById($id): Post;
    public function save(Post $post);
    public function delete($id);
}

Однако, в реальных проектах, если репозитории таки было решено использовать, в них часто добавляются методы для выборок записей:


<?php
interface PostRepository
{
    public function getById($id): Post;
    public function save(Post $post);
    public function delete($id);

    public function getLastPosts();
    public function getTopPosts();
    public function getUserPosts($userId);
}
Читать дальше →
Всего голосов 25: ↑22 и ↓3 +19
Комментарии 28

Изучаем процессы в Linux

Время на прочтение 7 мин
Количество просмотров 155K

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

Данная статья в большей мере рассчитана на новичков в системном программировании и тех, кто просто хочет узнать немного больше о том, как работают процессы в Linux.
Читать дальше →
Всего голосов 64: ↑62 и ↓2 +60
Комментарии 60

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

Время на прочтение 11 мин
Количество просмотров 58K


Нейронные сети глубокого обучения достигли больших успехов в распознавании образов. В тоже время текстовые капчи до сих пор используются в некоторых известных сервисах бесплатной электронной почты. Интересно смогут ли нейронные сети глубоко обучения справится с задачей распознавания текстовой капчи? Если да то как?
Читать дальше →
Всего голосов 79: ↑77 и ↓2 +75
Комментарии 102

Laravel подробнее про Homestead

Время на прочтение 6 мин
Количество просмотров 43K
В официальной документации Laravel написана целая страница о Homestead, но проблема в том, что в ней мало разъяснений зачем это вообще надо. В документации скорее инструкция для тех кто уже знаком и с VirtualBox и с Vagrant и с Linux (Ubuntu). Если Вы из таких — статья не откроет что-то новое, но если Вы прочитали про Homestead в документации и не поняли зачем это вообще надо, или что-то не получилось выполнить по инструкции — в этой статье все будет разжевано подробно.
Читать дальше →
Всего голосов 13: ↑7 и ↓6 +1
Комментарии 20

Тернистый путь к продажам на Themeforest.net — Часть 1

Время на прочтение 7 мин
Количество просмотров 93K

Наверняка многие задумываются над тем, чтобы попробовать продавать свои шаблоны на известном маркетплейсе Envato.com, а некоторые уже успешно этим занимаются. В данной статье я хочу поделиться своим опытом разработки и продажи шаблонов на Themeforest.net



Информации в сети о заветном маркетплейсе Envato.com достаточно много, но детально расписанный процесс подготовки проектов попадается очень редко. Я сам не раз обращался к успешным авторам, продающим на Themeforest.net, за советом и помощью. Благо есть люди готовые помочь безвозмездно. Я надеюсь, моя статья также будет полезна начинающим авторам или тем, кто собирается стать автором. Ну или, по крайней мере, прольет немного света на темопроизводство.




Как все начиналось


Как я рассказывал в своих предыдущих публикациях, уже несколько лет моя небольшая студия занимается диджитал продакшеном: разработкой web сайтов и мобильных приложений. А разработкой шаблонов мы занялись по рекомендации моего товарища. Однажды он сказал, что это отличный дополнительный заработок для небольшой студии, и, мол, усилий требуется совсем немного для этого. Идея иметь дополнительный заработок, используя ресурс студии, который не загружен по текущим проектам, мне понравилась. Но тогда я еще даже не представлял какое количество времени мы потратим до того момента, как в продаже на Themeforest.net появится наш первый шаблон. Нам для старта продаж понадобилось более полутора лет. Однако, это случай частный и не стоит на него ориентироваться. Я знаю примеры и более стремительного успеха. Но хочу более детально рассказать, почему мы так долго к этому шли и с какими трудностями столкнулись в процессе.

Читать дальше
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 56

Plotti.co: самый простой микросервис для мониторинга графиков в реальном времени

Время на прочтение 2 мин
Количество просмотров 18K
Привет, хабравчанин!

В этой заметке речь пойдет о Plotti.co — адски простом в использовании инструменте, который делает ровно одну вещь, но делает её быстро и хорошо. Речь пойдет об онлайн-рисовании графиков и их обновлении в реальном времени.

Создание живых графиков на лету, как мне кажется, не является той задачей, для решения которой нужно сперва прочесть 10 страниц документации, заплатить за подписку по $20 в месяц, а иногда — и то, и другое сразу. Так нельзя. Не в 2016 году.

image

В Plotti.co клиентская часть — это SVG-изображение, которое подписывается по EventSource на источник данных от сервера, и обновляет график в соответствии с ними. Интегрируется она в страницу элементарно:

<object data="http://plotti.co/U0N5G5FQigwC/plot.svg" type="image/svg+xml"></object>


Да, это всё. Здесь U0N5G5FQigwC — это хеш картинки. Чтобы картинка обновилась во всех браузерах, в которых она сейчас открыта, необходимо просто послать GET-запрос по соответствующему адресу. Например,

wget "http://plotti.co/U0N5G5FQigwC?d=1.5,3.6,7.8mbps" -O /dev/null


Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Комментарии 15

PHP-Дайджест № 81 – интересные новости, материалы и инструменты (1 – 13 марта 2016)

Время на прочтение 4 мин
Количество просмотров 20K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 43: ↑38 и ↓5 +33
Комментарии 11

Нестандартная оптимизация проектов на PHP

Время на прочтение 5 мин
Количество просмотров 29K
В данной публикации хочу рассказать о том, как нетрадиционными методами мы смогли снизить нагрузку на серверы и ускорить время обработки страницы в несколько раз.

image

Традиционные методы, думаю, всем известны:
  • Оптимизация SQL-запросов;
  • Поиск и исправление узких мест;
  • Переход на Memcache для часто используемых данных;
  • Установка APC, XCache и подобных;
  • Клиентская оптимизация: CSS спрайты и т.п.


В нашем же проекте всё это было сделано, но при этом проблема скорости обработки страниц сохранялась. Средняя скорость обработки страницы была в районе 500мс. В один прекрасный момент пришла идея проанализировать, какие ресурсы есть, и на что они могут тратиться.
Читать дальше →
Всего голосов 53: ↑40 и ↓13 +27
Комментарии 103

Konva.js — HTML5 2d canvas framework

Время на прочтение 5 мин
Количество просмотров 55K
image

Приветствую. Представляю сообществу проект Konva.js.

Konva.js — это фреймворк, который позволяет работать c canvas 2d в объектном стиле с поддержкой событий.

Кратко список особенностей выглядит так:
  1. Объектное API
  2. Вложенные объекты и «всплытие» событий
  3. Поддержка нескольких слоёв (нескольких canvas элементов)
  4. Кэширование объектов
  5. Поддержка анимаций
  6. Настраиваемый drag&drop
  7. Фильтры
  8. Готовые к использованию объекты, включая прямоугольник, круг, изображение, текст, линия, SVG путь, ..
  9. Простое создание собственных фигур
  10. Событийная архитектура, которая позволяет разработчикам подписываться на события изменений аттрибутов, отрисовки, и так далее
  11. Сериализация и десериализация
  12. Продвинутый поиск с помощью селекторов stage.get('#foo') и layer.get('.bar')
  13. Десктоп и мобильные события
  14. Встроенная подержка HDPI устройств
  15. и еще много разного


Далее подробней рассмотрим возможности фреймворка с примерами кода.
Читать дальше →
Всего голосов 36: ↑33 и ↓3 +30
Комментарии 37

Улучшаем код JavaScript на примере StarWars API

Время на прочтение 6 мин
Количество просмотров 15K
image

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

Как-то в выходной я решил отказаться от использования компьютера. Но ничего не вышло. Я наткнулся на Star Wars API. Этот простой интерфейс основан на REST, и с его помощью можно запрашивать информацию о персонажах, фильмах, космических кораблях и других вещах из вселенной SW. Поиска нет, но сервис свободный.
Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Комментарии 4

Разоблачение 12 юридических заблуждений о программах для ЭВМ

Время на прочтение 7 мин
Количество просмотров 182K


Заблуждение / опасная привычка На самом деле … Наш совет прост:
1. Мы создали программу и автоматически стали ее авторами и правообладателями. Для охраны и продажи программы никаких документов оформлять не нужно, ведь она охраняется авторским правом — ©! Действительно: программа для ЭВМ охраняется авторским правом как литературное произведение (п.1 ст. 1259, ст. 1261 ГК РФ).

Но то, что для возникновения авторских прав не требуется регистрация или соблюдение каких-либо иных формальностей (п.4 ст. 1259 ГК РФ), ни в коем случае не освобождает:
− от соблюдения набора критериев, установленных законом;
− от необходимости документально доказать факт создания программы и свои права на них.

Неоформленный SOFT закон не охраняет.

Всё просто: если у вас спор о правах на программу, то без документов вы не сможете доказать, что (1) у вас были права и (2) ваши права нарушены, (3) что сама эта совокупность данных и команд на языке программирования является интеллектуальной собственностью (ведь различные версии и релизы никакой новой интеллектуальной собственности не создают).
То же самое – при постановке на бухгалтерский учёт и оформлении бухгалтерских проводок.

Коротко говоря: нет документов = нет интеллектуальной собственности = нет нарушений прав = нет компенсации за нарушение прав.
Оформляйте много хороших и разных документов при создании программ для ЭВМ:
— договоры с авторами;
— договоры с подрядчиками;
— технические задания;
— протоколы совещаний и тестов;
— соглашения между соавторами;
— авторское свидетельство;
— сертификат признания интеллектуальной собственности;
— спецификация РИД;
— свидетельство о регистрации программы для ЭВМ (Роспатент).
Читать дальше →
Всего голосов 149: ↑119 и ↓30 +89
Комментарии 210

Все самые знаменитые видеоматериалы со Стивом Джобсом на русском языке

Время на прочтение 3 мин
Количество просмотров 40K
Привет, Хабр! 24 февраля 2013 года Стиву Джобсу исполнилось бы 58 лет, и все поклонники помнят об этом. По случаю дня рождения этого легендарного человека я решил сделать подборку видеоматериал с его участием — это интересно, для многих познавательно, а некоторые смогут еще чему-то обучиться. Возможно, некоторые материалы уже встречались на хабре, но я считаю в этом топике собраны все самые знаменитые видео и все они на русском языке.

A Tribute to Steve Jobs


Наследие, которое Стив Джобс подарил нашему миру. Потрясающее видео, содержащие в себе нарезку из презентаций всех инновационных продуктов компании Apple. Последняя минута для меня самая впечатлительная — реакция публики на первый Mac. Такое ощущение, что Стив показал людям будущее. Овации не заканчиваются…

Это видео нельзя встроить, поэтому при желании посмотреть придется перейти по ссылке

23 минуты 1980 года со Стивом Джобсом


В это время первым массовым персональным компьютером, выпускавшимся миллионами экземпляров, стал компьютер Apple II. В Apple работают над новыми продуктами. Даже одна аналогия из этого видео имеет глубокий смысл: сравнивая потребление калорий различных животных и человека для преодоления определенной дистанции, человек занимает далеко от первого место, но на велосипеде он тратит в два раза меньше энергии. В этом основное преимущество человека, и для Apple задача сделать «велосипед для мозга».


Читать дальше →
Всего голосов 61: ↑30 и ↓31 -1
Комментарии 9

FizzBuzz, или почему программисты не умеют программировать

Время на прочтение 4 мин
Количество просмотров 288K
[Автор этой статьи — Джеф Этвуд (Jeff Atwood), один из основателей stackoverflow.com. Сама же статья, несмотря на довольно приличный возраст (она написана в 2007 году) до сих пор популярна, а введенный в ней термин «FizzBuzz question» стал общеупотребительным. Оригинал можно найти здесь.]

Я весьма скептически отнесся к следующему наблюдению Реджинальда Брейтвайта (Reginald Braithwaite):

«Меня немного удручает тот факт, что 199 из 200 соискателей программистских вакансий не умеют программировать. Повторю: они не умеют писать код. Вообще.»

Читать дальше →
Всего голосов 130: ↑119 и ↓11 +108
Комментарии 584

Верстка для самых маленьких. Верстаем страницу по БЭМу

Время на прочтение 14 мин
Количество просмотров 386K
Недавно хабраюзер Mirantus написал статью «Как сверстать веб-страницу», в которой рассказывал о том, как же сверстать веб-страничку. В его статье было подробно рассмотрено, как выделить отдельные элементы из заданного шаблона, подобрать шрифты и т.п. Однако его подход к написанию, собственно, веб-страницы мне показался не очень хорошим, о чем я написал в комментариях.

В данной статье я хочу рассказать, о том, как можно сверстать «хорошо» (по крайней мере структурировано ;), а заодно рассказать и о методологии, которая может «упростить жизнь» при верстке. Структура поста будет следующей:

  • BEM
  • Собственно пример — как сверстать страницу

Читать дальше →
Всего голосов 154: ↑133 и ↓21 +112
Комментарии 172

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Fullstack Developer
Middle
JavaScript
Vue.js
Adaptive layout
HTML
PHP
Laravel
Database
Docker