Как стать автором
Обновить
0
0
GmasteR @GmasteR

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

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

Используем Adobe Illustrator для создания макета страницы

Время на прочтение4 мин
Количество просмотров92K
Данное руководство создано для тех, кто уже умеет пользоваться Adobe Illustrator, но пока не знает всех тонкостей работы с ним и хочет познакомиться поближе.

Товарищ CurlyBrace уже сверстал представленный здесь макет, спасибо ему!

Для начала посмотрите на то, что мы будем стараться сделать:



Читать дальше →
Всего голосов 162: ↑139 и ↓23+116
Комментарии159

Автоматическая генерация кода в Yii

Время на прочтение2 мин
Количество просмотров18K
Привет, %username%! Несколько лет назад я познакомился с замечательным фреймворком Yii и с тех пор как только у меня появляется возможность вести проект на нем — я дерусь берусь за нее.

Одной из крутых фич которую я очень люблю, это инструмент Gii, который начиная с версии 1.1.2 входит в состав фреймворка. Сейчас я хочу поговорить сторонних модулях основанных на нем.

Gii «Из коробки» генерирует достаточно функциональный код, часто когда нужно создать мелкую фичу приходится очень мало менять. Но что если нам нужно больше возможностей? К примеру добавить поддержку нескольких языков, или изменит стиль генерируемого кода?
Есть 2 способа расширения: Изменять существующие шаблоны и создавать свои генераторы (ну или использовать уже готовые соответственно). На базе этих возможностей были созданы достаточно интересные продукты для комфортной работы с авто генерацией кода.
Читать дальше →
Всего голосов 40: ↑31 и ↓9+22
Комментарии8

Yii: Динамическое изменение правил валидации (сценариев)

Время на прочтение5 мин
Количество просмотров16K
В данном маленьком топике я хотел бы рассказать об одном очень простом рецепте (который многим из вас, вероятно знаком) в контексте фреймворка Yii. Речь идет о динамическом изменении правил валидации формы — когда правила валидации изменяются в зависимости от выбора пользователя вашего приложения, сделанного, например, путем выбора значения из списка или установленного чекбокса.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии12

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

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

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

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

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

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

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

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


Введение

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

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

Защита от спама в phpBB 3 без капчи

Время на прочтение3 мин
Количество просмотров18K
Думаю, многие владельцы форумов на phpBB 3 уже знают, что стандартная капча, идущая в комплекте с форумом, особо не спасает.

В общем, зайдя однажды на свой форум, увидел, что за считанные часы добавилось несколько сотен спаммерских сообщений, при том, что и капча включена, и постить можно только зарегенным. Поначалу попробовал просто выбрать другую капчу, но тоже не помогло. Тогда и задумался о другом подходе.
Читать дальше →
Всего голосов 78: ↑71 и ↓7+64
Комментарии73

Войны в песочнице — Часть 2. Обход HTTPS

Время на прочтение10 мин
Количество просмотров48K
Ранее была получена возможность перехватывать весь трафик исследуемого субъекта. Однако банальный анализ логов tcpdump не даёт значимого результата, так как большинство сервисов использует шифрование с помощью SSL для передачи важных данных, в том числе паролей.
Как обойти шифрование SSL
Всего голосов 95: ↑93 и ↓2+91
Комментарии56

Пишем HTTP proxy сервер с плагинами

Время на прочтение7 мин
Количество просмотров19K
imageОдно время всплыла тема, что в одной из онлайн-игр появилась такая довольно досадная штука, как каптча. Само по себе, отвлекаться от игры для ввода каптчи может обернуться не слишком хорошими последствиями, особенно, если вводишь её не с первого раза, могут и враги насолить. Но не в этом соль. Особенно плоха вещь для тех, кто использует локальных ботов. Те то, маленькие, спотыкаются об каптчу, и за это игра мнгновенно их штрафует потерей юнитов и ресурсов. Неприятная штука, что говорить.

Итак, задача:
Хочется, чтобы каптчу вводить не приходилось. Хоть если играешь сам, хоть если играет за тебя бот, если ты спишь.
Дополнительное условие: 40 часов времени (ибо паника на корабле).
Желательное условие: установочный файл под Windows.
Ещё одно желательное условие: результат должен занимать не более мегабайта.
Решение задачи с нуля под катом
Всего голосов 49: ↑34 и ↓15+19
Комментарии36

Построение систем доставки видео на основе HTTP Dynamic Streaming от Adobe и OpenSource

Время на прочтение8 мин
Количество просмотров21K
В рамках проекта для одного из наших заказчиков в очередной раз встала задача построить систему конвертации/ хранения/ доставки видео в интернет. Типичная такая задача создания своего маленького (или не очень маленького) “Тьюба” только с профессиональным, а не UGC-контентом.

С момента создания первых “Тьюбов” технологии видео в интернете прошли некоторый путь развития, позволяют сейчас делать намного больше, да и требования к современному видео-сайту стали несколько иными.

Наиболее интересными трендами последнего времени, на наш взгляд, являются:
  • возможность смотреть один видео-сайт с разных устройств,
  • технология адаптивного HTTP стриминга

Читать дальше →
Всего голосов 55: ↑53 и ↓2+51
Комментарии55

Делаем закругленные уголки с помощью псевдоэлементов: before и: after

Время на прочтение1 мин
Количество просмотров3.4K
Внимание! Это все устарело, но публикацию не удаляю, чтобы все знали как мы мучались в 2007 году из-за IE6 :-)

Задача: сделать врезку с закругленными уголками с минимумом html-кода.

Читать дальше →
Всего голосов 62: ↑58 и ↓4+54
Комментарии147

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

Время на прочтение3 мин
Количество просмотров4.5K
заказчик: Пусть аватарки пользователей у нас будут в 50×50 и 100×100, в JPEG
разработчик: Готово

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

заказчик: Пусть аватарки будут в GIF, 25×25 и 40×40
разработчик: Ага, проверяй
заказчик: Уже? Как ты это так быстро делаешь???
разработчик: …
Читать дальше
Всего голосов 157: ↑140 и ↓17+123
Комментарии153

PDF-версия руководства по быстрому старту в Drupal

Время на прочтение1 мин
Количество просмотров5.2K
интро
Отверстал PDF-версию перевода руководства, изложенного в первой и второй частях.
Объем 48 страниц.
Выложил на амазон, чтобы всегда был доступен.
В документе оглавление, букмарки, все ссылки оригинала.
Критика, пожелания, поправки приветствуются.
Всего голосов 92: ↑80 и ↓12+68
Комментарии32

Freeje- как просто и дешево звонить за границу с мобильного

Время на прочтение2 мин
Количество просмотров2.7K
Уважаемое хабрасообщество,
имею честь представить вашему вниманию новый сервис.
Freeje — это приложение для мобильного телефона, позволяющее совершать звонки за границу по весьма лояльным ценам.

История
Довольно часто работа сталкивала с людьми, которые в силу своей деятельности вынуждены часто и много звонить в другие страны. В основном, это люди не самого молодого поколения. Из-за (или благодаря) тому что деятельность их зачастую не связана с IT — они не пользуются скайпом, софтовыми телефонами и др. подобными сервисами для того, чтоб удешевить связь. Как правило, рабочие звонки осуществляются с мобильного телефона по не самым лояльным тарифам местных мобильных операторов…
Проанализировав сей факт, мы сели-подумали и на свет родилась идея создать сервис, позволяющий объединить в себе удобство, приятные расценки и высокое качество связи.
Читать дальше →
Всего голосов 29: ↑20 и ↓9+11
Комментарии91

Несколько советов для PHP-разработчиков

Время на прочтение4 мин
Количество просмотров8K
image Хочу опубликовать небольшой сборник советов для современных PHP-разработчиков. Я умышленно не связываю их с теми или иными фреймворками, библиотеками и тп. Надеюсь, что мои советы помогут кому-то лучше понять PHP, научиться лучше его использовать. Некоторые из них могут быть не специфичны для PHP, но для программирования в общем.
Читать дальше →
Всего голосов 214: ↑156 и ↓58+98
Комментарии202

Форматирование телефонных номеров на PHP

Время на прочтение13 мин
Количество просмотров58K
Возникла задача автоматического форматирования телефонных номеров в виде страна (город) номер, и первым делом я обратился к существующим решениям.
К сожалению, оказалось, что все найденные решения основываются на обычном подгоне строки под пользовательский формат, имея ограниченную область применения и ошибки при выходе за ее пределы.
Читать дальше →
Всего голосов 103: ↑81 и ↓22+59
Комментарии98

«Мои продажи», малому бизнесу посвящается

Время на прочтение2 мин
Количество просмотров8.3K
imageВидели ли вы, когда на небольшой торговой точке, после продажи, продавец записывает что то в толстую тетрадку? Учет продаж и товаров в вашем бизнесе это толстая тетрадь и калькулятор? А что, если бы существовала небольшая бесплатная программа, работать с которой могла бы даже «блондинка», а добавить продажу можно с помощью пары щелчков мышкой, не открывая несколько окон, и не вводя ненужные для небольшой торговой точки поля. Программа, в которой можно вести учет товаров, всегда видеть остатки, и легко и просто проводить инвентаризацию. Программа, в которой можно было бы заводить несколько продавцов, и смотреть потом их продажи за день, месяц, год.
Плюс к этому всему возможность просматривать продажи удаленно на сайте, на любой из ваших торговых точек.
И все это бесплатно, с открытым исходным кодом, и с возможность написания плагинов на языке программирования python.
Эта программа под катом...
Всего голосов 111: ↑102 и ↓9+93
Комментарии154

Экономим деньги — покупаем в США

Время на прочтение5 мин
Количество просмотров54K
Это первый наш пост в новоиспечённом корпоративном блоге компании Ebaytoday, так что ежели где что не так – милостиво просим, как говорится «не пинать сильно ногами».

Итак – представляем уважаемым читателям Хабра наше детище – проект EbayToday.ru. Этот сервис уже более 2-х лет помогает жителям России и СНГ с лёгкостью совершать покупки не где-нибудь, а в самих Соединённых Штатах Америки.

image


Чем именно мы занимаемся:
1) помогаем в приобретении товаров на аукционе eBay,
2) помогаем совершать покупки в любых американских интернет-магазинах,
3) предоставляем услуги мейлфорвардинга.

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

Ну что? Поехали?

Читать дальше →
Всего голосов 160: ↑116 и ↓44+72
Комментарии270

Мечта параноика или Еще раз о шифровании

Время на прочтение7 мин
Количество просмотров101K
В свете последних событий с torrents.ru и активизации государственных группировокорганов по борьбе с пиратством, думаю многие задумались как же обезопасить себя или свой сервер на случай если придут нежданные «гости». Вот и мне подвернулась задача защитить локальный медиасервер от посягательств, проведя пару дней за гугленнием и чтением мануалов/howto — мне удалось это реализовать. Скажу сразу, статей по шифрованию очень много, но в основном они рассчитаны на шифрование только определенных разделов, либо устарели/содержат много ошибок.

ЦЕЛИ:

  1. Весь винт(винты) должны быть надежно зашифрованы
  2. На винтах не должно быть абсолютно никакой разбивки, так как будто это новый(или стертый) винт
  3. ОС должна стоять на зашифрованных разделах
  4. Должна быть возможность увеличения дискового пространства, путем добавления новых винтов
  5. Загрузка системы без ввода ключа от шифрованных данных

Читать дальше →
Всего голосов 183: ↑176 и ↓7+169
Комментарии198

Настройка резервного копирования Linux-сервера за 5 минут

Время на прочтение3 мин
Количество просмотров66K
Передо мной возникла необходимость настроить резервное копирование на новом Linux-сервере, задачка эта оочень важная, но уж больно скучная: нужно написать и отладить скрипты, которые будут архивировать нужные папки (причем желательно делать инкрементальные архивы), базы данных, хранилища subversion, а затем переносить эти архивы на удаленный сервер. По этому я попробовал нагуглить готовое решение для этой задачки и в результате наткнулся на backup-manager — замечательный опенсорсный набор bash-скриптов, позволяющих:
  • архивировать любые папки, в том числе и создавать инкрементальные архивы. В конфиге просто указывается список директорий, которые должны быть скопированы, а также «черный список» файлов, которые копироваться не будут.
  • делать резервное копирование баз данных MySQL. В конфиге указываются логин и пароль mysql-юзера, имеющего доступ к базам, а всю остальную работу backup-manager делает сам.
  • делать резервное копирование svn-репозиториев, причем бэкап делается не копированием папки с хранилищем, а с помощью команды svnadmin dump.
  • шифровать архивы.
  • копировать созданные архивы на удаленные сервера по FTP, SSH или (это самая важная для меня фича) в хранилище Amazon S3, а также записывать их на DVD.

Таким образом, один этот этот набор скриптов решил абсолютно все мои задачи, связанные с резервным копированием. Настраивается все это хозяйство не более чем за пять минут, так как в конфигурационном файле каждый параметр имеет подробные комментарии, так что проблем с настройкой возникнуть ни у кого не должно.
Читать дальше →
Всего голосов 85: ↑74 и ↓11+63
Комментарии45

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность