Как стать автором
Обновить
39
0
Евгений @Jenek

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

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

Всё (или почти всё) о пробеле

Время на прочтение13 мин
Количество просмотров136K
Как следует из заголовка, речь в статье пойдёт о неотъемлемой части любого русскоязычного (и не только) текста — о пробеле. Мы затронем историю пробела, виды пробелов, вопросы употребления пробела в веб-типографике.

Вообще говоря, пробел — это любое пустое место в рукописном, печатном или отображаемом на любом другом носителе тексте. Так что пробелы бывают разные:
  • спусковые (большие вертикальные пропуски в первой полосе издания) и концевые пробелы полосы,
  • абзацные отступы и концевые пробелы абзаца,
  • межстрочные пробелы (между строками текста),
  • межсловные пробелы (между словами в одной строке),
  • межбуквенные пробелы (между буквами в слове).
Далее речь пойдёт о межсловных пробелах, разделяющих слова, и функционально принадлежащих к знакам препинания.
Читать дальше →
Всего голосов 134: ↑130 и ↓4+126
Комментарии132

Страшные сказки про PHP5, рассказанные на ночь…

Время на прочтение3 мин
Количество просмотров2.7K
1) Какой бы ерундой вы не занимались с PHP, узкое место _всегда_ — БД. PHP — он как Буратино — тупОЙКАк… дрова. Lighttpd и Nginx позволяют разнести его по множеству физических серверов на раз без шума и пыли. Зарплата адекватного спеца по PHP в Москве — 30-45 тыс. рублей в месяц, стоимость аренды нормального сервера — от 3 тыс. рублей в месяц. А вы не знали ;)?

2) Какой бы ерундой вы не занимались — 30-60% производительности (возможно и больше) PHP-кода решит правильно выбранный и настроенный акселератор.

3) Серебряной пули нет. Не важно, какой концепт вы применяете — строгое ООП (в стиле Zend Framework), функции в стиле PHP4 (или ограниченное ООП) или вообще лапшу в стиле «PHP для чайников» — ни одна из этих парадигм не даст ощутимый прирост производительности, если конечно ваши программисты не выше как минимум на голову.
Читать дальше →
Всего голосов 182: ↑154 и ↓28+126
Комментарии287

Делаем свой webfile

Время на прочтение4 мин
Количество просмотров13K
Отчего-то всегда хотел сделать свой сервис для загрузки файлов. Всевозможные slil/zalil не устраивали своей скоростью. ifolder — обилием рекламы. Пользовался не очень популярным (от этого он ни чуть хуже не становился) сервисом up.spbland.ru. Но это как-то не правильно. И тут я решил написать свой сервис. Не буду вдаваться в подробности и рутину, только концепция.
Читать дальше →
Всего голосов 129: ↑127 и ↓2+125
Комментарии142

Фрагментарное кэширование в MVC веб-фреймворках

Время на прочтение4 мин
Количество просмотров2.8K
Наверняка большинство программистов, работающих с современными веб-фрейворками, реализующими схему MVC, сталкивалось с таким небольшим затруднением: кэширование фрагмента View.

Хорошие фреймворки предлагают инструменты для полного кэширования страниц, фрагментарного, или кэширования экшенов. Недавно я посмотрел 90 выпуск подкаста Railscasts, посвященный именно фрагментарному кэшированию в Ruby on Rails и уважаемый автор решал проблему, как мне показалось, неоптимально.

Опишу ситуацию.
Мы в шаблоне страницы и хотим закэшировать ее часть, например, список новых товаров. Пока все хорошо, мы пользуемся встроенными во фреймворк удобными средствами и в две-три строчки окружаем блок — ура, он кэшируется. Но — чу!, контроллер-то об этом ничего не знает и продолжает выполнять свою работу по подготовке данных для View. Естественно, ведь проверка наличия кэша осуществляется уже из шаблона, а контроллер к тому моменту отработал.
Читать дальше →
Всего голосов 27: ↑22 и ↓5+17
Комментарии66

sup рвёт тексты

Время на прочтение1 мин
Количество просмотров4.1K
Почти все сайты использующие тег SUP никак не инструктируют браузер как его отображать. А ведь отображение по-умолчанию откровенно хромает — тег этот рвёт тексты, высота строки где присутствует SUP увеличивается и в результате нам предстают хаотично разбросанные строки, а не параграф. Сложно даже быстро понять, является ли такое экстра-пространство разбивкой между строками, или между параграфами.


Два варианта superscript'а: «мой» и стандартный.

Самое интересное, что такое поведение можно легко исправить, достаточно добавить глобальный стиль навроде этого:
Читать дальше →
Всего голосов 70: ↑69 и ↓1+68
Комментарии90

Практический XSLT. Использование в качестве шаблонизатора

Время на прочтение10 мин
Количество просмотров54K
В сети доступно масса документации по языку XSL. Данный раздел не претендует на роль документации по языку, а лишь кратко, по шагам объясняет, как создать свой XSLT-шаблон.

Описанная ниже схема успешно мною используется уже более 3 лет. По началу я к XSLT относился с большой опаской (особенно, когда разбирал чужие исходники), однако однажды поняв, что к чему, уже не представляю, как без него можно работать.
Читать дальше →
Всего голосов 67: ↑61 и ↓6+55
Комментарии101

10 шагов к созданию сайта (для клиента)

Время на прочтение8 мин
Количество просмотров20K
Когда вы принимаете решение создать сайт, перед вами возникает ряд проблем, связанных обычно с вопросом — а что именно нужно делать, как и в каком порядке?

Если у вас уже есть функционирующий сайт, который вас чем-то не устраивает, можно считать, что вам повезло — у вас есть бесценный опыт, который можно проанализировать, оценить достоинства и недостатки старого сайта и сформулировать пожелания к новому. Если же вы заказываете сайт впервые, вам будет немного сложнее. Однако в любом случае лучше иметь под рукой определенный план действий, действуя по которому вы сможете получить действительно тот результат, который вам нужен.
Читать дальше →
Всего голосов 45: ↑39 и ↓6+33
Комментарии41

Очень длинные слова — что делать?

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

Суть проблемы


Возможность пользователя ввести оооочень длинное слово без пробелов, и тем самым «взорвать» layout — это старая проблема. Вот так она решается на Хабре.

Решать её можно несколькими способами
Всего голосов 72: ↑67 и ↓5+62
Комментарии80

Посоветуйте систему полнотекстового поиска

Время на прочтение1 мин
Количество просмотров3.7K
Гуглил, нашел много разных вариантов, но ни один не удовлетворял простым условиям:
— Легкость установки. Простота настройки (не более 4х часов с момента начала чтения документации).
— Поддержка русской морфологии. Как плюс — английской.
— Возможность индексации по Веб.
— Выдача результатов по релевантности. Хорошая ранжировка по релевантности

Risearch.org — хорошая, полная версия на Перле и платая. MnogoSearch — очень громоздкая в настройке, мне столько опций не нужно. В ряде других вариантов — простые стеммеры, либо вообще отсутсвие любой поддержки русского языка. Ладно, пусть будет даже стеммер, но у результатов должна быть высокая релевантность.
Всего голосов 9: ↑6 и ↓3+3
Комментарии20

Страны, регионы, города

Время на прочтение1 мин
Количество просмотров119K
Карта мира
Хочу поделиться базой стран, регионов и городов на русском языке. Возможно, кому-то пригодиться в своих проектах. В базе 106 стран, 922 региона и 10969 городов!

Если кто не понял о чем речь, то вспомните, например, как на ВКонтакте указывается город: выбирается страна -> подгружается список регионов -> выбирается регион -> подгружается список городов

Читать дальше →
Всего голосов 124: ↑122 и ↓2+120
Комментарии128

Глагол против существительного

Время на прочтение1 мин
Количество просмотров2.9K
А есть ли какие-нибудь общеизвестные доводы по поводу: существительные или глаголы использовать в интерфейсе — в меню и на кнопках? Мне вот что сейчас пришло в голову.

Кнопкам явно требуется глагол, потому что существительное — это некая констатация факта, дескать «вот эта штуковина и есть наш поиск» или даже «вон там — наш поиск». Существительное говорит мне «не всё готово, ещё рано, нажми на меня и только тогда ты попадёшь туда где сможешь действительно что-то изменить в этом мире», а глагол отражает незамедлительность и даже некоторую необратимость предстоящего действия (обычные свойства кнопок в наши дни.)

Меню требует скорее существительного. Хотя бы потому что так сделано во всех программах. Плюс, исходя из параграфа выше, существительное символизирует некоторую отложенность действия (а меню как раз такие.)

Но что делать со смешанными меню?

Продукты | Загрузить | Купить | Новости | Дилеры | О компании
Форумы | Поиск | Помощь | Войти | Зарегистрироваться

Имеют ли они право на сосуществование? У меня пок нет однозначного ответа — вроде и не особо кошерно что смешаны сущ. и гл., но и прямого вреда не вижу. А призыв «купить» даже, наверное, полезен с точки зрения психологии продаж, привносит действие (глагол) в мир статичных и скучных вещей.

Ёр мысли ар велкам! Апдейты в комментах
Всего голосов 43: ↑41 и ↓2+39
Комментарии50

Profiling PHP Applications With xdebug

Время на прочтение8 мин
Количество просмотров41K
Добро пожаловать в третью статью о xdebug. Уже сейчас вы должны были попробовать xdebug, если нет, сделайте это сегодня ;-).
В первой статье рассказывалось о том, как установить и настроить xdebug, описывались некоторые простейшие возможности, такие как улучшение вывода функции var_dump() или вывод трассировки стека вызовов при получении сообщения об ошибке. Во второй части мы рассмотрели такую возможность xdebug как трассировку. Трассировка содержит все вызовы функций и методов в программе, время запуска, опционально размер памяти, передаваемые и возвращаемые параметры. Лог трассировки может помочь вам понять пути выполнения сложной программы. Вместо того чтобы вставлять отладочный код внутрь программы, вы включаете или выключаете трассировку в тем места где нужно, а потом используете утилиты подобные grep или собственно написанные приложения на PHP для анализа лог файла.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии17

Звуковая капча

Время на прочтение3 мин
Количество просмотров4.2K
В свете последних событий нарыл такую штуку, решил поделиться с сообществом.
Оригинальная статья на английском, поэтому здесь — только вольный перевод.

Значит так. Что заиметь у себя одновременно и графическую, и звуковую капчу, нужно для начала всё это дело скачать. Потом скопировать себе в удобное место и читать дальше. Кстати, лицензия у этой радости — BSD. Кто понимает, тот выбирает =).

как всё это работает
Всего голосов 19: ↑19 и ↓0+19
Комментарии19

10 инструментов проверки контраста вашего дизайна для улучшения его „читабельности“

Время на прочтение4 мин
Количество просмотров37K
Вашему вниманию предлагается перевод статьи 10 colour contrast checking tools to improve the accessibility of your design от Roger Johansson. Перевод alexbig

10 инструментов проверки контраста вашего дизайна для улучшения его „читабельности“



В моей повседневной работе мы создаём графический дизайн для большинства сайтов наших клиентов, но не для всех. Некоторые из них сами или с помощью дизайн студий делают визуальный дизайн и оставляют переход на HTML + CSS + JavaScript и CMS для нас. Когда такое происходит, я практически всегда сталкиваюсь с проблемами недостаточного цветового контраста в дизайне. Иногда эти проблемы достаточно второстепенные и допустимые, но зачастую, есть области, которые необходимо скорректировать.

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

А вы ведь, не хотите этого, верно?
Всего голосов 9: ↑8 и ↓1+7
Комментарии23

Tracing PHP Applications with xdebug

Время на прочтение8 мин
Количество просмотров22K
Добро пожаловать во вторую серию нашего повествования про xdebug. Установка xdebug и его базовые возможности были рассмотрены в первой серии. В данной статье мы рассмотрим трассировку программы.
Предыдущая серия цикла Introducing xdebug
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии16

Интеграция Google Maps и WordPress 2.x

Время на прочтение2 мин
Количество просмотров5.5K
Эта статья является вольным писанием на тему плагина Google Maps for WordPress, находящейся по адресу http://avi.alkalay.net/2006/11/google-maps-plugin-for-wordpress.html. То, что посчитала нужным я добавила от себя, то, что не использовал — пропустила, так что это дело не является переводом в прямом смысле этого слова.

Иногда становится очень полезно и приятно интегрировать Google Maps в раздел «контакты» того сайта, который ты делаешь. Я перепробовала несколько различных плагинов для WordPress и просто классов/библиотек (like Solmetra Maps), но в конце-концов остановилась на плагине Google Maps for Wordpress. Очень содержательное название у плагина, кстати…
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии30

Высокопроизводительные AJAX-приложения

Время на прочтение1 мин
Количество просмотров730
Примечание: ниже перевод презентации «High Performance Ajax Applications», подготовленной ведущим специалистом из Yahoo (а теперь уже из Apple) Julien Lecomte. В ней автор освещает некоторые аспекты оптимизации как JavaScript-приложений, так и веб-сайтов вообще. В целом, советов много, и почти все, действительно, по делу. Однако, встречается и откровенная реклама Yahoo :) Мои комментарии далее курсивом.

Часть 1. Разработка для высокой производительности



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



  • Ориентируемся на производительность с самого первого дня
  • Тесно работаем с дизайнерами и менеджерами продукта
  • Понимаем рациональность дизайна
  • Объясняем компромиссы между дизайном и производительностью
  • Предлагаем альтернативы и показываем, что еще возможно (на уровне прототипа)
  • Пробуем силы в реализации нетривиального дизайна (нельзя сразу говорит «нет»)
  • Помогаем упростить дизайн и взаимодействие с пользователем (добиваемся компромисса)


читать дальше на webo.in →
Всего голосов 77: ↑73 и ↓4+69
Комментарии28

Introducing xdebug

Время на прочтение9 мин
Количество просмотров46K
Эта статья первая из серии статей, описывающих xdebug, свободной библиотеки для разработчиков PHP. xdebug – это расширение для PHP, написанное Derick Rethans, одним из разработчиков языка PHP. В данной статье описывается как установить xdebug и рассказывается о его базовых возможностях. В последующих частях мы детальнее взглянем на главные возможности xdebug, а именно трассировку, профайлинг, отладку кода.
Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии60

Борьба с DDOS и DOS на уровне nginx

Время на прочтение1 мин
Количество просмотров8.3K
FreeBSD, сетевая Intel fxp, порт 100Мбит, polling, http accept-filter
в sysctl:

sysctl kern.maxfiles=90000
sysctl kern.maxfilesperproc=80000
sysctl net.inet.tcp.blackhole=2
sysctl net.inet.udp.blackhole=1
sysctl kern.polling.burst_max=1000
sysctl kern.polling.each_burst=50
sysctl kern.ipc.somaxconn=32768
sysctl net.inet.tcp.msl=3000
sysctl net.inet.tcp.maxtcptw=40960
sysctl net.inet.tcp.nolocaltimewait=1
sysctl net.inet.ip.portrange.first=1024
sysctl net.inet.ip.portrange.last=65535
sysctl net.inet.ip.portrange.randomized=0

Читать дальше →
Всего голосов 48: ↑45 и ↓3+42
Комментарии42

Информация

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