Pull to refresh
137
0
Дмитрий Беляев @CuamckuyKot

веб-разработчик

Send message

Ускоряем Drupal: Pressflow + Nginx + Varnish

Reading time7 min
Views21K
Данная статья достаточно подробно показывает, как можно перейти на разработку сайтов Друпал с серьезной стрессоустойчивостью и возможностью обрабатывать большой трафик.

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

Довольно долго для разработки я использовал связку Drupal + Nginx с настройками сервера по умолчанию:

server {
listen 62.xxx.xx.xx:80;
server_name mysite.com www.mysite.com;
rewrite>^(/manager/.*)$>https://$host$1>permanent;
location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass 62.xxx.xx.xx:8080;
proxy_redirect mysite.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass mysite.com:8080;
proxy_redirect mysite.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /home/pathto/drupal613;
access_log /home/httpd-logs/mysite.com.access.log;
error_page 404 = @fallback;
}
location @fallback {
proxy_pass 62.xxx.xx.xx:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}


Читать дальше →

Objective-C с нуля

Reading time23 min
Views442K
У любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
Читать дальше →

Как использовать свой тип контента

Reading time8 min
Views14K
ПортфолиоВ Wordpress есть два типа контента: Посты и Страницы.
Эти типы содержат такие поля как название, описание, категории/тэги.
Дополнительное описание можно создать с помощью Пользовательских Полей (Custom Fields).

В Wordpress 3.0 появилась возможность создавать свой тип контента.

Идея в том, чтоб создать новый тип контента, например Потфолио (название, описание, адрес сайта, дата релиза, имя заказчика, используемые технологии), который бы не выводился вместе с постами и имел бы другое представление.
Wordpress
Далее следует техническое руководство и много кода

Вёрстка c «Ушами»

Reading time2 min
Views9.3K
Очень часто фантазия человека, разрабатывающего макет сайта, не ограничивается шириной 1024px, при этом требуется, чтобы сайт выглядел достойно на всех разрешениях и соответствовал полёту мысли дизайнера.

Проблему можно представить графически так:
image

Задача вёрстки заключается в следующем:
  • — независимо от разрешения (размера она браузера), информативная часть сайта находилась посередине;
  • — справа и слева должны остаться графические блоки (уши), причём эти уши должны быть видны только при увеличенном размере экрана браузера, а при уменьшенном не уместившаяся часть должна прятаться (в идеале, чтобы ещё горизонтальной полосы прокрутки не было);;
  • — страница должна быть резиновой от 680px до 1000px.

Работает для FF3, FF4, IE8 и почти для Opera.
Читать дальше →

Nano: И всё-таки его придётся выучить [1]

Reading time2 min
Views115K
            Речь идёт о текстовом редакторе nano в Linux.
Я не люблю nano и предпочитаю vim. Однако, в отсутствии vim, выбирая между vi и nano, я всё-таки предпочту nano, ибо как говорится в старой поговорке, «у vi есть два режима: бибикать и всё портить».

Кроме того, идёт активная замена vi на nano во многих дистрибутивах. Например, в новых версиях Debian и Ubuntu по-умолчанию vi устанавливается в самом куцем виде. А главное, его больше нет в busybox install/initrd этих ОС, что однозначно заставляет задуматься об изучении nano, не из любви к нему, а по необходимости.

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

Nano не имеет «режима команд» как vim, и этим похож на oldschool-редакторы из консоли DOS/Windows (NC, Far Manager, DN, hiew/biew, внезапно втесавшегося в список mcedit и т.д.). Все команды отдаются нажатием комбинаций клавиш — функциональными кнопками или комбинацией Ctrl-буква, Alt-буква.

Важное отличие от 'generic editor' — это поддержка эмуляции Ctrl'а и Alt'а.

Читать дальше →

Слушаем клиентов. Развитие сервиса “Рубашка на заказ” (продолжение)

Reading time4 min
Views1K
image

Год назад я писал про сервис “Рубашка на заказ”. На его примере я наблюдаю за процессом развития стартапа в сфере услуг. Кейс очень интересный: “куда двигаться, какие проблемы возникают, какие возможности внедрять, где черпать вдохновение”. Информацию я получаю прямо от руководства компании, так как эти люди являются давними клиентами нашей студии.
Итак, начну с изменений.
Читать дальше →

Реализация паттерна Observer средствами PHP 5.3

Reading time3 min
Views11K
Прочитав недавно нововведения PHP 5.3, я обратил внимание на несколько интересных особенностей, скомпоновав которые можно получить реализацию шаблона проектирования Observer, гораздо красивее, чем имеющиеся в pear и symfony, причём вся реализация займёт всего несколько строк кода.
Читать дальше →

Reformal.ru: новый дизайн, категории отзывов и API

Reading time1 min
Views1.3K
Команда Reformal.ru рада сообщить о выходе новой версии, в которую мы добавили:

— разделение отзывов посетителей на категории;
— дополнительные варианты дизайна виджетов;
— возможность интеграции проектов системы Реформал.Ру с Вашими собственными виджетами (API).

А теперь обо всём подробнее и по порядку.
Читать дальше →

История развития и оптимизаций одного высоконагруженного ресурса

Reading time5 min
Views14K


Введение

Все началось с того, что я стал системным администратором у одного провинциального Интернет-провайдера. Помимо администрирования различного рода ресурсов, мне в присмотр достался один молодой, но бурно развивающийся ресурс. Ресурс представлял из себя классический LAMP проект. Сайт, на котором генераторами контента являлись обычные пользователи.
* К слову, в то время я ничего не понимал в *nix системах, хоть и все сервера которые мне достались, были именно на нем, разбирался я во всем этом достаточно быстро.

Как обычно бывает с ресурсами, набирающими популярность, железки на которых все крутится, перестают справляться. Ресурс стоял на стареньком двухпроцессорном сервере, на котором крутились практически все сервисы для пользователей. В то время начальство не воспринимало ресурс как нечто стоящее вложений, поэтому, к моему сожалению (а позже – счастью), денег под новую железку мне не выделяли.
Читать дальше →

Друпалогии 1 год!

Reading time2 min
Views566


В прошлом году, 26 сентября (в день рождения разработчика), был запущен проект «Drupalogy.ru — выставка сайтов, сделанных на Drupal», на котором владельцы, создатели сайтов могли разместить свои работы, а пользователи — их оценить и добавить своё мнение.
Немного истории

Вышла Rework в русском переводе

Reading time2 min
Views12K
На этой неделе книга уже появилась на полках многих интернет-магазинов.
Не так давно обсуждалась на Хабре публикация английского оригинала и вот наконец-то можно оценить и переведенную версию. Я пока просмотрел лишь доступные в сети отрывки, но судя по другим публикациям издательства, они делают свое дело на хорошем уровне.
image

Поехал за книгой в магазин. А пока некоторые отрывки из книги и комментарии:
Читать дальше →

База изображений в любых форматах и разрешениях

Reading time3 min
Views4.5K
заказчик: Пусть аватарки пользователей у нас будут в 50×50 и 100×100, в JPEG
разработчик: Готово

заказчик: Надо переделать, чтобы аватарки были в PNG
разработчик: Сделал

заказчик: Пусть аватарки будут в GIF, 25×25 и 40×40
разработчик: Ага, проверяй
заказчик: Уже? Как ты это так быстро делаешь???
разработчик: …
Читать дальше

Авторизация по SSH с использованием ключей в условиях шифрования домашней директории

Reading time1 min
Views5.4K
Хрестоматийный вариант настройки авторизации по SSH с использованием ключей знают все: открытый ключ записывается в ~/.ssh/authorized_keys. В случае, если применяется шифрование домашней папки, то система не сможет прочесть данный файл. Следовательно, необходимо разместить эти данные за пределами зашифрованной домашней папки.
Читать дальше →

Начинаем работать с Drupal: полное практическое руководство (часть 2)

Reading time6 min
Views33K
Продолжение первой части.

Создадим страницу вакансий с помощью модуля Views

Хотя вы и можете самостоятельно писать запросы к базе данных для чтения содержимого, дело это долгое и сложное, даже с учетом мощного API Друпала.
Для построения страницы со списком вакансий мы задействуем Views — модуль, позволяющий извлекать содержимое из базы данных вообще без написания кода.
Попросту говоря, Views — это пользовательский интерфейс построения MySQL-запросов. Views — это невероятно мощный модуль, но порой его бывает трудно освоить начинающим пользователям. Лучший способ разобраться с Views — немного с ним поиграть, чем мы сейчас и займемся.
Читать дальше →

HTML5 для веб-дизайнеров. Часть 1: Краткая история языка разметки

Reading time7 min
Views13K
HTML5 для веб-дизайнеров

  1. Краткая история языка разметки
  2. Модель HTML5
  3. Мультимедиа
  4. Формы 2.0
  5. Семантика
  6. HTML5 и современные условия


HTML — язык, объединяющий всемирную сеть. Всего лишь посредством набора простых тегов, человечеству удалось создать несравнимую ни с чем по своим масштабам систему связанных между собой страниц и веб-узлов: от Amazon, eBay и Википедии, до личных блогов и сайтов, посвященных котам, похожим на Гитлера.

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

Как и всемирная сеть вообще, HTML — язык разметки гипертекста (HyperText Mark-up Language) — является детищем сэра Тима Берненс-Ли (Sir Tim Berners-Lee). В 1991 году он написал работу, озаглавленную «HTML Tags», в которой описал чуть меньше двух дюжин тегов, предложенных им для разметки веб-страниц.

Идея использовать для этого кодовые слова внутри треугольных скобок, впрочем, не принадлежит сэру Тиму. Такая система на тот момент уже существовала и использовалась в SGML (Standard Generalised Markup Language, стандартный обобщённый язык разметки), и вместо того, чтобы изобретать что-то с нуля, сэр Тим посчитал более рациональным взять за основу уже существующие решения. Аналогичный подход применялся и вообще на всем пути к HTML5 в процессах разработки.

Читать дальше →

Вы разработчик? Так почему вы до сих пор на кого-то работаете?

Reading time8 min
Views11K
Как разработчик, вы сидите на золотой жиле. Вы осознаете это?

Нет, серьезно, на @#$% золотой жиле! Никогда в истории не существовало возможностей так легко создать что-то с нуля, с маленьким или отсутствующим начальным капиталом и маркетинговой моделью, ограниченной только вашим воображением.

Подумайте о крупнейших сайтах, которые вы постоянно посещаете: Facebook, Twitter, Flickr, Foursquare, или даже Google — все они были созданы разработчиками, у которых была лишь идея. Было ли это легко? Черт, нет. Но это могло быть сделано только в наше время. Так, черт побери, почему вы просиживаете день за днем, работая на кого-то?
Читать дальше →

Открытие блога компании PocketBook

Reading time1 min
Views14K
Приветствуем всех читателей и пользователей Хабрахабра!
Сегодня на Хабрахабре мы открываем официальный блог компании PocketBook. Блог предназначен для общения с сообществом, обсуждения ваших и наших идей, а также публикации интересных новостей.
Сразу расскажу немного о компании PocketBook:
Основной сферой нашей деятельности является производство устройств для чтения электронных книг. Представительства компании находятся в Украине, России, Германии и США, а дистрибьютерская сеть существует уже в 24 странах мира. Компания PocketBook основана в 2007 году. На данный момент в нашей линейке четыре модели электронных книг: Pocketbook 301, Pocketbook 301+, Pocketbook 360 и Pocketbook 302.
imageimageimage

В ближайшем будущем мы будем выпускать новые модели(фотки под катом)
Читать дальше →

Мастер-классы по профессиональному Javascript, AJAX/COMET, jQuery

Reading time1 min
Views2.9K
Приглашаю уважаемых разработчиков к участию в мастер-классах по профессиональному Javascript-программированию, AJAX/COMET, оптимизации, jQuery.

Они пройдут — в Ярославле (24-25 сентября), Новосибирске (3-4 октября), Казани (9-10 октября), Минске(16-17 октября), Днепропетровске (23-24 октября), Одессе (30-31 октября) и Самаре (13-14 ноября).
Читать дальше →

6 способов убить Ваши сервера — познаем масштабируемость трудным путем

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

Несколько лет назад ко мне пришел мой босс и сказал: «У нас есть новый проект для тебя. Это перенос сайта, который уже имеет 1 миллион посетителей в месяц. Тебенеобходимо его перенести и убедиться, что посещаемость может вырасти в будущем без всяких проблем.» Я уже был опытным программистом, но не имел никакого опыта в области масштабируемости. И мне пришлось познавать масштабируемость трудным путем.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург и область, Россия
Date of birth
Registered
Activity