Pull to refresh
1
0
Максим @PML

Front-end developer

Send message

Универсальный JavaScript

Reading time2 min
Views28K
В начале был Netscape. И возжелал Netscape выполнять Scheme-код в браузере Netscape Navigator. И наняли они Брендана Айка (Brendan Eich), чтобы он в поте лица своего работал над этим. Но потом они передумали и решили, что Java хотят они. И вот, рождён был JavaScript. И было это (достаточно) хорошо.

Безумная идея овладела Райаном Далом (Ryan Dahl) годы спустя: подружить движок V8 с библиотекой libev, дабы могли программисты выполнять свой JavaScript-код за пределами браузера. И возник Node.js. И npm. И люди возрадовались.

И стали люди писать веб-сервера на JavaScript, и запускать вертолёты с JavaScript на борту, и водружать его на планшеты и смартфоны, и встраивать его в термостаты и холодильники, да и во всё, во что их душа желала. И распространился JavaScript весьма и весьма широко. И презирали Нормальные Программисты™ (Serious Developers) простых людей, пишущих на JavaScript, но простые люди продолжали писать на JavaScript всё больше и больше.

И ждали люди Слово, способное вместить в себя всю широту проникновения JavaScript, ибо слово «JavaScript», как оно есть, более не вмещало той широты. И изрёк Чарли Роббинс (Charlie Robbins) мысль, что термином «Isomorphic JavaScript» можно назвать JavaScript-код, выполняющийся и в браузере, и на сервере. И никто нафиг не понимал значения сего, но, вместо просто программирования на JavaScript, люди стали программировать на изоморфном JavaScript.

Секундочку, что?
Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments98

Создание простой MVC-системы на PHP 5

Reading time18 min
Views208K

Предисловие


В этом руководстве Вы узнаете, как построить простую систему по архитектуре MVC (Model-View-Controller, Модель-Отображение-Контроллер) на PHP 5.1 с использованием возможностей библиотеки SPL (Standard PHP Library, Стандартная Библиотека PHP).

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments116

HTML-страница на Canvas

Reading time12 min
Views29K
Canvas интересный и перспективный HTML5 элемент. Он хорошо подходит как вспомогательный элемент на HTML странице, например, для отрисовки какой-нибудь простой по сюжету динамической заставки. Однако реализация функционально законченных комплексных решений с ориентацией на Canvas задача уже не такая простая.

Image - html page on canvas

Цель статьи:
  • Рассмотреть механизм реализации на основе Canvas полноценной HTML страницы с поддержкой динамического контента, ссылок и элементов управления.
  • Понять, можно ли использовать этот механизм, и стоит ли овчинка выделки.
Читать дальше →
Total votes 17: ↑11 and ↓6+5
Comments13

Yboard — Движок доски объявлений на Yii

Reading time2 min
Views52K
imageПосле работы на ужасно неуклюжем и неприятном проекте посвященный объявлениям, задался вопросом какие существуют еще решения для такого рода проектов.

Из бесплатных как оказалось их не так уж и много, самым известным является наверное OsClass. Другое дело когда говорим о платных аналогах, тут большое разнообразие движков, функционалов и цен за них.
Читать дальше →
Total votes 16: ↑10 and ↓6+4
Comments37

Интересный и одновременно простой слайдер на чистом CSS3

Reading time5 min
Views301K
Я никому не открою Америку, не удивлю публику новым фокусом и не взорву мозг тем, кто в CSS3 плавает, как аквалангист. Расскажу простой способ, как создать слайдер с помощью простых функций CSS3 без необходимости использовния javascript.
Читать дальше →
Total votes 55: ↑50 and ↓5+45
Comments39

Как сделать прибыльной разработку дизайна сайтов (часть 5)

Reading time6 min
Views17K
image

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

image

Работа без простоев


Статья может показаться слишком простой бывалым и слишком сложной начинающим. Наберитесь терпения и дочитайте до конца. Как всегда, мы не разбираем, как и что рисовать. Наша задача — сделать работу, сделать ее в срок и уложиться в бюджет. Для 90% дизайнеров и веб-студий уложиться в бюджет — не что иное, как сделать работу в отведенное количество часов. При этом не важно, дизайнер у вас на почасовом окладе или на фиксированной з/п. Разработка — это «конвейер», нам нужно научиться работать без простоев. Вы сейчас подумаете: конвейер — это искусство, это дизайн, …. Нет — это деньги, как для вас, вашего руководителя, так и для клиента, который хочет заработать еще, и надеется, что ваш дизайн ему поможет.
Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments2

Простой парсинг сайтов с помощью SlimerJS

Reading time2 min
Views68K
В виду отсутствия хорошего материала по парсингу с помощью скриптового браузера SlimerJS и наличия свободного времени решил написать небольшую статью.


Читать дальше →
Total votes 47: ↑41 and ↓6+35
Comments15

5 практических примеров для изучения фреймворка React

Reading time10 min
Views252K
Перевод статьи «5 Practical Examples For Learning The React Framework», Martin Angelov

Вы вероятно слышали о популярном JavaScript фреймворке от Facebook – React. Он используется на многих популярных веб-сайтах, в том числе в Facebook и Instagram. В этой статье вы увидите 5 практических примеров, построенных при помощи React, которые помогут вам начать работать с этим фреймворком.
Читать дальше →
Total votes 20: ↑14 and ↓6+8
Comments46

Внедрение через URL: www.site.ru/?jn=xxxxxxxx

Reading time2 min
Views23K
Буквально на днях столкнулся с новым (*?) вариантом спам-вируса для веб-сайтов. Гугл определяет его как «Внедрение через URL».

Описание

На вашем сайте появляются ссылки которых не было и быть не могло — вы, например, четко знаете структуру сайта и оригинальный вид URL, который отличается от «левых» URL. В частности, в индексе поисковиков появляются ссылки вида:
www.site.ru/?jn=xxxxxxxx

Поиск и устранение

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

Вариант А: Код не обфусцирован

  1. Ищем в исходниках кто и как у нас пользует переменную $_GET['jn']
  2. Далее по коду смотрим кто где гадит (например: \js\swfupload\plugins\jquery\)

Вариант Б: Код обфусцирован

  1. Ищем каталог с файлами, названия которых идут после "?jn="
  2. Ищем подозрительные исполняемые файлы типа images/c0nfv.php
  3. Можно сделать поиск путей где могут быть файлы а-ля "/img/icon/thumb/jquery.php"
  4. Проверить дату изменения конфигов CMS
  5. Рекомендуется проверить на наличие (корректность) файлов base.php — это само тело вируса, код обфусцирован
  6. Проверяем дату jquery.php и сравниваем ее с датой обнаружения вируса по мониторингу инструментов вебмастеров Гугла.

Встречается

  • CMS: Joomla, WordPress, DLE, PrestaShop, HostCMS
  • Plugins: ImageZoomer, SWFupload, BlockCategories
  • Велика вероятность появления практически во всех плагинах, которые используют JQuery и в тех местах, где у админов ручки не дошли до настройки.

Полный код (необфусцированного) зловредного кода под катом.
Читать дальше →
Total votes 36: ↑19 and ↓17+2
Comments10

Sublime Text для фронтэнд-разработчика

Reading time5 min
Views214K


Sublime Text на данный момент является одним из самых популярных текстовых редакторов, используемых для веб-разработки, поэтому надо знать его преимущества и недостатки. Вместо того, чтобы шаг за шагом описать все фичи Sublime Text, эта статья познакомит вас с самыми популярными приёмами и полезными плагинами, позволяющими ускорить разработку.
Читать дальше →
Total votes 50: ↑36 and ↓14+22
Comments46

Выразительный JavaScript: Введение

Reading time9 min
Views466K


Перевод книги Marijn Haverbeke "Eloquent JavaScript". Лицензия Creative
Commons attribution-noncommercial license
. Код предоставляется под лицензией MIT.


Содержание



Читать дальше →
Total votes 54: ↑49 and ↓5+44
Comments14

Microsoft прекратит поддержку старых версий Internet Explorer к 2016 году

Reading time1 min
Views21K
image

Microsoft планирует заставить пользователей Windows перейти на последние версии Internet Explorer, пишет The Verge. Изменения вступят в силу 12 января 2016 года: пользователи Windows 7 и Windows 8 должны будут перейти на Internet Explorer 11, чтобы продолжить получать обновления.

Если версия Internet Explorer 12 или даже 13 выйдет до 12 января 2016-го и она будет поддерживать Windows 7 и Windows 8, то их пользователи должны будут перейти на последнюю версию. Изменения означают, что после 12 января 2016-го Internet Explorer 8 и 10 больше не будут поддерживаться на пользовательских версиях Windows.
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments25

Обновление HTML5 Web Designer от Google

Reading time1 min
Views36K


В сентябре прошлого года компания Google выпустила Web Designer — бесплатную программу под Windows, Mac и Linux, с помощью которой можно разрабатывать интерактивные HTML5-приложения, сайты и баннеры. С тех пор программа несколько раз обновлялась, но вчерашний апдейт является самым значительным.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments11

Несколько интересностей и полезностей для веб-разработчика #21

Reading time3 min
Views57K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Awesome Python


Автор этого огромного списка полезностей для питонистов также как и автор похожего репозитория для сисадминов из прошлой моей подборки был вдохновлен проектом Awesome PHP. Это просто отличная тенденция, которая не может не радовать.

Chart.js



Потрясающие интерактивные графики и диаграммы на HTML5 Canvas. Chart.js не зависит от сторонник библиотек, работает во всех современных браузерах и даже в IE7/8 с полифилом, адаптивный к мобильный устройствам, очень гибкий и модульный. Выглядит все на самом деле очень красиво, но признаюсь я не настолько детально изучил проект, чтобы сказать чем он лучше DC.js из моего 19 выпуска. Дело в том, что Chart за несколько дней собрал почти 10 000 звезд на GitHub.

Ну и для того, чтобы добить тему визуализации данных, оставлю ссылку на Amcharts. Проект не open-source, но вы можете пользоваться им бесплатно, если будете размещать логотип. Хочу обратить ваше внимание на то, что с этой библиотекой работают Microsoft, Amazon, IBM, Bank of America, NASA, P&G, PayPal и многие другие мировые корпорации.
Читать дальше →
Total votes 104: ↑100 and ↓4+96
Comments4

Руководство по basis.js. Часть 1: Начало работы, представления, модули, инструменты

Reading time22 min
Views26K

basis.js – JavaScript-фреймворк для разработки одностраничных веб-приложений, ориентированный на скорость и эффективность. Возможно он пока не такой популярный. Но благодаря моим выступлениям на различных конференциях и meetup'ах, некоторые уже слышали о нем и заинтересовались. Однако, чтобы начать использовать фреймворк или разбираться в нем, большинству не хватает руководства.

И вот, собрав волю в кулак (ну какой программист не любит писать документацию?), я сел писать руководство. Просто, доступно, последовательно.

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

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

Читать дальше →
Total votes 61: ↑61 and ↓0+61
Comments58

Как сделать собственный видео-плеер на HTML5 Video

Reading time9 min
Views186K
Ранее мы уже рассмотрели общие вопросы использования HTML5 Audio и Video и начали погружаться в детали, начав с задачи определения поддержки браузером нужного кодека. Сегодня мы рассмотрим задачу создания собственного видео-плеера на HTML5 Video.


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

<video src="trailer_480p.mp4" width="480" height="270" poster="poster.gif" controls />

Однако, как я отмечал в вводной статье, со стандартными контролами есть проблема, которая заключается как раз в том, что выглядят они нестандартно. Другими словами, в каждом браузере они выглядят по-своему (проверить, как выглядят контролы в разных браузерах, можно на примере Video Format Support на ietestdrive.com — просто откройте его в двух-трех различных браузерах).
Читать дальше →
Total votes 99: ↑84 and ↓15+69
Comments17

Образовательные и обучающие ресурсы для веб-разработчиков и веб-дизайнеров

Reading time15 min
Views143K
Данным постом мы открываем рубрику «Переводы» в нашем блоге. Почему мы решили открыть такую рубрику? Дело в том, что сотни специалистов, работающих в Mail.Ru Group, для решения стоящих перед ними задач ежедневно прочитывают множество интересных статей и постов на форумах. Некоторые из них кажутся нам интересными, и мы считаем своим долгом перевести их на русский и поделиться этими ценными знаниями с Хабражителями.

Пользуясь случаем, хотим сообщить новость: сегодня состоялось открытие Технопарка — нашего образовательного проекта, о котором мы уже не раз писали на Хабре (например, тут, тут и тут). Теперь у технопарковцев есть свое собственное помещение. Изначально Технопарк задуман как место, где талантливые студенты МГТУ им. Баумана могут получить дополнительное образование в сфере веб-разработки, дизайна и программирования, а также окунуться в работу над реальными проектами высокой сложности. В общем, у Технопарка сегодня знаменательный день, и поэтому первый выпуск в рубрике «Переводы» мы решили посвятить образовательным ресурсам для веб-разработчиков и веб-дизайнеров. Ведь пока такие Технопарки не распространились по всей стране, разработчикам зачастую приходится заниматься исключительно самообразованием.

Читать дальше →
Total votes 91: ↑83 and ↓8+75
Comments18

Делаем вебсокеты на PHP с нуля. Часть 2. IPC

Reading time5 min
Views39K
После написания моей предыдущей статьи Делаем вебсокеты на PHP с нуля я понял, что у сообщества есть некоторый интерес к поднятой мною теме.

В прошлой статье я обещал, что опишу:
  • запуск нескольких процессов для обработки соединений
  • межпроцессное взаимодействие
  • разделение процессов мастер-воркер
  • проксирование вебсокетов с помощью nginx
  • запуск из консоли
  • интеграция с вашим фреймворком на примере yii
  • демонстрация


И, как обычно, — получившийся код и ссылка на демонстрационный чат в конце статьи.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments15

Яндекс.Диск как файловая система

Reading time1 min
Views142K

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

Один из плюсов лично для меня, линуксоида — не нужно устанавливать дополнительные приложения, как в случае с DropBox'ом. Сервис можно подключить через файловый менеджер Nautilus, используя WebDAV. Что я, собственно, сразу же и сделал.

Однако, я не стал на этом ограничиваться, ведь гуёвый доступ — не совсем хорошо, консольки никто не отменял.

Подключим Яндекс.Диск как файловую систему
Total votes 118: ↑98 and ↓20+78
Comments181

Information

Rating
Does not participate
Location
Самара, Самарская обл., Россия
Date of birth
Registered
Activity

Specialization

Frontend Developer, Web Developer
Angular
TypeScript
JavaScript
HTML
CSS
Web development
Git