Pull to refresh
0
0
Олег @hoglet

User

Send message

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

Reading time7 min
Views18K
В предыдущей статье мы разобрали основные аспекты построения шаблона с помощью XSLT. Однако, для полноценного шаблона нужно не только выводить меню сайта, но также и текстовый материал документа.
Читать дальше →

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

Reading time10 min
Views57K
В сети доступно масса документации по языку XSL. Данный раздел не претендует на роль документации по языку, а лишь кратко, по шагам объясняет, как создать свой XSLT-шаблон.

Описанная ниже схема успешно мною используется уже более 3 лет. По началу я к XSLT относился с большой опаской (особенно, когда разбирал чужие исходники), однако однажды поняв, что к чему, уже не представляю, как без него можно работать.
Читать дальше →

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

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

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

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

Собеседования на должность PHP разработчика

Reading time3 min
Views71K

Довольно часто (постоянно) мне приходиться проводить собеседование людей желающих устроитсья в мой отдел на должность «junior PHP developer» и «PHP developer». И, с завидным постоянством, я и team-lead отдела задаем одни и те же вопросы…
Читать дальше →

PHP Performance Series: Caching Techniques

Reading time6 min
Views11K
Кеширование промежуточного кода (Opcode Caching)
Кэширование кода это один из самых легких и эффективных путей увеличения производительности в PHP. Использовании данного вида кэширования позволит избавиться от большого количества неэффективностей, возникающих при процессе запуска выполнения кода. Кэширование кода сохраняет промежуточный код в памяти для того чтобы не компилировать PHP-код каждый раз при запуске файла.
Читать дальше →

Generating PDF files with PHP and FPDF

Reading time5 min
Views117K
Большинство web-сервисов экспортируют данные в разных форматах для дальнейшего использования. Данная статья о том, как экспортировать данные в pdf-формате.
Хотя многие знают как это делать, я опишу кратко для тех кто не знает.
Читать дальше →

Оптимизация работы с MySQL

Reading time3 min
Views79K
Ни для кого не секрет, что работа с базой данных занимает большую часть работы практически любого сайта. И именно работа с БД чаще всего является узким местом веб-приложений.
В этой статье хотелось бы дать практические советы использования MySQL.
Сразу оговорюсь:
  • данная статья написана про MySQL, хотя общие вещи скорее всего справедливы для любой СУБД.
  • все написанное в статье является моей личной точкой зрения, и не является истиной в последней инстанции.
  • советы не претендуют на новизну и являются результатом обобщения прочтенной литературы и личного опыта.
  • в рамках данной статьи я не буду касаться вопросов конфигурирования MySQL.

Проблемы при использовании MySQL можно разделить на следующие три группы(в порядке значимости):
  1. Неиспользование или неправильное использование индексов.
  2. Неправильная структура БД.
  3. Неправильные \ неоптимальные SQL запросы.

Остановимся на каждой из этих групп подробнее.
Читать дальше →

Задачи на собеседовании — от простого к сложному.

Reading time2 min
Views27K
Да, это крик души. Потому что в среднем за неделю я собеседую несколько, которые претендуют на должность php-программиста.

Крик души, собственно в следующем:
из, предположим, 10 человек простейшие тесты сдают максимум двое (один — наполовину или на две трети). Вот такая простая статистика.

Может быть, я задаю слишком сложные вопросы ( несколько видоизмененные вопросы под катом )?

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

Может быть, кто-то поделится своими задачами, или в комментариях каким-то образом родится что-то удивительно-простое, но позволяющее понять уровень человека?

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

text-overflow в Firefox и все, все, все

Reading time9 min
Views15K
Многие наверняка сталкивались с проблемой, когда какой-нибудь текст нужно выводить в одну строку. При этом текст может быть весьма длинным, а ширина блока, в котором этот текст находится, обычно ограничена, хотя бы тем же размером окна браузера. На эти случаи придумано свойство text-overflow, которое внесено в рекомендацию CSS3, а впервые было реализовано в IE6, очень давно. В случае использования этого свойства для блока, если его текст больше по ширине чем сам блок, то текст обрезается и в конце ставится многоточие. Хотя тут не все так просто, но вернемся к этому чуть позже.
С Internet Explorer'ом все понятно, что же относительно других браузеров? И хотя в настоящий момент из спецификации CSS3 свойство text-overflow исключено, Safari его поддерживает (по крайней мере, в 3-й версии), Opera тоже (с 9-й версии, правда называется свойство -o-overflow-text). А Firefox — нет, не поддерживает, и даже в 3-й версии не будет. Печально, но факт. Но может можно что-то сделать?

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

Оптимизируем «тяжелые» JavaScript-вычисления

Reading time1 min
Views2.1K
Примечание: ниже приведен перевод заметки из блога разработчика YUI-утилит Julien Lecomte «Running CPU Intensive JavaScript Computations in a Web Browser», в которой автор рассматривает выполнение «тяжелых» вычислений в веб-браузере и приводят ряд методов для их «оптимизации». Мои комментарии даны курсивом.

Введение



Шаблон, который я хочу ниже обсудить, хорошо известен и используется уже более 10 лет. Целью данной заметки является представить этот шаблон в новом свете и, что более важно, обсудить возможные пути для уменьшения накладных расходов.

Наиболее существенным препятствием для выполнения в веб-браузере «тяжелых» вычислений является тот факт, что весь интерфейс пользователя в браузере останавливается и ждет окончания исполнения JavaScript-кода. Это означает, что ни при каких условиях нельзя допускать того, чтобы для завершения работы скрипта требовалось более 300 мс (а лучше, если горадо меньше). Нарушение этого правила неминуемо ведет к плохому восприятию ресурса пользователем (bad user experience).

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

читать дальше на webo.in →

И снова о speed performance вашего сайта

Reading time3 min
Views2K
Уф… наконец-то я решился написать свой первый пост.

В этом посте я хочу рассказать вам о некоторых простых, и в тоже время эффективных способах ускорения загрузки вашего сайта.
Все методы основаны на LAMP + nginx + drupal, но я уверен что всё это верно и для остального тоже.
Разговор пойдёт о первой загрузке сайта, то есть когда у клиента нет ещё кеша в браузере.
Читать дальше →

Устранение мигания фоновых картинок в IE6

Reading time1 min
Views1.4K
Часто, на этапе тестирования сайта в разных браузерах, приходилось сталкиваться с неприятным эффектом «мигания» фоновых изображений в IE6, которое проявляется при наведении курсора на ссылку, являющуюся блочным элементом. Мигание происходит из-за того, что браузер производит перезагрузку всех фоновых картинок с сервера.

Для устранения мигания нужно подключить к веб-странице небольшой код на JavaScript:
var m = document.uniqueID
&& document.compatMode
&& !window.XMLHttpRequest
&& document.execCommand;

try{
     if(!!m)
      {
         m("BackgroundImageCache", false, true)
      }
   }
   catch(oh){};

Про резиновую верстку

Reading time1 min
Views29K
Навеяно этим.

Для тех, кто, возможно, не знает как сделать так, чтоб всё было хорошо.
Сайт должен тянуться только до определённой величины, и сужаться тоже только до некоторого значения. Я обычно беру 1500 и 980 пикселей соответственно.

Как сделать? min-width и min-height.

#site {
  margin: 0 auto; /*это чтоб центрировать контент при превышении max-width*/
  min-width: 980px;
  max-width: 1500px;
}


Но ведь IE их не поодерживает. А expression слишком нагружает браузер… Спокойно, други! Я выведу вас к свету из тьмы!
Пишем далее.



А в ie.js помещаем

window.attachEvent('onload', mkwidth);
window.attachEvent('onresize', mkwidth);

var minwidth = document.getElementById("site").currentStyle['min-width'].replace('px', '');
var maxwidth = document.getElementById("site").currentStyle['max-width'].replace('px', '');
function mkwidth(){
    document.getElementById("site").style.width = document.documentElement.clientWidth < minwidth ? minwidth+"px" : (document.documentElement.clientWidth > maxwidth ? maxwidth+"px" : "100%");
};


В чём особенная вкусность приведённого метода? А в том, что минимальное и максимальное значение нужно задавать только в одном месте, ну и вообще.

Пользуйтесь, короче, на здоровье!

Ленивым линуксоидам-(к)убунтоводам посвящается

Reading time5 min
Views2.4K
Итак, дамы и господа, представляю вам небольшой обзор программ, нужных для свежеустановленной Kubuntu.
Я очень ленив, поэтому я использую GNU/Linux, а не Windows.
Предупреждаю, что методы установки софта могут быть неэкономны с точки зрения расхода траффика.
Все, предлагаемое вашему вниманию, мной проверено, но я не несу никакой ответственности за проблемы, которые могут возникнуть после вызова сатаны выполнения команд.
И добавлю, что это — возможно — даже не unix-way!
Ну что же —
поехали

Information

Rating
Does not participate
Location
Красноярский край, Россия
Date of birth
Registered
Activity