Pull to refresh
22
0
Дмитрий Рублёв @dmitryrublev

Консультант

Send message

О «чистоте» мобильного веба, мошенниках и рекламе

Reading time6 min
Views22K
Покажите мне только богатого человека, и я отниму у него деньги.
С деньгами нужно расставаться легко, без стонов.
Остап Бендер

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

Мобильный интернет еще достаточно молод и правила игры в нем до конца не сформировались. Это в большом вебе все привыкли к тому, что есть мошенники, надо ставить антивирусы и файрволлы, либо пользоваться операционными системами, где вирусы не распространяются.
Так же не стоит забывать, что практически в каждом мобильном устройстве есть механизм отъема денег у пользователей — sim карта.

О проблеме уже писали несколько раз на хабре, и вообще — http://bit.ly/ReGcFd.
В интернете информации тоже полным полно — статья википедии, например. Само по себе мобильное мошенничество невозможно без привлечения новых и новых "клиентов". Один из самых "дешевых" способов — это реклама в мобильном интернете. К моему удивлению, даже известные сети мобильной рекламы не борются с мошенниками. Примеров тому множество. Из последнего — вот эта статья на хабре.
Если вы размещаете на своих ресурсах рекламу самостоятельно, то вы тоже не защищены от мошенников, т.к. когда сервис становится массовым, остро встает вопрос модерации. В случае, если модерацию проводит не специалист в этой области, риск разместить "алярм" возрастает. В этом плане сети ИМХО даже несколько безопаснее, чем самостоятельное размещение рекламы, т.к. там запрет мошенничества как минимум заявлен.
Под катом я расскажу о видах мошенничества и о том как мы выявляем мошенников в plus1.wapstart.ru

Читать дальше →
Total votes 55: ↑46 and ↓9+37
Comments30

Шпаргалка начинающего Debian/Ubuntu администратора по управлению пакетами

Reading time3 min
Views292K
Долгое время меня глодало незнание того, как сделать некоторые элементарные вещи в дебиановских менеджерах пакетов, но, как часто бывает, спросить рядом было не у кого, а до написания куда-либо руки не доходили. И вот наконец вопросы вызрели и я написал свой вопрос в дебиановскую рассылку. Естественно оказалось что пропустил что-то очевидное, но и узнал много неочевидных полезностей, посему решил набросать шпаргалку, авось кому пригодится.
Читать дальше →
Total votes 103: ↑90 and ↓13+77
Comments64

Управляем питанием и «возвращаем» Пуск в Windows 8

Reading time1 min
Views32K
meDveD_spb:
Самое печальное, что Win8 уже RTM и такой она и выйдет.

Управляем питанием


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



Возвращаем Пуск
Total votes 71: ↑43 and ↓28+15
Comments111

Разрабатываем социальную сеть на MODx Revolution

Reading time5 min
Views22K
MODx развивается стремительными темпами, и я решил попробовать сделать социальную сеть на этом замечательном движке. Ведь в нем давно уже есть возможность работать с пользователями (регистрация, авторизация и пр.), встроенный механизм сообщений пользователей, он умеет работать с изображениями и много чего еще.

Для начала давайте разберемся с пользователями, дадим им возможность писать статьи, например, или добавлять свои события.
Читать дальше →
Total votes 23: ↑15 and ↓8+7
Comments14

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

Reading time3 min
Views8.1K
Как уже, наверное, всем известно, в PHP 5.3 появилась поддержка специального типа архивов с расширением .phar. Те, кто не в курсе — могут почитать отличную статью .phar — исполняемые PHP-архивы
Область применения, которая сразу приходит на ум — это библиотеки/фреймворки в виде подключаемых *.phar архивов и установщики веб-приложений, например, CMS. О последних я и собираюсь рассказать подробнее и с примерами.

Постановка задачи


Цель — получить на выходе один файл, который будет сам по себе исполняемым, и будет содержать в себе все нужные файлы. Если провести аналогию c обычными приложениями — это приложение, которое запаковано в SFX (self-extracting archive).
Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments13

Повышаем безопасность стека web-приложений (виртуализация LAMP, шаг 6/6)

Reading time10 min
Views22K

Настройка и использование nginx

Мы завершаем перевод цикла статей сайта cyberciti.biz, посвященного виртуализации LAMP-стэка. Речь в заключительном материале пойдет об установке и настройке реверс-прокси nginx.

nginx — open-source продукт, использующийся не только в качестве веб-сервера или реверс-прокси сервер. За его легковесность и бережное отношение к ресурсам его используют и в качестве балансировщика нагрузки (от тупого round-ribbon, до более осмысленного, но тут все туманно прим.пер.) и/или в качестве прокси-решения для организации доступа к службам виртуальной сети, установленной в предыдущих статьях цикла, через один внешний хост-адреса, например через IP 202.54.1.1 (как это было рассмотренное в примерах прежде).
Читать дальше →
Total votes 24: ↑16 and ↓8+8
Comments5

Написание программ на PHP с использованием fork()

Reading time5 min
Views37K

Параллельные программы на PHP


Раньше заголовок темы был «Написание многопоточных программ на PHP». В PHP есть ровно один «нормальный» способ писать приложения, которые используют несколько ядер/процессоров — это fork(). О прикладном использовании системного вызова fork() в языке PHP и расширения pcntl я и расскажу. В качестве примера мы напишем достаточно быструю параллельную реализацию grep (со скоростью работы, аналогичной find . -type f -print0 | xargs -0 -P $NUM_PROCS grep $EXPR).
Читать дальше →
Total votes 111: ↑89 and ↓22+67
Comments62

Фриланс как средство заработка. Ч.1. Старт проекта

Reading time5 min
Views43K
В предыдущих своих постах я постарался рассказать о том, как взаимодействуют фрилансер и заказчик. Большинство мыслей, представленных в этих статьях, были самим собой разумеющимся, на что мне указывали, и не раз. Сегодня я бы хотел начать разговор о том, как мы, благополучно пройдя все перипетии первоначального обсуждения, начинаем проект. Я опять буду банален до безобразия, вновь и вновь буду перетирать то, что каждому понятно. Но, как показывает практика, все мы с упорством мазохистов наступаем на одни и те же грабли.
Читать дальше →
Total votes 59: ↑46 and ↓13+33
Comments19

PHP process manager

Reading time8 min
Views21K
image

Всем привет!

На Хабре было много статей, о том как писать демоны на PHP и другие fork-нутые вещи. Хочу поделится с вами своими наработками на схожую, но все-таки несколько другую тему — управление несколькими PHP процессами.
Читать дальше →
Total votes 62: ↑46 and ↓16+30
Comments53

PHP: фрактал плохого дизайна

Reading time32 min
Views206K

Предисловие


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

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

PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
Читать дальше →
Total votes 450: ↑392 and ↓58+334
Comments538

20 вещей, которые я должен был знать в 20 лет

Reading time3 min
Views717K
1. Мир пытается оставить тебя тупым. Начиная от банковских платежей и процентов и заканчивая чудо-диетами — из необразованных людей легче вытрясти деньги и ими проще управлять. Занимайтесь самообразованием столько, сколько можете — для того, чтобы быть богатым, независимым и счастливым.
Читать дальше →
Total votes 544: ↑445 and ↓99+346
Comments544

Экспорт избранного Хабра в FB2

Reading time2 min
Views9.5K
Ненавижу длинные вступления
И поэтому не буду писать их даже под спойлером.

  • Зачем?
    • Для оффлайнового просмотра на читалках.
  • Моя читалка не поддерживает FB2!
  • Хочу!
    1. Обзаводимся Python 2.7+. Тестировалось на Python 2.7.3.
    2. Ставим библиотеку BeautifulSoup 4. Вкратце варианты:
      • apt-get install python-beautifulsoup4
      • easy_install beautifulsoup4
      • pip install beautifulsoup4
      • Исходники и python setup.py install
    3. Качаем код из репозитория (прямая ссылка на последнюю версию).
    4. Открываем файл habrafav.py и в строке username = ... прописываем свой логин.
    5. python habrafav.py (или просто habrafav.py под Windows)
    6. Ждём. У меня с кэшированными данными экспорт ~150 статей занимает около 6 минут и 600 Мб оперативной памяти.
    7. Забираем habrahabr_favorites.fb2. Мой занимает примерно 62 Мб.

Читать дальше →
Total votes 88: ↑81 and ↓7+74
Comments50

Профилирование PHP-кода

Reading time3 min
Views36K
Профилирование PHP-кода

Рано или поздно каждый из нас сталкивается с унаследованным кодом и его оптимизацией. Дебаггер и профилировшик в такой ситуации — лучшие помощники программиста. У тех кто работает с PHP, благодаря Дерику Ретансу (Derick Rethans) есть хороший инструмент — xDebug. Информации касательно xDebug много даже в рунете, поэтому речь в этой статье пойдет не о нем.

Наткнувшись на упоминание о профилировщике для PHP я сразу подумал об xDebug ( о проприетарных инструментах от Zend я давно уже успел позабыть ), но на этот раз ошибся — речь пойдет об XHProf.
XHProf

Этот профилировшик был разработан специально для Facebook, а исходный код его был открыт в марте 2009 года.
Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments20

Kinect + DSLR = 3D-киносъёмка

Reading time1 min
Views7.1K


Игровой контроллер Kinect, как известно, работает на базе инфракрасного проектора с монохромной КМОП-материцей — он вполне подходит на роль 3D-сканера для составления трёхмерных моделей. Если подключить Kinect к цифровой камере, а результат съёмки обработать в специальной программе, то можно создавать очень необычные кинематографические эффекты. Именно для этого предназначен open source программный пакет RGBD Toolkit (проект на github).
Читать дальше →
Total votes 45: ↑29 and ↓16+13
Comments21

Удобная работа с LocalStorage. Ну и с SessionStorage заодно

Reading time3 min
Views24K
Хочу представить вашему вниманию библиотеку для удобной работы с Local и Session Storage. Она появилась, как побочный продукт работы над проектом и содержит несколько довольно удобных функций. Библиотека поддерживает все современные браузеры, а именно:

  • Internet Explorer 8+
  • Mozilla Firefox 3.5+
  • Google Chrome 4+
  • Safari 4+
  • Opera 10.5+

Помимо традиционных — set/get/inc/dec, есть набор удобных «вкусностей»:

  • inc работает со строками
  • extend для объектов
  • много методов для работы с массивами
    • обычные append/prepend/takeLast/takeFirst/getLast/getFirst
    • с проверкой уникальности — .appendUnique/.prependUnique
    • во все append/prepend методы можно передавать лимит — удобно для организации MRU списков
  • calls chaining — я от него в восторге :)

Если заинтересовал — прошу под кат за примерами. Мне кажется они достаточно хорошо показывают возможности библиотеки.

Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments19

Таблицы в учетных системах

Reading time8 min
Views9.5K
Когда-то давным давно угораздило меня попасть в мир учетных систем, да не просто учетных, а работающих через Web. Много воды утекло с тех пор, много систем родилось, некоторые из них уже погибли. Это очень динамичный мир. В этом мире множество систем, от брутальной, умудренной сединами , до совсем молодой Acumatica. Есть гламурненькие Эльба с FinoBox, есть и крутой Мегаплан, есть мой любимый, суровый, но симпатишный Oreodor. Во всех них очень умные формы, ещё более умная (чем пользователь) навигация, ну, и таблицы! Давайте подойдем ещё ближе.

Все это Web, все это работает, все функционально, а функционала много.
Хотите посмотреть?
Total votes 40: ↑38 and ↓2+36
Comments59

PHP for Android project

Reading time1 min
Views12K
image Думаю, начать стоит со Scripting Layer for Android (SL4A). Это така я штука, которая позволяет работать со скриптовыми языками на андроиде. Про запуск скриптов под SL4A, в частности на Python уже писали на хабре. Вот я и решил от скуки немного покурить самокрутку Android+PHP :). Есть такой проект, PHP for Android project (PFA).
Читать дальше →
Total votes 46: ↑26 and ↓20+6
Comments19

Наглядный пример использования замыканий в PHP

Reading time2 min
Views12K
Начиная с версии 5.3, PHP позволяет создавать замыкания. К сожалению, пример их использования в официальной документации http://www.php.net/manual/en/functions.anonymous.php#example-163 (example 3) обладает редкой изощрённостью и надуманностью. Надеюсь, пример под катом поможет увидеть в замыканиях другое применение, кроме как с функциями типа array_map().
Читать дальше →
Total votes 60: ↑41 and ↓19+22
Comments40

Защита для NGINX — NAXSI

Reading time3 min
Views38K

Что такое NAXSI ?


NAXSI = NGINX ANTI XSS & SQL INJECTION
Проще говоря, это файрвол веб-приложений (WAF) для NGINX, помогающий в защите от XSS, SQL-инъекций, CSRF, Local & Remote file inclusions.
Отличительными особенностями его являются быстрота работы и простота настройки. Это делает его хорошей альтернативой например mod_security и апачу.

Зачем нужен NAXSI ?

Очевидно, лучше всего защищаться от вышеперечисленных атак правильно написанным кодом. Но есть ситуации, когда WAF (и в частности naxsi), поможет:
  • Низкое качество кода сайта, при отсутствии возможности/ресурсов все выкинуть и переписать нормально.
  • “Закрытый” код, в котором невозможно исправить ошибки.
  • Неизвестное качество кода в важном для бизнеса участке.


Читать дальше →
Total votes 102: ↑100 and ↓2+98
Comments60

Information

Rating
Does not participate
Location
Woodland Hills, California, США
Date of birth
Registered
Activity