Search
Write a publication
Pull to refresh
3
0.5

WEB-программист, сетевой администратор

Send message

Манипулирование URL'ами в JavaScript

Reading time2 min
Views71K
Из года в год, сталкиваюсь с одной и той же проблемой. Как добавить, изменить или удалить параметр к некоторому адресу в строковом виде. Быстро и грязно это можно делать с помощью, например, регулярных выражений или найти каке-то готовое решение. Зачастую также может потребоваться, к примеру, подменить путь в адресе или изменить протокол с HTTP на HTTPS и т.д.

В целом, это хочется делать просто и понятно. При этом хочется разумного компромиса. Я встречал некоторые библиотеки, которые дают мощный функционал, но при этом по объему — десятки килобайт JavaScript кода. Несколько десятков килобайт, чтобы, например, подменить параметр в QueryString? Эх…
Читать дальше →

Загрузка файлов в Yii

Reading time10 min
Views71K
Написав ряд проектов на Yii, задумался об удобном механизме работы с загруженными файлами. Yii предлагает набор инструментов для этих целей, но единого механизма нет. В этой статье хочу предложить идею централизованной обработки загруженных файлов в Yii.
Читать дальше →

Gearman — сервер очередей: использование в проектах на PHP

Reading time9 min
Views82K
Не так давно была замечательная статья, описывающая общие принципы работы с сервером очередей Gearman. Мне бы хотелось продолжить материал, дополнив его некоторыми деталями практического применения, а именно:
— установка и управление сервером
— управление очередью — что возможно и как
— PECL и PEAR php-расширения для работы с Gearman
— мониторинг сервера
— примеры кода
— передача данных порциями
— организация параллельных вычислений в PHP

Интересно? Прошу под кат
Читать дальше →

PHP HTML DOM парсер с jQuery подобными селекторами

Reading time3 min
Views146K
Добрый день, уважаемые хабровчане. В данном посте речь пойдет о совместном проекте S. C. Chen и John Schlick под названием PHP Simple HTML DOM Parser (ссылки на sourceforge).

Идея проекта — создать инструмент позволяющий работать с html кодом используя jQuery подобные селекторы. Оригинальная идея принадлежит Jose Solorzano's и реализована для php четвертой версии. Данный же проект является более усовершенствованной версией базирующейся на php5+.

В обзоре будут представлены краткие выдержки из официального мануала, а также пример реализации парсера для twitter. Справедливости ради, следует указать, что похожий пост уже присутствует на habrahabr, но на мой взгляд, содержит слишком малое количество информации. Кого заинтересовала данная тема, добро пожаловать под кат.
Читать дальше →

24 совета javascript-разработчику

Reading time9 min
Views86K
От переводчика: Не смотря на то что оригинал данной статьи датирован январем 2009 года, она не потеряла актуальности и теперь. Я надеюсь что даже те, кто используют JavaScript не первый год, почерпнут для себя что-то полезное.

1. Используйте === вместо ==


В JavaScript существует два разных типа операций сравния: === / !== и == / !=. Считается хорошим тоном всегда использовать первую пару для сравнения.
“Если два операнда одного типа и значения, то === вернет true, а !== false”
JavaScript: The Good Parts
Читать дальше →

Отказоустойчивая архитектура из двух веб-серверов на примере Debian Squeeze

Reading time10 min
Views18K
Мне поступила задача организовать отказоустойчивость веб-приложения из двух серверов. Веб-приложение включает в себя статические файлы и данные в СУБД MySQL.
Основное требование заказчика — веб-приложение должно быть всегда доступно и в случае сбоя в течении 5 минут сбой должен быть восстановлен.
2 сервера, территориально разнесенные в разных ЦОДах, должны удовлетворить данное требование.

Подробности

Уязвимость нулевого дня в roundcube

Reading time3 min
Views36K
Есть много разного полезного софта, который присутствует на большинстве хостингов. Например, стандартом de-facto является phpmyadmin, отсутствие которого пользователи не поймут и не оценят.

Для почты такое “приложение по умолчанию” — roundcube.

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

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

Asterisk. Передаем номер звонящего при переадресации на мобильный с помощью СМС

Reading time3 min
Views39K


Здравствуйте уважаемые хабровчане и любители решений на основе Asterisk. В этой статье хочу поделиться опытом решения интересной задачи. Требовалось сделать так, чтобы при переадресации звонков с одного мобильного/городского номера на другой мобильный мы видели номер звонящего, а не наш городской номер. Но дело в том, что операторы связи не дадут нам так просто подставлять свои номера при звонке через их сети (И правда, это был бы настоящий бардак). Но решить проблему можно передачей его через СМС сообщение через GSM-модем.
Читать дальше →

Истинное могущество регулярных выражений

Reading time16 min
Views94K
Как частый посетитель тэга PHP на StackOverflow, я очень часто встречаю вопросы о том, как распарсить какие-то конкретные аспекты HTML, используя регулярные выражения. Самый распространённый ответ на это:
«Ты не можешь парсить HTML с помощью регулярных выражений, потому что HTML не является регулярным. Используй XML парсер, и будет тебе счастье»

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

Список полезных PHP классов и библиотек

Reading time4 min
Views65K

Email


  • Swift Mailer
    Swift Mailer легко интегрируется в любое PHP-приложение. Это гибкий и элегантный ООП-подход к отправке писем с множеством функций: отправка эл.почты, используя SMTP, SendMail, Postfix, поддержка серверов и др.
  • PHPMailer
    Лучший класс для работы с эл. почтой. Поддерживает сообщения в цифровой форме, S/MIME шифрование, текстовые и HTML-письма, изображения, поддерживает несколько Email’ов, SMTP-аутентификация.

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

Загадка выпадающего списка «Амазона»

Reading time2 min
Views192K
Бен Кэменс обнаружил, что в выпадающем списке Shop by Department на сайте «Амазон» ховер-эффект происходит очень быстро, абсолютно без какой-либо задержки. Тем самым происходит нарушение старого, выработанного ещё в 90-х годах прошлого века правила: перед отображением пункта подменю необходим так называемый гистерезис, запаздывание.



Запаздывание необходимо не только для того, чтобы сберечь ресурсы машины пользователя, но и по соображениям юзабилити: если не добавить задержку, то переводить курсор мыши на выпавшее подменю будет неудобно, придётся вести его сначала горизонтально в меню, не задевая другие пункты, и лишь после выбирать нужный подпункт.
Читать дальше →

Произвольный вид поля file в html-форме, одинаковый во всех браузерах

Reading time2 min
Views79K
Не смотря на развитие, внедрение новых стандартов и плюшек в браузерах, у нет единых стандартов, как отображать элемент /> по умолчанию. Более того, у этого элемента нет атрибутов, позволяющих его в какой-то мере стилизовать.
Из-за необходимости привести это поле формы к единому виду во всех браузерах и «вписать» в разработанный дизайн, после поисков и анализа материалов в интернете был разработан метод замены вида поля формы на html+css, и js для расширения функциональности.

Как по умолчанию выглядит это поле?

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

Полезные техники HTML, CSS и JavaScript

Reading time8 min
Views101K
Техника – это способ справиться с заданием, и у нас, разработчиков и дизайнеров фронтэнда, этих способов бывает достаточно много. При это, будучи погруженными в рутинную работу, мы порой не всегда замечаем как стремительно меняется окружающая нас сфера. В период с 2002 по 2010 годы сообщество фронтэнд-разработчиков буквально покрывалось язвами избыточного кода и ресурсов, от которых страдали и работа сайтов, и удобство их использования. Чтобы с этим справиться, мы придумали уйму хаков, трюков и уловок под кодовым названием «техника». Мы по-прежнему продолжаем выполнять поставленные перед нами задания, просто используем не самые эффективные способы.



Оборачиваясь назад, отметим, что в последние несколько лет установились новые, лучшие, стандарты и способы их применения, позволяя нам создавать более продвинутые «техники». Этот новый мир, открытый перед нами, называется «modern web». Web 2.0, которым восхищались в свое время, сегодня для нас стал запутанным и застойным. С одной стороны нет сомнений в том, что подобная судьба постигнет и то, что мы называем «modern web». С другой — пока что мы можем использовать этот термин и злоупотреблять им сколько угодно, пока понимаем, что он означает.



В 2010 появился стандарт HTML5, обеспечивающий совершенно новую, полустандартизованную веб-среду. Такие браузеры, как Opera, Firefox, Chrome и Safari приняли нововведения, и их разработчики вышли за пределы реализации стандартов и изучения интерфейса программирования приложений. Чтобы представить себе, насколько автономны эти браузеры, можно ознакомиться с отличной наглядной демонстрацией поддержки HTML5 на www.html5readiness.com.
Читать дальше →

19 команд ffmpeg для любых нужд

Reading time3 min
Views583K
От переводчика:
Многие знают, что ffmpeg — это сила, но не все знают, какая именно. Он многогранен и безграничен, а его man объёмен и местами малопонятен, лишь немногие постигли дао профессиональной работы с ним. И тем не менее, этот инструмент может быть полезен почти всем, кто хоть иногда работает с видео и звуком, даже на бытовом уровне. О некоторых полезных консольных командах ffmpeg и пойдёт речь в статье. В некоторых местах я взял на себя смелость вставить ссылки на поясняющие статьи.


ffmpeg — это кроссплатформенная open-source библиотека для обработки видео- и аудиофайлов. Я собрал 19 полезных и удивительных команд, покрывающих почти все нужды: конвертация видео, извлечение звуковой дорожки, конвертирование для iPod или PSP, и многое другое.

1. Получение информации о видеофайле

ffmpeg -i video.avi

2. Превратить набор картинок в видео

ffmpeg -f image2 -i image%d.jpg video.mpg

Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg

(примечание переводчика: мне больше нравится такой формат:
ffmpeg -r 12 -y -i "image_%010d.png" output.mpg

здесь задаётся frame rate (12) для видео, формат «image_%010d.png» означает, что картинки будут искаться в виде image_0000000001.png, image_0000000002.png и тд, то есть, в формате printf)
Читать дальше →

12 бизнес-уроков от основателя и гендиректора Amazon Джеффа Безоса. Часть 2

Reading time9 min
Views24K
Переведено в Alconost. Часть 1 — habrahabr.ru/company/alconost/blog/170201

7. Презентуйте и обсуждайте документы, а не слайд-шоу


В интервью Чарли Роузу Безос говорит: «Обычно на корпоративном собрании кто-то один выходит вперед и представляет общему вниманию… что-то вроде слайд-шоу. С нашей точки зрения… таким образом вы получаете очень мало информации, вместо нее вам достаются только тезисы. Это облегчает задачу тому, кто проводит презентацию, но усложняет понимание тем, кто его слушает. Поэтому вместо этого мы на всех наших собраниях рассматриваем подготовленный заранее документ — 6-страничную повествовательную записку. И вот, когда вам приходится выписывать свои идеи в виде законченных предложений и полновесных абзацев, это заставляет вас думать яснее и четче».



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

Экспорт избранного Хабра в FB2 — скоростная PHP-версия

Reading time2 min
Views15K
В своё время я уже видел такой конвертер здесь же на Хабре, написанный на питоне, но он на моей машинке сжирал много-много-много ресурсов и ни разу не смог моё избранное (а это 400+ постов) до конца сохранить, падая то на некорректном файле, то на «кривой» статье. Пришлось переписать, результаты трудов под катом.
Читать дальше →

Обзор Tom's Planner

Reading time3 min
Views24K


Самые крутые инструменты — универсальны, с их помощью можно решать самые разнообразные задачи. Примеры таких инструментов — документы и таблицы Google, ментальные карты Mindmeister, доски Realtimeboard. Вы можете их приспособить для чего угодно, особенно таблицы. Придумать и сделать такой инструмент сложнее всего. Я расскажу о еще одном универсальном инструменте, который мы активно используем — Tom's Planner.
Обзор

Установка и настройка KVM под управлением CentOS 6

Reading time10 min
Views242K
Приветствую вас, Хабражители!

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

Однако, буду рад вниманию знающих и опытных админов, которые, возможно, дадут дельные советы и помогут поправить ошибки, если таковые имеются.

Disclaimer
Поправьте, если не так, но в поиске я не нашел реализации данной задачи именно на CentOS с подробным описанием всех шагов для новичков.
Хорошая серия статей написана librarian, но они для Debian.
Естественно, для бывалых админов, в этом никакой проблемы нет, но повторюсь, моя задача — описать подробную инструкцию для новичков.

Вопрос: в Интернете есть множество руководств для установки Qemu KVM под CentOS, возразите вы, и чем же данная статья будет интересна?
Ответ: здесь описывается полный цикл установки и настройки необходимых для виртуализации компонентов, установка гостевых виртуальных машин (ВМ), настройка белой и серой сети для ВМ, а также некоторые аспекты, которые помогут упростить управление ВМ, используя проброс графики с удаленного сервера на свой ПК и запуском virt-manager.


Помните 7 шагов?
Другая 7-ка! Прошу под кат!

Развёртывание репозиториев Linux

Reading time2 min
Views21K
Без синхронизаций и т.д., в варианте «есть хостинг» или «файловая помойка» и надо быстро выкатить хранилище пакетов для дистрибутива Linux (так чтобы можно было подключиться к этому репозиторию и поставить оттуда всё необходимое). Иногда обновляться в ручном режиме — копированием по тому же адресу с перезаписью. Раз в полгода или год. Задача типовая и я её опишу в полуавтоматическом режиме.
Читать дальше →

Архитектура масштабируемой почтовой системы

Reading time4 min
Views27K
В этой статье мы рассматриваем один из вариантов реализации масштабируемой архитектуры большой почтовой системы.

6 декабря 2012 г. Google прекратил регистрацию новых аккаунтов для бесплатной версии Google Apps.

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

Как известно, аппетит приходит во время еды. Если уж решились строить что-то свое, то тогда стоит сразу закладывать возможности для роста.
Для проектируемой почтовой системы были сформулировали следующие требования:
  • масштабируемость (неограниченное количество обслуживаемых доменов, общий объем почтовых ящиков 100 терабайт и больше);
  • отказоустойчивость (все промежуточные сервисы должны быть продублированы);
  • расширяемость (добавление новых узлов в систему должно быть легким и простым).


Начали с выбора хранилища под письма...

На самом деле выбор был небольшой:
  • dovecot/cyrus с хранением в файловой системе через maildir/mailbox;
  • dbmail с хранением в базе данных.

После оценки количества сервисов, предоставляемых «из коробки», а также изучения нюансов использования, нами было решено остановиться на dbmail.
Вот краткий список вкусностей, которые предоставляет dbmail:



  • доступ к ящикам через IMAP, POP3;
  • sieve-скрипты для сортировки почты;
  • прием почты через smtp и lmtp протоколы;
  • администрирование через cli и SQL-запросы.


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

Information

Rating
3,646-th
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity