Pull to refresh
4
0
Андрей Рачков @andreyr82

User

Send message

Контент для сайта: лучше заранее, чем никогда

Reading time6 min
Views11K
Многие студии говорят о том, что контент для сайта нужно прорабатывать еще до этапа разработки проекта, но еще большая часть игроков рынка не уделяет этому этапу никакого внимания. Почему? Наверное из-за того, что большинство разработчиков и их заказчиков не осознают реальных рисков.
Читать дальше →
Total votes 69: ↑67 and ↓2+65
Comments22

flotr2 — графики и диаграммы на HTML5

Reading time1 min
Views36K
flotr2 — это библиотека с открытым кодом для построения HTML5 графиков и диаграмм. Flotr2 — так как стала ответвлением от Flotr, но уже без привязки к Prototype JS и с множеством усовершенствований.


Читать дальше →
Total votes 85: ↑81 and ↓4+77
Comments26

Open Server — профессиональный инструмент веб-разработчика под Windows

Reading time3 min
Views280K
Хочу представить вам новый профессиональный инструмент для веб-разработки под Windows.

Open Server — это портативный локальный WAMP/WNMP сервер, имеющий многофункциональную управляющую программу и большой выбор подключаемых компонентов. Представленный пакет программ не является очередной любительской сборкой собранной «на коленке», это первый полноценный профессиональный инструмент, созданный специально для веб-разработчиков с учётом их рекомендаций и пожеланий.

Если вы всё еще используете Denwer, Xampp, Vertrigo и т.д. или предпочитаете устанавливать все компоненты сервера раздельно — добро пожаловать под кат.
Читать дальше →
Total votes 144: ↑131 and ↓13+118
Comments157

CSS3 с погружением

Reading time7 min
Views36K
CSS3 видели и пробовали все, кого он мог заинтересовать. И закругленные уголки и падающие тени мы уже можем генерировать без лишнего труда.

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

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

Браузеры, поддерживающие свойства перечислены в виде CSS комментариев. Генераторы и инструменты чаще всего могут выполнять сразу несколько функций, поэтому в таких случаях я указывал их только там, где они, по-моему, справляются лучше всего.
Читать дальше →
Total votes 118: ↑109 and ↓9+100
Comments30

Типы instance в amazon ec2

Reading time3 min
Views31K

В этой статье я расскажу о трех типах instances в Amazon с примерами подсчета стоимости и скринами с консоли и биллинга Amazon. Статья родилась в силу малого количества информации про amazon web services, в частности данных про экономию оплаты на reserved instances я не нашел в рунете. Много скринов для лучшего понимания, когда я начинал работать с amazon мне этого сильно не хватало.

Читать дальше →
Total votes 32: ↑25 and ↓7+18
Comments28

Балансировщик нагрузки для Amazon EC2 c автомасштабированием

Reading time9 min
Views9.7K
Многие знают, что Amazon предоставляет возможность автоматически наращивать мощность вашего пула (увеличивать количество виртуальных серверов) в зависимости от нагрузки. Однако я не сумел найти в русскоязычном сегменте сети толкового описания практической реализации такой схемы. Рискну представить на суд общественности итог моих штудий на данную тему.

Итак, вводные данные. Наш сервер, судя по кривой посещаемости, в скором времени начнёт испытывать весьма суровые нагрузки, особенно в пиковые моменты. Для эффективной обработки трафика, а также во избежание отказов в обслуживании было решено использовать механизмы, предоставляемые Amazon, позволяющие в реальном времени запускать необходимое количество серверов. При этом, когда нагрузка спадает, получившийся пул должен «сбавлять обороты», автоматически уменьшаясь в размерах, и тем самым уменьшать финансовые затраты на проект.

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

Не очень честная генерация DOC файлов на PHP

Reading time3 min
Views17K
У каждой задачи есть несколько вариантов решения. И иногда в угоду скорости приходится выбирать не самый красивый, зато работающий и выполняющий поставленные перед ним цели. Итак, в один не очень прекрасный день возникла необходимость реализовать следующую функцию: у каждой (почти) страницы сайта должны быть автоматически сгенерированные копии в форматах DOC и PDF. С сохранением всех таблиц и картинок внутри контента. И если с PDF всё относительно просто (tcpdf наш друг и брат), то с DOC'ом возникла морока. Под катом — пример решения данной задачи.
Читать дальше →
Total votes 51: ↑36 and ↓15+21
Comments43

Три подхода к методологии построения сложного клиентского приложения

Reading time6 min
Views10K
Наверно, не существует единого рецепта, который бы всех устроил. Это касается любой проблемы. Для разработчиков этот тезис самоочевиден, и вовлеченность в использование и проектирование отдельных инструментов определяется, главным образом, лишь профессионализмом. Изобретение велосипедов романтично и неизбежно.

Особо вероятно изобретение велосипеда, когда рост сложности приложения происходит постепенно и в некотором смысле незаметно. Сложное приложение обычно является богатым приложением (rich), его элементы и особенности специфицированы W3C www.w3.org/TR/backplane. Известный JavaScript-евангелист Addy Osmani так дополнительно определяет сложное приложение: “По-моему, крупное JavaScript приложение есть нетривиальное приложение, требующее значительных усилий разработчика для поддержки, причем наиболее сложное оперирование обработкой и отображением данных ложится на браузер” (http://addyosmani.com/largescalejavascript/).
Читать дальше →
Total votes 40: ↑34 and ↓6+28
Comments27

The Little Redis Book

Reading time1 min
Views5.4K


Вчера Karl Seguin – автор книги The Little MongoDB Book, которую часто рекомендуют для быстрого старта с MongoDB, опубликовал аналогичное руководство для Redis под названием The Little Redis Book (при участии Perry Neal). Книга состоит из 29 страниц, написанных за 2 коротких дня с использованием Markdown. Исходная разметка книги находится на GitHub. Сама книга распространяется свободно под лицензией Attribution-NonCommercial 3.0 Unported license.

Содержание книги
  • About This Book
  • Introduction
  • Chapter 1 — The Basics
  • Chapter 2 — The Data Structures
  • Chapter 3 — Leveraging Data Structures
  • Chapter 4 — Beyond The Data Structures
  • Chapter 5 — Administration
  • Conclusion
Скачать
The Little Redis Book (PDF)
Total votes 39: ↑39 and ↓0+39
Comments18

Что такое ITSM?

Reading time5 min
Views90K
Короткий ответ

ITSM – Information Technology Service Management

Чуть более длинный ответ

ITSM – это область знаний об управлении деятельностью по оказанию ИТ-услуг. Основных исходных посылок, принятых в ITSM, две: во-первых, услуга – это основная форма предоставления ценности, исходящей от ИТ, во-вторых, деятельность по оказанию ИТ-услуг лучше всего организовать как комплекс процессов с четко определенным целями, задачами, ролями и обязанностями.

ещё более полный ответ под катом
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments15

impress.js — презентации на CSS3, рвущие шаблон

Reading time4 min
Views18K
Даже хорошие презентации, не содержащие списков из двадцати пунктов восьмым кеглем и вызывающих рвотный рефлекс картинок из бесплатных сборников клипарта “встречи и партнёрство” или “офисная жизнь”, следуют давным-давно заданному стандарту, без изменений перенесённому в офисные пакеты из мира старинных диапроекторов. Презентация всегда представляет собой набор прямоугольных картинок одинакового формата и размера. Иногда между ними добавляют переходы и анимацию, раздражающую не меньше разноцветных надписей и бессмысленно улыбающихся абстрактных офисных работников. Стандартом де-факто для хорошей презентации давно стала последовательность статичных слайдов без всякого мельтешения, с очень коротким текстом крупным шрифтом и несколькими тщательно подобранными фотографиями или скриншотами.

Основанный на трансформациях и переходах CSS3, javascript-фреймворк для создания презентаций impress.js выходит за рамки понятия “слайд” и позволяет строить презентации в открытом, неограниченном трёхмерном пространстве. Источником вдохновения для него послужил сервис prezi.com. Репозиторий impress.js на Гитхабе появился меньше месяца назад, но уже стал одним из самых популярных. Нетерпеливые могут посмотреть небольшую демку здесь, а остальные — создать пример необычной презентации прямо сейчас.
Читать дальше →
Total votes 101: ↑96 and ↓5+91
Comments46

Хостинг mercurial репозиториев с помощью nginx, gunicorn и supervisor

Reading time5 min
Views4K
imageСпособов хостинга mercurial репозиториев достаточно, но я сочинил именно такой вариант по следующим причинам:
  1. nginx: мало кушает, быстро работает — скорость
  2. supervisor: мониторит процесс, перезапускает если что — надёжность
  3. gunicorn: wsgi, большие возможности по настройке — эффективность
Кроме того, т.к. я разрабатываю на django, и сайты запускаю под этой же связкой, есть и четвёртая причина — унификация, а она очень полезная вещь.

Если вас заинтересовала тема, то конкретные инструкции и конфиги — под катом.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments18

Демотивация по полной программе или почему я жду конца света?

Reading time6 min
Views17K
Низкий поклон Хабранароду!

Предисловие

Много мы все начитались и даже дочитались статьей о том, как улучшить работоспособность, эффективность и другую, простите — фигню.

Пост НЕ для тех у кого все хорошо, по крайней мере, кажется что все хорошо, е.г. праведным – не читать.
Пост можно было бы назвать еще и «реальные рекомендации по «возьми себя в руки, наконец» ».
Не верьте тем, кто пишет об эффективности, «самое время начать учиться играть на гитаре», «найдите в себе энергию делать то, другое...», это все «фигня», через пару дней все опять будет как прежде. Постарайтесь найти решение сами.
«Пункты» приведены случайным порядком, и хватит введения, просто прочтите пост, попытайтесь найти что-то себе полезное (вы обязательно найдете).
Читать дальше →
Total votes 342: ↑283 and ↓59+224
Comments144

Простая минималистская реализация сложных JavaScript приложений

Reading time12 min
Views8.7K
Я хочу описать простой минималистский подход к разработке сложных JavaScript приложений. Из внешних библиотек будут использоваться только jQuery и мой js-шаблонизатор, причём из jQuery используются только $.ready(), $.ajax() и $.proxy() — т.е. суть не в библиотеках (их тривиально заменить на предпочитаемые вами), а в самом подходе.

В основе подхода лежат две идеи:
  1. JavaScript виджеты — небольшие модули, каждый из которых «владеет» определённой частью веб-странички (т.е. всё управление этой частью странички происходит исключительно через методы этого модуля, а не через прямую модификацию DOM — инкапсуляция). Виджет отвечает исключительно за функциональность, но не за внешний вид; поэтому прямая модификация части DOM, которым «владеет» виджет, снаружи виджета допускается — но только для чисто дизайнерских задач (для архитектуры и общей сложности приложения нет принципиальной разницы между коррекцией внешнего вида через CSS или jQuery).
  2. Глобальный диспетчер событий. Взаимодействие между виджетами осуществляется путём посылки сообщений глобальному диспетчеру (слабая связанность, паттерн Mediator/Посредник), а уже он принимает решение что с этим сообщением делать — создать/удалить виджеты, дёрнуть методы других виджетов, выполнить дизайнерский код, etc. В отличие от динамического подхода к обработке событий (когда обработчики конкретного события добавляются/удаляются в процессе работы) статический диспетчер сильно упрощает понимание и отладку кода. Безусловно, есть задачи, для которых нужны именно динамические обработчики событий, но в большинстве случаев это избыточное усложнение, поэтому всё, что можно, делается статическими обработчиками.

Читать дальше →
Total votes 63: ↑58 and ↓5+53
Comments42

Параллельная загрузка JavaScript и CSS без блокирования парсинга страницы

Reading time5 min
Views67K
Известно, что следуя идеям старой школы, а именно, добавляя ссылки на JS и CSS в страницы, может обернуться большим временем загрузки страницы. Браузер отображает страницу по мере скачивания, но останавливается, если натыкается на тег script со ссылкой, до того момента, пока скрипт не будет загружен и выполнен. Сайты стали использовать всё большее количество скриптов, начальное отображение страницы занимает всё больше времени, к примеру, на этой странице, которую вы читаете, 13 скриптов, 7 из которых находятся в head'е. Ко всему прочему, некоторые браузеры по-прежнему придерживаются ограничений на одновременное количество загрузок с одного хоста.

Сразу предлагаю принять, что все JS файлы минимизированы, и передаются в сжатом виде.

Существует несколько решений, как то:
— поместить стили и скрипты прямо в страницу;
— установка аттрибутов async/defer тегу script;
— склеить все скрипты в один файл;
— помесить ссылки на скрипты в конец body;
— разместить все файлы на CDN/на разных хостах;
— свой вариант…

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

Началось всё, конечно, с того, что я взялся за один проект, и в какой-то момент мне показалось, что простенькая страница достаточно долго загружается, и посмотрел на график загрузки, и на результаты YSlow. Огонь на секунду потух в моих глазах, но зная, что может быть лучше, я полез искать,
как сделать лучше.
Total votes 94: ↑89 and ↓5+84
Comments49

Заказчик и фрилансер. Взаимодействие. Ч. 2

Reading time4 min
Views6.3K
В первой части я постарался дать понимание относительно того, как выбрать заказчика/исполнителя для проекта. Естественно, в одной статье нет возможности перечислить все, с чем приходится сталкиваться, но основы я постарался описать.

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

Ну, от слов к делу

Читать дальше →
Total votes 40: ↑32 and ↓8+24
Comments18

Сон и продуктивная деятельность

Reading time8 min
Views106K

Вступление


Доброго времени суток, %habrauser%! Думаю, в этой статье я не открыл ничего нового. Просто меня самого заинтересовала тема продуктивного сна. Несколько последних лет я был приверженцем мнения, что сон – это бесполезная трата времени, к сожалению необходимая организму. И посему, я максимально старался сократить время сна. Но чем больше я это делал, тем больше я начинал походить на зомби. И тогда я стал искать альтернативу. И результатом обобщения всей найденной мной информацией и стала эта статья. Итак, поехали!
Читать дальше →
Total votes 243: ↑215 and ↓28+187
Comments149

Backend в проекте на Yii

Reading time4 min
Views13K
В сети очень мало информации по созданию административных страничек в приложениях и наверно каждый использует свои решения. Именно сейчас хотел бы рассказать к чему я дошел за пол года разработки сайтов на Yii (статья только для тех, кто разбирается во фремворке).
Читать дальше →
Total votes 42: ↑35 and ↓7+28
Comments10

Шардинг MySQL на Yii Framework

Reading time6 min
Views21K
Начну с того, что наш проект находится на начальной стадии развития, а его запуск планируется на 1е ноября. И, чтобы сразу отсечь всю возможную критику касаемо преждевременной оптимизации, скажу, что перед командой была поставлена задача разработать приложение, справляющееся с резкими скачками нагрузки (от 1000 до 50000 и т. п.). В связи с этим было решено закладывать хорошо масштабируемую архитектуру, позволяющую легко и быстро увеличивать производительность системы за счет аппаратной части (по принципу scale-out).

Что мы для этого сделали...
Total votes 56: ↑53 and ↓3+50
Comments35

Визуализация данных в вебе: диаграммы Ганта

Reading time1 min
Views22K
В связи с недавней серией постов на тему визуализации данных в вебе меня попросили посоветовать библиотеки для рисования диаграмм Ганта, что с удовольствием и делаю.

Диаграмма Ганта (англ. Gantt chart, также ленточная диаграмма, график Ганта) — это популярный тип столбчатых диаграмм, который используется для иллюстрации плана, графика работ по какому-либо проекту. Является одним из методов планирования проектов.

Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments38
12 ...
8

Information

Rating
6,040-th
Location
Рыбинск, Ярославская обл., Россия
Date of birth
Registered
Activity

Specialization

Frontend Developer
Lead
From 300 ₽
JavaScript
React
TypeScript
Vue.js
Redux
Webpack
HTML
CSS
Web development