babai @babai
Пользователь
Выбираем сервис массовых почтовых рассылок
4 мин
71KПривет, Хабр!
В этом топике я бы хотел рассмотреть три сервиса, чтобы читатель мог определиться, какой из них более подойдет для его бизнеса. Несмотря на то, что двое из испытуемых являются комплексными системами ведения маркетинга, я заострю внимание лишь на возможности проведения массовых почтовых рассылок. В роли кандидатов выступают следующие сервисы:
Изображения кликабельны.
В этом топике я бы хотел рассмотреть три сервиса, чтобы читатель мог определиться, какой из них более подойдет для его бизнеса. Несмотря на то, что двое из испытуемых являются комплексными системами ведения маркетинга, я заострю внимание лишь на возможности проведения массовых почтовых рассылок. В роли кандидатов выступают следующие сервисы:
Изображения кликабельны.
+11
Обфускация JavaScript
5 мин
195KВ статье собраны всем известные методы и предельно извращенные. Эту статью я решил написать после недавнего прочтения поста в блоге Badass JavaScript и решил её дополнить своими находками.
Он всем известен — обфускация минимизаторами такими как JS Packer, JSmin, YUI Compressor, Closure compiler или можно просто пугуглить «JavaScript Obfuscator» и найдется ещё сто штук разных обфускаторов.
Они превращают существующий код
В какой-то такой вид:
Или такой:
Или вот такой:
Но ничего не стоит его восстановить с помощью jsbeautifier.org либо просто убрать eval и получить исходный код, многое потеряем, но смысл кода восстановим. Ну и с первого взгляда мы видим, что перед нами 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.
Все это были цветочки под катом жесткие методы обфускации.
+159
Сборник советов и фактов по оптимизации PHP-скриптов
9 мин
45K Эту статью давно стоило переписать (слишком много «экономии на спичках»), но руки не доходят. Пускай весит и напоминает о том, как мы глупы в молодости.
Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы.
В этой статье я бы хотел представить на суд общественности свой сборник советов и фактов по оптимизации скриптов. Сборник собирался мною достаточно долго, основан на нескольких источниках и личных экспериментах.
Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы.
В этой статье я бы хотел представить на суд общественности свой сборник советов и фактов по оптимизации скриптов. Сборник собирался мною достаточно долго, основан на нескольких источниках и личных экспериментах.
+31
Материальная помощь идеям
4 мин
16KМногие авторы несбывшихся стартапов жалуются на то, что получить инвестиции проект, находящийся только на стадии идеи, почти невозможно. Инвесторы хотят обязательно посмотреть и пощупать уже что-то работающее, а еще лучше уже зарабатывающее деньги.
Но работающие и тем более зарабатывающие проекты все равно начинаются с хорошей команды и хорошей идеи. Кто и как может помочь тем хорошим людям, у которых есть хорошая идея для стартапа?
Мы решили помочь идеям делом. Главстарт готов проинвестировать в проекты на стадии идеи, которым для доведения до стадии готового продукта требуется до 12 месяцев и до 100 тыс. долларов.
А теперь расскажем об этом подробнее.
Но работающие и тем более зарабатывающие проекты все равно начинаются с хорошей команды и хорошей идеи. Кто и как может помочь тем хорошим людям, у которых есть хорошая идея для стартапа?
Мы решили помочь идеям делом. Главстарт готов проинвестировать в проекты на стадии идеи, которым для доведения до стадии готового продукта требуется до 12 месяцев и до 100 тыс. долларов.
А теперь расскажем об этом подробнее.
+32
Про «белую» зарплату
1 мин
6KХотите знать, сколько отдаёт стандартная веб-студия, выплачивая «белую» зарплату? Посчитаем!
Пусть система налогообложения УСН (6%) со всеми вытекающими льготами.
Пусть чистыми на руки сотрудник получает, например, 1000 руб. (для простоты расчетов).
Сейчас
НДФЛ: (1 000 / 0.87 )=1 149
Взносы в ПФР: 1 149 * 1,14 = 1 310
Итого: + 31%
Пусть система налогообложения УСН (6%) со всеми вытекающими льготами.
Пусть чистыми на руки сотрудник получает, например, 1000 руб. (для простоты расчетов).
Сейчас
НДФЛ: (1 000 / 0.87 )=1 149
Взносы в ПФР: 1 149 * 1,14 = 1 310
Итого: + 31%
+150
ОГО! Светодиодный кубический дисплей 8×8×8 [видео]
1 мин
30KПеревод
Поглядите на этот гиктастический¹ трёхмерный куб светодиодов 8×8×8, созданный пользователем chr на сайте «Instructables»:
Хотите сделать себе такой? Тогда просто последуйте этому *гм* простому
___________________
¹ В первоисточнике — «geektastic» (от слов «geek» — гик и «fantastic» — фантастический).
² В комментариях опубликован перевод этого пособия, который изготовил sir06Will.
+121
WXHR: старый добрый XHR со вкусом Web Workers
4 мин
2.7KБывают ситуации, когда веб-приложению требуется поднять кучу данных с сервера, раскодировать их и отправить дальше по назначению. Примером этому может быть онлайн 3d редактор, где каждая модель может занимать несколько мегабайт в gzip'аном json'e.
Что же делать когда браузер среднего пользователя подвисает на секунду или даже больше при загрузке и распаковке данных?
1. Придумать что-нибудь на flash (я не уверен на 100%, но некоторые браузеры запускают плагины в основном потоке)
2. Загружать данные кусками, обрабатывать кусками.
3. Попросить пользователя сделать апгрэйд компьютера.
Все 3 варианта не очень, правда?
Под катом элегантное решение (без лишних скриптов и дописывания кода приложения) этой проблемы.
Что же делать когда браузер среднего пользователя подвисает на секунду или даже больше при загрузке и распаковке данных?
1. Придумать что-нибудь на flash (я не уверен на 100%, но некоторые браузеры запускают плагины в основном потоке)
2. Загружать данные кусками, обрабатывать кусками.
3. Попросить пользователя сделать апгрэйд компьютера.
Все 3 варианта не очень, правда?
Под катом элегантное решение (без лишних скриптов и дописывания кода приложения) этой проблемы.
+21
Я его слепила из того, что было
18 мин
45K Надеюсь, еще не забыты те времена, когда я писал дотошно подробную статью [ зеркало ] про установку системы жидкостного охлаждения в компьютер. Информация была необычна тем, что там я рассматривал весь процесс на достаточно сложном примере – редкий корпус сложной конструкции, внутри которого была поставлена задача эффективно охлаждать более чем производительную начинку.
Тогда многие попросили рассказать про саму начинку – а раз пообещал…
Тогда многие попросили рассказать про саму начинку – а раз пообещал…
+82
Перехват cookie в реальном времени в открытых WiFi-сетях
1 мин
64KНа видео показан угон сессии вконтакте.ру, который почему-то до сих пор не использует авторизацию с https и передает пароли открытым текстом.
Дамп трафика собирается программой kismac в формате libpcap и параллельно парсится grep-ом с использованием регулярных выражений, что позволяет в реальном времени выводить на экран все интересующие куки и пароли. При этом не используется никаких анализаторов пакетов.
regexp для перехвата вконтакте.ру:
tail -F pcap.файл | cat | grep -aEo «remixsid=[0-9a-f]+|l=[0-9]{3,12}|p=[0-9a-f]{36}|email=[^&]+&pass=[^ ]+»
для фейсбука:
c_user=[0-9]+|sid=[0-9]{1,5}|xs=[0-9a-f]{32}
Аналогичная конструкция будет работать и с дампом собранным с помощью airdump-ng.
+143
Обзор свежих материалов, ноябрь 2010
5 мин
671Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель, май-июнь, июль, август, сентябрь, октябрь.
+52
Геттеры и сеттеры в Javascript
5 мин
48KJavascript — очень изящный язык с кучей интересных возможностей. Большинство из этих возможностей скрыты одним неприятным фактором — Internet Explorer'ом и другим дерьмом, с которым нам приходится работать. Тем не менее, с приходом мобильных телефонов с актуальными браузерами и серверного JavaScript с нормальными движками эти возможности уже можно и нужно использовать прям сейчас. Но по привычке, даже при программировании для node.js мы стараемся писать так, чтобы оно работало в IE6+.
В этой статье я расскажу про интересный и не секретный способ указывать изящные геттеры и сеттеры и немножко покопаемся в исходниках Mootools. Частично это информация взята из статьи John Resig, частично лично мой опыт и эксперименты.
В этой статье я расскажу про интересный и не секретный способ указывать изящные геттеры и сеттеры и немножко покопаемся в исходниках Mootools. Частично это информация взята из статьи John Resig, частично лично мой опыт и эксперименты.
function Foo(bar){ this._bar = bar; } Foo.prototype = { get bar () { return this._bar; }, set bar (bar) { this._bar = bar; } };
+80
Настройка и оптимизация MySQL сервера
9 мин
312KВ этой статье будут описаны различные настройки MySQL, преимущественно те, которые влияют на производительность. Для удобства все переменные разделены по разделам (базовые настройки, ограничения, настройки потоки, кэширование запросов, тайминги, буферы, InnoDB). Сначала уточним имена некоторых переменных, которые изменились в версии 4 MySQL, а в сети продолжают встречаться и старые и новые варианты имен, что вызывает вопросы.
+162
css opacity и select-ы
2 мин
13KСовсем недавно натолкнулся на один занимательный CSS баг/фичу, решил поделиться, возможно кому пригодится.
Нужно было на сайте создать выбор городов из списка, стандартный список не подошел по эстетическим соображениям, результат должен был выглядить как «ссылка» при клике на которой выпадает список доступных городов, задача банальна, но тут случайно наткнулся на занимательное поведение браузеров, причем как оказалось у всех одинаковое.
Нужно было на сайте создать выбор городов из списка, стандартный список не подошел по эстетическим соображениям, результат должен был выглядить как «ссылка» при клике на которой выпадает список доступных городов, задача банальна, но тут случайно наткнулся на занимательное поведение браузеров, причем как оказалось у всех одинаковое.
+60
Плагин, превращаем input text в «калькулятор»
1 мин
3.4KПо долгу службы написал плагин zeninput для jQuery, многим он понравился, решил поделиться с общественностью.
Пользователям нашего сервиса часто приходится вводить несколько сумм и дабы не утруждать их поисками калькулятора был написан данный плагин, он превращает обычный intput text в калькулятор.
В плагине обрабатываются события onready, onerror, onfocus, onblur и т.д. поэтому его можно расширить как захочется. Также блокируется ввод неподходящих символов.
Работоспособность проверялась в IE6-8 и Браузерах.
Поиграться с плагином можно на странице с демками, там же выложено более подробное описание, событий.
UPD1 dohlik :)
Пользователям нашего сервиса часто приходится вводить несколько сумм и дабы не утруждать их поисками калькулятора был написан данный плагин, он превращает обычный intput text в калькулятор.
В плагине обрабатываются события onready, onerror, onfocus, onblur и т.д. поэтому его можно расширить как захочется. Также блокируется ввод неподходящих символов.
Работоспособность проверялась в IE6-8 и Браузерах.
Поиграться с плагином можно на странице с демками, там же выложено более подробное описание, событий.
UPD1 dohlik :)
+102
Установка nginx в качестве фронт-энда для денвера
4 мин
8KТуториал
В последнее время установка nginx в качестве проксирующего веб-сервера и для отдачи статики становится довольно распространенной практикой в интернете. Но кроме этого, nginx можно использовать для кучи других полезных вещей: автоматический ресайз картинок, удобные динамические поддомены и т.д.
Раньше для тестирования настроек nginx мы пользовались копией продакшн сервера, но сегодня наконец-то мне надоело каждый раз заходить на сервер чтобы попробовать какую-нибудь мелочь, и я решил настроить nginx на локальной windows-машине, в качестве сервера на которой установлен денвер.
Почему именно денвер? Потому что я считаю что это самый быстрый и прстой способ развернуть необходимое для разработки окружение на windows-машине. Конечно, любители настраивать все мелочи вручную со мной не согласятся, но мне кажется что тонкая настройка — удел продакшн-серверов, а на локальной машине достаточно и настроек по-умолчанию.
Сразу предупрежу, что статья ориентирована в основном на новичков, и гуру врядли найдут в ней что-то интересное.
Раньше для тестирования настроек nginx мы пользовались копией продакшн сервера, но сегодня наконец-то мне надоело каждый раз заходить на сервер чтобы попробовать какую-нибудь мелочь, и я решил настроить nginx на локальной windows-машине, в качестве сервера на которой установлен денвер.
Почему именно денвер? Потому что я считаю что это самый быстрый и прстой способ развернуть необходимое для разработки окружение на windows-машине. Конечно, любители настраивать все мелочи вручную со мной не согласятся, но мне кажется что тонкая настройка — удел продакшн-серверов, а на локальной машине достаточно и настроек по-умолчанию.
Сразу предупрежу, что статья ориентирована в основном на новичков, и гуру врядли найдут в ней что-то интересное.
+5
База GeoIP – страны и города
1 мин
72KПри разработке одного проекта встала задача – определить по IP-адресу посетителя его страну и город, на русском языке. Поиск готового решения оказался безуспешным – русскоязычные базы стран можно найти (например, wipmania.com), но баз городов нет. Помощь пришла из-за границы, в лице англоязычного maxmind.com. База была приведена к нормальному состоянию (MySQL) и частично переведена на русский язык с помощью нескольких справочников (~6,000 названий, с учетом городов-тезок ~15,500). Результат этой работы доступен для свободного скачивания.
+82
Пошаговая установка Node.js на Windows без виртуалок
3 мин
59KЭта статья предназначена для тех, кого бесят мильён левых служб и драйверов, которые ставят любые виртуалки. Тем, кто будут ставить доп. пакеты Node.js
Все остальные могут скачать скомпилированный Node.js node-js.prcn.co.cc
Или же установить Node.js из-под виртуалки nodejs.ru/25
Прошу под кат
+40
Вы наверное шутите, мистер Дал, или почему Node.js — это венец эволюции веб-серверов
8 мин
29KNode.js — вещь, вокруг которой сейчас много шума, восторженных отзывов и гневливых выкриков. При этом, по моим наблюдениям, в умах людей закрепилось следующее представление о том что же такое Node.js: «это штука, позволяющая писать на JavaScript на серверной стороне и использующая JavaScript-движок от Google Chrome». Поклонники языка восторженно вздохнули: «Ах! Сбылось!», противники же процедили сквозь зубы: «Ну вот только еще этой ерунды с прототипами и динамической типизацией нам на серверах не хватало!». И дружно побежали ломать копья в блоги и форумы.
При этом многие представители обоих лагерей придерживаются мнения, что Node.js — это эзотерическая игрушка, веселая задумка для переноса языка браузерных сценариев на «новые колеса». Дабы быть до конца честным, признаюсь, что я так же придерживался подобной точки зрения. В один прекрасный момент, я набрался духу и решил «копнуть поглубже». Выяснилось, что создатель Node.js Райан Дал далеко не фанатик, а человек, пытающийся решить реальную проблему. А его творение — не игрушка, а применимое на практике решение.
+227
Генератор надежных и запоминаемых паролей на Javascript
3 мин
16KПредставляемый генератор паролей создает относительно легко запоминающиеся и, в тоже время, трудноподбираемые пароли. Основная идея состоит в том, что пароли генерируются на основе слогов и поэтому выглядят как слова или словосочетания. Для лучшего запоминания используются заглавные буквы в начале каждого слога.
Проект на Google.Code:
code.google.com/p/jspassgen/downloads/list
Пример работы можно посмотреть здесь:
бизнес-книги.рус/ext/jspassgen/example.html
+36
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность