Как стать автором
Обновить
0
0
Павел Мешков @pashamesh

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

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

Загрузка файлов с помощью HTML5 и сколько раз мы сказали нехорошие слова

Время на прочтение3 мин
Количество просмотров7.3K
Стояла задача: найти или создать загрузчик файлов на сервер, использующий возможности HTML5 для мультизагрузки. Загрузчик должен:
  • отправлять методом POST любые параметры вместе с файлом;
  • отправлять куки;
  • предоставлять возможность выбора сразу нескольких файлов (или нескольких тысяч – тут как пользователь захочет);
  • отправлять файлы группами;
  • файлы собираются в группы до определенного количества мегабайт, или до определенного количества файлов в группе; (это связано с тем, что на сервере есть ограничение на размер POST запроса и на количество файлов в одном пакете)

Именно по причине отсутствия опыта работы с флешем, для создания загрузчика был выбран только JavaScript.

Итак, что из этого получилось

Читать дальше →
Всего голосов 87: ↑84 и ↓3+81
Комментарии67

Участие в тендере на разработку сайта (часть 2)

Время на прочтение10 мин
Количество просмотров19K
Вторая часть материала о том, как правильно участвовать в тендере на разработку сайта. Я публикую их одновременно, поскольку я написал единый большой материал, который в один пост не влез.

Первая часть материала.

Во второй части мы поговорим о презентации предложения, подведении итогов и всяких полезных советах.
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии11

Выбираем сервис массовых почтовых рассылок

Время на прочтение4 мин
Количество просмотров71K
Привет, Хабр!

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



Изображения кликабельны.
Читать дальше →
Всего голосов 41: ↑26 и ↓15+11
Комментарии39

Обфускация JavaScript

Время на прочтение5 мин
Количество просмотров196K
В статье собраны всем известные методы и предельно извращенные. Эту статью я решил написать после недавнего прочтения поста в блоге Badass JavaScript и решил её дополнить своими находками.

Первый способ


Он всем известен — обфускация минимизаторами такими как JS Packer, JSmin, YUI Compressor, Closure compiler или можно просто пугуглить «JavaScript Obfuscator» и найдется ещё сто штук разных обфускаторов.
Они превращают существующий код
function MyClass(){
    this.foo = function(argument1, argument2){
        var addedArgs = parseInt(argument1)+parseInt(argument2);
        return addedArgs;
    }
    var anonymousInnerFunction = function(){
        // do stuff here!
    }
}

В какой-то такой вид:
function MyClass(){this.foo=function(c,b){var d=parseInt(c)+parseInt(b);return d};var a=function(){}};

Или такой:
var _0xd799=["\x66\x6F\x6F"];function MyClass(){this[_0xd799[0]]=function (_0xefcax2,_0xefcax3){var _0xefcax4=parseInt(_0xefcax2)+parseInt(_0xefcax3);return _0xefcax4;} ;var _0xefcax5=function (){} ;} ;

Или вот такой:
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4 0="3 5!";9 2(1){6(1+"\\7"+0)}2("8");',10,10,'a|msg|MsgBox|Hello|var|World|alert|n|OK|function'.split('|'),0,{}))

Но ничего не стоит его восстановить с помощью jsbeautifier.org либо просто убрать eval и получить исходный код, многое потеряем, но смысл кода восстановим. Ну и с первого взгляда мы видим, что перед нами JavaScript.

Все это были цветочки под катом жесткие методы обфускации.
Читать дальше →
Всего голосов 171: ↑165 и ↓6+159
Комментарии85

Методы распознавания текстов

Время на прочтение6 мин
Количество просмотров59K
Несмотря на то, что в настоящее время большинство документов составляется на компьютерах, задача создания полностью электронного документооборота ещё далека до полной реализации. Как правило, существующие системы охватывают деятельность отдельных организаций, а обмен данными между организациями осуществляется с помощью традиционных бумажных документов.
Читать дальше →
Всего голосов 85: ↑73 и ↓12+61
Комментарии59

Тонкости регулярных выражений. Часть 2: возвраты и их количество

Время на прочтение9 мин
Количество просмотров12K
Часть 1: метасимволы внутри и вне символьных классов.

В этой части я хотел бы рассказать про то, как же работают движки регулярных выражений, почему некоторые люди считают, что регулярные выражения очень медленные, и почему авторы многих движков не соблюдают стандарт POSIX.
Читать дальше →
Всего голосов 49: ↑47 и ↓2+45
Комментарии6

Самые быстрые настройки для PHP-скриптов

Время на прочтение7 мин
Количество просмотров35K
Наверное, все, кто сталкивался с разработкой более или менее серьезных приложений, знают, что выбор формата хранения настроек скрипта или приложения — достаточно ответственное дело. Конфиги должны быть легко читаемыми, легко модифицируемыми, легко переносимыми, и так далее — список можно продолжать и продолжать.

Так как серверные PHP-скрипты выполняются, бывает, много раз в секунду, скорость загрузки конфигов — достаточно важный параметр. Хотя ему, порой, уделяется не очень много внимания. Давайте сравним различные варианты хранения настроек для PHP-скриптов с точки зрения скорости их работы. Ну и коснемся вкратце их удобства.
Читать дальше →
Всего голосов 112: ↑93 и ↓19+74
Комментарии192

Инструменты для дизайнеров и разработчиков

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


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

Смотрим
Всего голосов 155: ↑131 и ↓24+107
Комментарии41

jQuery плагин, для Ajax загрузки видео на YouTube

Время на прочтение6 мин
Количество просмотров12K
Недавно я написал небольшой плагин на jQuery и PHP. Функционал простой: посредством Ajax задается описание и загружается видео на YouTube, плагин вернет статус загрузки, и если она прошла успешно — id видео. Плагин может применяться на любом сайте, и легко вставляется в любую CMS.

Все началось с того, что при разработке CMS для сайта местного телеканала я столкнулся с необходимостью сделать загрузку видеороликов на YouTube. Так как на сайт часто будут добавлять видео, то каждый раз логиниться на YouTube, заливать туда ролик, получать на него ссылку, лезть в CMS и вставлять её туда — очень напряжно. Причем, желательно делать это через Ajax, чтоб можно было легко включить плагин в любой проект.

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

Установка Request Tracker 3.8

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


Приветствую тебя, %habrauser%!

Предыстория:

В данный момент я работаю в небольшой конторе, которая занимается консультированием, аудитом и обслуживание в области IT. Хотя контора и небольшая, количество клиентов у нас росло быстрыми темпами, и без нормального хелпдеска обойтись было уже очень сложно. Рассмотрев приличный перечень продуктов, как платные так и бесплатные, наш выбор пал на продукт фирмы BestPractical, который называется весьма незамысловато Request Tracker.
Читать дальше →
Всего голосов 41: ↑36 и ↓5+31
Комментарии58

Использование mod_macro для конфигурации виртуальных хостов Apache

Время на прочтение1 мин
Количество просмотров6.2K
Добрый день,

Данный топик я публикую по мотивам топика Программирование в PHP для командной строки, в котором, на мой взгляд, описан не самый оптимальный процесс добавления виртуальных хостов с использованием PHP в режиме command line.
Для тех из вас, кто знаком с mod_macro, этот топик покажется неинтересным и его можно пропустить.
Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии15

Верстка почтовых рассылок

Время на прочтение6 мин
Количество просмотров71K
Привет, Хабр!

В этой статье я бы хотел поделиться своими познаниями в кроссбраузерной и кроссмейлерной верстке почтовых рассылок. Под словом кроссмейлерность подразумевается — корректное отображение верстки во всех почтовых клиентах. Я считаю, что статья вполне актуальна, в виду того, что на хабре эта тема несколько раз освещалась, но некоторые нюансы были неточными, а другие просто устарели. По долгу службы я долгое время занимался версткой html расылок по всему миру, и приведенные ниже правила будут касаться следующих почтовых клиентов и веб-интерфейсов: MS Outlook 2003-2010, mail.ru, rabmler почта, Яндекс почта, Gmail, Yahoo! Mail (Classic), Thunderbird 2.0-3.0, Hotmail, Windows Live Mail, Apple Mail 3-4, AOL Mail, Lotus Notes 8-8.5.
Читать дальше →
Всего голосов 150: ↑146 и ↓4+142
Комментарии81

HTML в PDF

Время на прочтение2 мин
Количество просмотров120K
html to pdf

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

Статистика для пользователей с использованием Piwik

Время на прочтение4 мин
Количество просмотров11K
После того как мы вынесли наших пользователей на поддомены, нам захотелось иметь подробную статистику по каждому поддомену в отдельности, а также иметь возможность предоставлять эту статистику пользователю. Конечно, можно вручную подключать все поддомены к Google Analytics/Я.Метрика, но когда поддоменов становится достаточно много эта задача начинает выглядеть излишне сложной.

Захотелось какого-то автоматизированного решения, и оно было найдено в виде системы статистики с открытым исходным кодом Piwik. Эту систему можно установить на свой сервер, добавить в нее ваш сайт и пользоваться. Она предоставляет функционал, в основном аналогичный GA и Я.Метрика, + имеется возможность написания собственных плагинов (например для себя я разработал виджет «вчера-сегодня-прогноз», аналогичный по функционалу такому же блоку из яндекс.метрики).

Сначала для тестов система вела статистику по 1 домену и 1 поддомену, и справлялась с этим вполне успешно, полностью заменив для меня Я.метрику и GA. Соответсвенно было принято решение использовать Piwik API для реализации автоматического подключения статистики к пользовательским поддоменам. Требовалось выполнить следующее:
  1. Создать пользователя в системе Piwik
  2. Создать сайт в пивике
  3. Выдать пользователю права для просмотра статистики по сайту
  4. Получить id сайта для установки счетчика

Читать дальше →
Всего голосов 34: ↑29 и ↓5+24
Комментарии11

Тонкости регулярных выражений. Часть 1: метасимволы внутри и вне символьных классов

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

Вместо вступления



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

Что бывает, когда начинающий программист в первый раз узнает про регулярные выражения? Чаще всего первое знакомство с ними происходит методом «научного тыка», поскольку ни знаний в соотвествующей области, ни понимания «как это работает» обычно на данном этапе у человека нет. Почему так происходит?

Читать дальше →
Всего голосов 76: ↑66 и ↓10+56
Комментарии69

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

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

Модели жизненного цикла программного обеспечения

Время на прочтение3 мин
Количество просмотров485K
Здравствуйте, уважаемые хабровчане! Думаю будет кому-то интересно вспомнить какие модели разработки, внедрения и использования программного обеспечения существовали ранее, какие модели в основном используются сейчас, зачем и что это собственно такое. В этом и будет заключаться моя небольшая тема.
Читать дальше →
Всего голосов 40: ↑27 и ↓13+14
Комментарии13

Кладезь полезной информации

Время на прочтение1 мин
Количество просмотров2.7K
«Чем больше я знаю, тем больше понимаю, что ничего не знаю».

Даже если вы уже давно не чайник и не боитесь увеличить относительный уровень своего незнания — попробуйте проделать на своей машине:
sudo apt-get install fortunes-ubuntu-server
а потом просто вызывайте
/usr/bin/ubuntu-server-tip

Многократный мысленный оргазм гарантирован.
Вот просто некоторые примеры:
  • Для создания копии файла без дублирования пути файла используйте команду '$
    cp /long/path/to/file/name{,.orig}', которая создаст копию файла с суффиксом ".orig".
  • Если вы выполнили команду и забыли про 'sudo', вы можете набрать 'sudo !!'
    для вторичного запуска предыдущей команды с использованием 'sudo'.
  • Последующие команды обычно принимают аналогичный аргумент. 'Alt-.' вставляет
    последний аргумент предыдущей команды. Чтение документации рулит!

Приятного чтения!
Всего голосов 180: ↑169 и ↓11+158
Комментарии111

#1 Организация активных продаж в веб-студии

Время на прочтение10 мин
Количество просмотров66K
Привет, хабр. Я собираюсь опубликовать небольшой цикл материалов, посвященный бизнесу веб-студий (интерактивных агентств) и его развитию. Начну с нескольких материалов о продажах.

В условиях кризиса продажи стали узким местом почти для всех небольших и не очень веб-студий. Я хочу поделиться своими соображениями по организации одной из трех составляющих продаж в компании.

Итак, продажи в веб-студии делятся на три типа:
  • Новые продажи со входящего потока (заказчик обращается с запросом сам). Расширение данного канала – основная задача внешнего маркетинга и PR компании.
  • Повторные продажи по текущим клиентам. Увеличение продаж по данному направлению – одна из важных задач службы клиентского сервиса.
  • Холодные/активные продажи (инициируется контакт с заказчиком, который не проявлял до этого интереса к компании).

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

Сразу оговорюсь – ни про какой спам и прочие массовые безадресные акции речь не пойдет.
Читать дальше →
Всего голосов 68: ↑61 и ↓7+54
Комментарии35

Информация

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