Pull to refresh
23
0
Билык Андрей @YAAP

User

Send message

По следам статьи «Сборник советов и фактов по оптимизации PHP-скриптов»

Reading time2 min
Views2.7K
Вчера, прочитав пост "Сборник советов и фактов по оптимизации PHP-скриптов", побывал в недоумении от некоторых пунктов статьи. Очень часто по работе приходится сталкиваться с крупными проектами. Последние 5 лет я работал с высокими нагрузками и получил, как мне кажется, хороший опыт их разработки и поддержки. Не хочу начинать холивары и в деталях расписывать все тонкости оптимизации проектов. Я лишь хочу высказать свою точку зрения на некоторые озвученные в статье пункты и, если Хабрапользователь меня поддержит, с огромным удовольствием эта статья будет началом цикла статей по оптимизации.

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

Читать дальше →
Total votes 152: ↑131 and ↓21+110
Comments116

Программирование в PHP для командной строки

Reading time9 min
Views42K
Предисловие

Ubuntu предоставляет в комплекте с пакетом apache2 утилиты для включения\выключения виртуальных хостов и модулей. Однако, создание конфигов для виртуальных хостов отнимают дополнительное время. Поэтому, мне захотелось исправить этот недостаток. Можно было, конечно, сделать автоматические поддомены для апача, но я решил написать скрипт, который создает файлы конфигурации виртуальных хостов для апача, а так же, при необходимости, добавляет имя хоста в файл /etc/hosts. Я не очень хорошо пишу скрипты в bash'e, поэтому решил использовать PHP для моей довольно простой задачи, который я, к тому же, знаю довольно неплохо.
Итак, в этой статье мы сделаем сразу две полезных вещи: ознакомимся с операциями ввода\вывода командной строки в PHP и напишем скрипт, который совсем немного упростит нам жизнь.
Читать дальше →
Total votes 76: ↑51 and ↓25+26
Comments171

Анонимные сети и timing атаки: Введение

Reading time6 min
Views8.3K
Введение | Tor | Tarzan и MorphMix | Малозатратная атака | Малозатратная атака на Tarzan и Morphmix | Принципы построения безопасных систем (заключение)

Представляю вашему вниманию часть статьи признанных исследователей в области информационной безопасности, переводом которой мы (участники "openPGP в России") сейчас занимаемся. Среди авторов Willy Susilo (Co-Director, Centre for Computer and Information Security Research).

Приведенное ниже "Введение" из статьи "Принципы построения анонимизирующих систем с малыми задержками противостоящих timing-атакам" адресовано всем интересующимся сетевой анонимностью. Авторы доступным языком раскрывают основы анонимизаторов и возможных на них атак, с упором на самому популярную в настоящий момент анонимизирующую сеть "Tor".
Читать дальше →
Total votes 62: ↑60 and ↓2+58
Comments6

Автоматизированная проверка PHP кода при комитах

Reading time6 min
Views34K
В свое время работая в узком кругу программистов, отдельными задачами и даже проектам, мы не задумывались о проблемах связанными с текучкой кадров. Точнее думать — думали, но ни каких мер не применяли, да и в целом коллектив был сплоченный никто не уходил и никого «не уходили». С ростом внутренних проектов и корпоративных клиентов, штат начал разрастаться и казалось, что все отлично — нас больше, значит будем больше успевать и делать, но не тут то было. Мы начали тратить кучу времени на “бесполезные” обсуждения, проверки, излишние проектирование и т.д, больше всего раздражает — это проверка кода. И тут я начал думать, что “мудрые и древние” наверняка решали эти проблемы с сотнями, тысячами программистов, неужели мы не справимся? Я решил провести эксперимент, под названием “автоматизированная проверка стиля кода при комитах”. Для большинства из Вас это не новость и наверняка вы этим пользуетесь, но поделиться опытом внедрения думаю, не будет лишним.
Читать дальше →
Total votes 84: ↑74 and ↓10+64
Comments48

HTML в PDF

Reading time2 min
Views120K
html to pdf

В далеком 2008 году уже была написана подобная статья и я попытался применить знания, но, к сожалению, не справился с русским языком (на denwer-е работал, на хостинге нет). Возможно сказалось отсутствие опыта. А недавно нашел хорошую библиотеку и решил поделиться. Топик, скорее всего, адресован начинающим программистом и ни на, что не претендует.
Читать дальше →
Total votes 144: ↑129 and ↓15+114
Comments81

Алгоритм популярности пользователя на сайте — «Нестандартный подход к стандартным вещам»

Reading time3 min
Views5.9K
Все видели на сайтах систему рейтинга статей и материалов. Многие ее даже делали сами, но не каждый делал рейтинг людей на сайте.
В этой статье я поведаю как сделать качественную систему рейтинга для пользователей вашего ресурса.
Читать дальше →
Total votes 110: ↑89 and ↓21+68
Comments56

PHP + BDD = Behat, или сказ о чудо-библиотеке

Reading time8 min
Views40K
Каждый, кто всерьез занимался разработкой на Ruby, знает про замечательный гем Cucumber. Вкратце — это библиотека для автоматизированного тестирования, заточенная под BDD. Подробнее можно почитать в топике хабраюзера dapi, а еще лучше посмотреть подкаст от Райна Бэйтса. Основная прелесть «огурца» состоит в том, что он позволяет писать тесты на понятном человеку языке, и даже не обязательно английском. Выглядит это так:

Feature: Addition 
  In order to avoid silly mistakes 
  As a math idiot 
  I want to be told the sum of two numbers 

  Scenario: Add two numbers 
    Given I have entered 50 into the calculator
      And I have entered 70 into the calculator
     When I press add
     Then The result should be 120 on the scree

Благодаря Cucumber я подсел на BDD на рельсах. Но вот на PHP, с которым приходится работать основную часть времени, отношения с BDD как-то не сложились. И в первую очередь из-за отсутствия достойного инструментария. Но однажды судьба завела меня на страницу библиотеки Behat (написанной, кстати говоря, хабраюзером everzet). И на меня свалилось счастье…
Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments42

Cufón – используйте шрифты, какие душа пожелает

Reading time4 min
Views91K
Если стоит задача использовать в проекте нестандартный шрифт, то есть возможность пойти несколькими путями:
  1. Ъ-метод – не использовать нестандартные шрифты, достаточно в CSS сказать body {font-family: sans-serif;} и не морочить себе голову.
  2. Быдло-метод – нарезать из ЖПЕГов, картинок с заголовками, ужать посильнее, что б появилась размытость и вставлять вместо текста картинки. Достаточно популярный на наших просторах метод.
  3. W3C-метод – используем @font-family и наслаждаемся красивыми шрифтами без всяких заморочек. Пока этот метод не рассматривают, как рабочий, по причине слабой поддержи со стороны браузера.
  4. sIFR – клевая вещь, наиболее употребляемая на сегодняшний день, но как недостаток – требует наличия Flash-плагина. Хотя это трудно назвать недостатком, но если есть инструмент, позволяющий обойтись без плагинов, то это не может не радовать.
  5. Cufón – самое то. Относительно новый метод, который показывает превосходные результаты. Он и есть герой этой статьи.
Читать дальше →
Total votes 119: ↑111 and ↓8+103
Comments106

Мой подход к проектированию веб-сайтов

Reading time4 min
Views41K

Прелюдия


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

В рамках данной статьи я поделюсь своим опытом проектирования сайтов средней сложности. Данный подход зарекомендовал себя понятным как разработчикам, так и клиентам. Я не собираюсь открывать Америку, представленные ниже инструменты всем прекрасно знакомы. Суть данной статьи как раз в том, что бы продемонстрировать насколько просто можно представить достаточно сложные задачи.

Читать дальше →
Total votes 177: ↑152 and ↓25+127
Comments68

Фильтры: смерть регуляркам и правильная валидация

Reading time2 min
Views25K
Фильтры данных впервые появились в PHP 5.0, и по какому-то стечению обстоятельств остались незамечеными большй частью кодеров. Наверное, это можно объяснить отсутствием чего-нибудь подобного в PHP4, а может просто мануал плохо читали. Я тоже узнал про них случайно… А ведь эта замечательная функция позволяет избавиться от запутаных, и подчас некорректных, регулярных выражений, при выполнении типичных задач.
Мануал по фильтрам находится здесь. Приведу только основную информацию и пару практичных примеров.
Читать дальше →
Total votes 161: ↑123 and ↓38+85
Comments93

Google выпускает mod_pagespeed для Apache

Reading time1 min
Views11K
В прошлом году Google в рамках своих инициатив по ускорению веб проектов представила свой инструмент для разработчиков Page Speed. Теперь же для упрощения труда разработчиков и вебмастеров Google предлагает нам новый инструмент.

Сегодня Google представила новый модуль для Apache под названием mod_pagespeed. По словам разработчиков время загрузки страницы удалось уменьшить на 50 процентов, а на отдельных проектах эта цифра значительно выше.

Сравнительная демонстрация с включенным модулем и без него



Ссылка для скачивания

UPD

Модуль представляет из себя набор фильтров, каждый из них и примеры использования представлены и описаны в Документации. Применять и использовать модули следует исходя из потребностей своего проекта, у каждого фильтра есть свои особенности, которые следует учесть при использовании, обращая внимание на раздел «Risks» в их документации.
Total votes 107: ↑81 and ↓26+55
Comments52

Многопоточное скачивание в cURL на PHP

Reading time7 min
Views35K
В данном топике представлена на мой взгляд удобная и функциональная реализация многопоточного скачивания на cURL для PHP. Возможно кому-то она будет полезна, а мне принесёт инвайт ;)

Скачиванием через cURL не пользовался пусть даже из интереса только ленивый. Будь-то из консоли, либо реализуя код на каком-либо ЯП. Решения блокирующего скачивания одной ссылки валяются на каждом углу сети, к примеру на php.net. Однако, если рассматривать реализации на PHP, то такой подход подчас не подходит ввиду высоких временных затрат на вспомогательные операции ( dns lookup, request waiting и подобные ). Для скачивания большого числа страниц последовательный вариант не приемлем. Если устраивает — дальше можно не читать :)
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments21

Многопроцессовые демоны на PHP

Reading time3 min
Views43K
Зачем может понадобиться писать демоны на PHP?
  • Выполнение трудоемких фоновых задач;
  • выполнение задач, которые длятся больше, чем время ожидания при HTTP-запросе (30 секунд);
  • выполнение задач на более высоком уровне доступа, чем серверный процесс (читай — под рутом).

Читать дальше →
Total votes 111: ↑97 and ↓14+83
Comments117

Pirobox — хорошая альтернатива jQuery Lightbox

Reading time1 min
Views20K
Pirobox — легкий и быстрый скрипт галереи на jQuery.

Автор скрипта итальянец Diego Valobra (http://www.diegovalobra.com), талантливый человек.
В сжатом виде скрипт весит всего 10Кб, есть несколько тем внешнего вида, слайдшоу, корректная работа с PNG, клавиатурная навигация, проверка состояния ссылок (битая/не битая), возможность открыть картинку в новом окне.

На данный момент последняя версия — 1.2.2.

Официальный сайт
Скачать
Demo
Total votes 50: ↑39 and ↓11+28
Comments30

8 отличных хитростей jQuery

Reading time4 min
Views28K
imageКому не нравится jQuery? Это быстрая и простая javascript-библиотека стала очень популярной в 2008 году. В этой статье я собрал список восьми очень полезных jQuery-техник, советов и хитростей.
Читать дальше →
Total votes 122: ↑95 and ↓27+68
Comments85

Немного шаблонизирования

Reading time2 min
Views1.6K
Не так давно из лекции Дугласа Крокфорда я узнал об очень интересной технике «шаблонизирования» в JavaScript. Основная цель техники заключается в том, что мы получаем с сервера JSON и потом как-то формируем из этого HTML. Во многих ситуациях этот процесс оставляет желать лучшего потому, что формирование HTML происходит или с помощью конкатенации строк или ряда операций createElement, appendChild и т.п. Возможно многие уже знают об этом решении, но для тех кто не знал надеюсь будет полезно.
Читать дальше →
Total votes 89: ↑76 and ↓13+63
Comments54

Underscore.js — библиотека, которая так хороша, что должна быть вне закона

Reading time3 min
Views50K
Каждый, кому приходилось писать объемные куски осмысленного кода на javascript, рано или поздно понимал, что ему многого не хватает в этом языке или просто неудобны некоторые врожденные конструкции. Для сглаживания шероховатостей применяются jQuery, Prototype, MooTools etc. Кто-то уже мало представляет себе, как можно кодить без них. Сегодня я расскажу о еще одной маааленькой библиотечке, которая делает мир javascript-программиста еще прекраснее. Речь пойдет о Underscore.js
Go ahead, make my day
Total votes 177: ↑163 and ↓14+149
Comments51

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity