Pull to refresh
8
0
crazyprog @crazyprog

User

Send message

Разработка дополнений только что стала проще

Reading time3 min
Views4.1K
[Developer Hub Logo]С превеликой радостью объявляем, что мы только что запустили Add-on Developer Hub (beta) — всеобъемлющий сборник сведений, где разработчики дополнений могут выяснить, зачем они пожелали бы изготовить дополнение, и как делают дополнения, и управлять списками своих дополнений.

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

Новые идеи по АПИ RabbitMQ AMQP для PHP

Reading time2 min
Views2.9K
Недавно опубликовал разработанное ранее PHP API для RabbitMQ «AMQP теперь и для РНР»

При обсуждении было предложено сделать PHP API более объектной моделью,
более близкой к модели, предложенной в Протоколе AMQP.

Код немного усложнится, но объектная модель будет более красивой,

Прежде чем перейти к кодированию, представляю на обсуждение новое API
Читать дальше →

Выполнение фоновых процессов из PHP в Windows

Reading time2 min
Views2K
В *nix, запуска фоновых процессов, выполняется простым добавлением амперсанда (&) к команде. В Windows, это не так просто сделать из PHP.

Если вы используете в PHP функции системных вызовов, как exec, system, passthru или shell_exec, то эти методы приводят к подвисанию программы, которая ждет завершения работы вызванного процесса.

Описанные ниже методы предполагают, что вы используете PHP-CLI (работу с php из командной строки). Запуск PHP на веб-сервере требует правильной настройки конфигурации и прав доступа, такие как safe_mode, safe_mode_exec_dir и т.д.

Для примера, мы хотим вызвать cmd из PHP, но чтобы программа продолжала выполнять действия.
Приведенные ниже примеры не работают.
exec(«cmd»);
exec(«cmd >NUL»);
exec(«cmd /c cmd»);
exec(«start /b cmd»);
exec(«runas cmd»);

В каждом случае, PHP ждет пока cmd закроется.

Существуют несколько обходных путей, упомянутых в комментариях к документации по PHP к функции exec()

Краткое изложение этих методов, в порядке предпочтения:

Начало процесса с использованием popen и pclose

Этот код должен работать на Linux и Windows.
$exe = «cmd.exe»;
pclose(popen('start «bla» "'. $exe. '" '. escapeshellarg($args), 'r'));

Начало фонового процесса с использованием объекта WScript.Shell

Этот код работает только в Windows.
$WshShell = new COM(«WScript.Shell»);
// Запуск cmd в свернутом состоянии
$oExec = $WshShell->Run(«cmd», 7, false);
// Запуск cmd в фоновом режиме, иконка на панели задач не выводится
$oExec = $WshShell->Run(«cmd /C dir /S %windir%», 0, false);

Более подробнее о методе Run() читайте в msdn.

Начало фонового процесса с использованием утилиты PsExec
Этот метод требует установки бесплатной утилиты PsTools от Sysinternals
exec(«psexec -d cmd.exe»);

Автор этого текста root{Собака}imcms.ru можете отправит ему инвайт.

Алгоритм: избавляемся от паролей на разные ресурсы — используем почтовый ящик

Reading time1 min
Views537
Очередная идея о том, как избавится от кучи паролей к разным веб-ресурсам и сделать жизнь человечества проще.

Универсальная система логина на сайте:
  • Пользователь заходит сайт и вводит свою почту.
  • Ему посылается письмо с секретным URLом.
  • По заходу на этот URL — он оказывается авторизованным, а письмо может удалить(может и оставить на будущее).

Так выглядит общая схема :) Что имеем в итоге — авторизовались на ресурсе, не имея дополнительного логина и пароля — используется только почта. Ну и никаких дополнительных сервисов/библиотек не требуется — все достаточно просто.

Теперь прикинем минусы данного подхода и как их можно обойти…
Читать дальше →

Системы резервного копирования

Reading time4 min
Views4.2K
Несколько месяцев назад начал заниматься/разбираться в системах резервного копирования. Все полезные доки/ссылки я сохраняю у себя в заметках.
Много чего накопилось, решил поделиться записями, полезными ссылками и личным опытом.
Читать дальше →

Google Sites открыл API

Reading time1 min
Views2.6K
Команда разработчиков wiki-конструктора сайтов Google Sites объявила о выпуске новых API, которые войдут в стандартизированный набор Google Data API. С помощью этих интерфейсов контент Google Sites становится доступным для импорта, экспорта, редактирования и обновления, в том числе сторонними программами.

В первую очередь это должно обрадовать корпоративных клиентов. Именно они должны вовсю начать использовать появившиеся возможности. Вот некоторые примеры.
  • Обновление Google Sites из CRM-систем.
  • Импорт файлов и контента из корпоративных систем вроде Microsoft SharePoint и Lotus Notes.
  • Экспорт страниц Google Sites для редактирования в офлайне, а потом повторный импорт обновлённого контента.
  • Экспорт сайтов целиком для бэкапа, с сохранением всей истории изменений.

Список возможностей можно продолжать, потому что весь контент Google Sites становится доступным через стандартный протокол Google Data.

Потребительская Экспертная социальная сеть

Reading time2 min
Views369
Наше агентство мобильного маркетинга (СМС рассылки) постоянно сталкивается с отсутствием конструктивной связи между потребителями и поставщиками товаров и услуг. Возможно это какая то региональная особенность, но трудно очень простому обывателю совершать покупки не посещая места продаж непосредственно и далее риск приобретения некачественного товара или услуги и т.д. И поставщики не видят своего покупателя. Вот поэтому пытаюсь возможно кривовато представить на суд некой экспертной, потребительской сети где:
Пользователи на своих страницах могут выбирать и фиксировать любимые торговые марки и предпочтения для:
1. Прямго контакта с поставщиками товаров и услуг региона. Знакомства с ассортиментом и обзор комментариев. Получение информации от компаний.
2. Получение или генерация на странице электронной скидки штрих-кода на телефон. (друга история чем бесконечное количество пластиковых дисконтов).
3. Общение по различным темам, товарам, услугам и т.д. Обмен информацией.
4. Возможность оставить пожелания в коментах или блогах пожелания приобретения услуги и описание её качества.
5. Получать вознаграждение за идеи продаж, организацию акций и проектов, привлечение покупателей.

Поставщики.
1. Компании региона имеют страницы с кратким описанием и ссылкой на основной сайт с возможностью размещения на своей странице каталога продукции.
2. Посетители могут рекомендовать перечень товаров, которыми пользуются, наименование служит ссылку на каталоги.
3. Опросы. Рейтинги. Акции привлечения внимания, по средствам сарафанного радио.

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

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

Идеи. Любые идеи по улучшению качества предоставления товаров и услуг. Конкурсы-заявки с призовым фондом от компаний.
Будем благодарны за комментарии, потому как все технологии выше обозначенные давно существуют и работают, но огромное количество не продвинутых пользователей о них даже не догадывается.
Вопрос продвижения, это другой вопрос…

Потребительская Экспертная социальная сеть

Reading time2 min
Views390
Наше агентство мобильного маркетинга (СМС рассылки) постоянно сталкивается с отсутствием конструктивной связи между потребителями и поставщиками товаров и услуг. Возможно это какая то региональная особенность, но трудно очень простому обывателю совершать покупки не посещая места продаж непосредственно и далее риск приобретения некачественного товара или услуги и т.д. И поставщики не видят своего покупателя. Вот поэтому пытаюсь возможно кривовато представить на суд некой экспертной, потребительской сети где:
Пользователи на своих страницах могут выбирать и фиксировать любимые торговые марки и предпочтения для:
1. Прямго контакта с поставщиками товаров и услуг региона. Знакомства с ассортиментом и обзор комментариев. Получение информации от компаний.
2. Получение или генерация на странице электронной скидки штрих-кода на телефон. (друга история чем бесконечное количество пластиковых дисконтов).
3. Общение по различным темам, товарам, услугам и т.д. Обмен информацией.
4. Возможность оставить пожелания в коментах или блогах пожелания приобретения услуги и описание её качества.
5. Получать вознаграждение за идеи продаж, организацию акций и проектов, привлечение покупателей.

Поставщики.
1. Компании региона имеют страницы с кратким описанием и ссылкой на основной сайт с возможностью размещения на своей странице каталога продукции.
2. Посетители могут рекомендовать перечень товаров, которыми пользуются, наименование служит ссылку на каталоги.
3. Опросы. Рейтинги. Акции привлечения внимания, по средствам сарафанного радио.

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

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

Идеи. Любые идеи по улучшению качества предоставления товаров и услуг. Конкурсы-заявки с призовым фондом от компаний.
Будем благодарны за комментарии, потому как все технологии выше обозначенные давно существуют и работают, но огромное количество не продвинутых пользователей о них даже не догадывается.
Вопрос продвижения, это другой вопрос…

Резервное копирование mysql-базы. мой путь =)

Reading time2 min
Views2.1K
Задача стояла такая – часто бэкапить базу + экономить место на харде.
Прочитав одну статейку по созданию инкрементального бэкапа для дампов через diff понял что это всё бредятина какая-то.
Промелькнула мысль – а почему бы не заливать дамп базы в git? Ведь можно будет и откатиться на нужный коммит, и склонировать репозиторий для экспериментов, и вкушать все прелести данной системы. =)
Сразу определися – я делал всё под FreeBSD. Следовательно под Linux нужно будет подпилить напильничком.
Ну, начинёмс! Сначала ставим гит (если нет в системе)!
Предварительно обновив порты пишем cd /usr/ports/devel/git && make install clean
Git поставился. Выбираем место для папки с бэкапом базы и создаём папку mkdir /backup/bases/test
Далее cd /backup/bases/test и инициализируем там репозиторий командой git init
Я написал скрипт который дампит базу потаблично, добавляет файлы в репозиторий и создаёт коммит с датой бэкапа

#!/usr/local/bin/bash
backupurl=”/backup/bases/test”
for i in `/usr/local/bin/mysql -e “use test;show tables;” -uUSER -pPASS|tr -d “|”|grep -v “Tables_in_”`;do /usr/local/bin/mysqldump –quick –skip-extended-insert –dump-date=false –compact=true -uUSER -pPASS test $i >$backupurl/$i.sql;done
/usr/local/bin/mysqldump -uUSER -pPASS –no-data test > $backupurl/structure.sql #отдельно бэкапим структуру базы
cd $backupurl
/usr/local/bin/git add . #добавляем файлы
sleep 2
/usr/local/bin/git commit -am “backup `date +%d.%m.%y.%H.%M`” #коммит с чилом и временем


Запечатываем данный скрипт в файл, делаем его исполняемым и плюхаем в крон.
Далее после нескольких бэкапов заходим в папку с бэкапом базы и пишем git log – вам выведется история наших бэкапов.
Напоследок:

  • Читайте документацию по гиту
  • Поставьте в крон (в зависимости от объёмов базы… лично у меня раз в сутки) команду cd /backup/bases/test && git gc – это серьёзно сжимает репозиторий
  • Для отката желательно склонить репозиторий и сделать откат через git reset HEAD^^
  • Опция –skip-extended-insert ОБЯЗАТЕЛЬНА. она запрещает расширеные инсерты которые сводят на нет всю мою затею с гитом

как способ изучения Английского

Reading time1 min
Views19K
Многие из читателей хабра регулярно слушают разные подкасты, этот полезный вид времяпрепровождения можно сделать ещё более полезным, если слушать подкасты на английском.

Поделюсь теми, на которые подписан я:

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

Новый взгляд на JavaScript инъекции

Reading time2 min
Views1.9K
Недавно столкнулся со следующей задачей — существует JavaScript объект actions с кучей методов, в каждом из которых должны быть определены следующие переменные:

var persik    = this,     
      actions  = persik.actions,      
      next     = ( persik.dom.возможноЕщёЧтоТо.имяЭтогоМетода.next)? 
          persik.dom.возможноЕщёЧтоТо.имяЭтогоМетода.next : function(){return false}; 


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

Анонимный web-серфинг с Android

Reading time2 min
Views6.2K
image
Группа разработчиков Digital Technology Group (DTG) от Кембриджского Университета выпустила приложение для платформы Android, которое позволяет пользователям данной платформы анонимно путешествовать по сети, используя The Onion Router, который часто называют просто TOR. Это свободная программа, разработанная с целью предоставить пользователям возможность анонимного серфинга. Данная программа работает на основе технологии peer2peer, это значит, что используя соединение через распределенную сеть серверов, поддерживаемыми энтузиастами со всего мира, предотвращается возможность опеределения сайтами физического положения пользователя.
Читать дальше →

4 шага чтобы стать новым медиа

Reading time2 min
Views826
Примечание переводчика: Что такое медиа-компания нового типа, я писал здесь и здесь. О том, как работает такая организация, писал здесь, здесь и здесь. Бизнес-модели для нее – здесь, здесь и здесь.
Данная статья описывает, как стать такой новой медиа-компанией, как перестроить работу своего СМИ на новый лад. Статью я перевожу не полностью, только важнейшие постулаты.

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

Джефф Дин раскрывает тайны Google

Reading time1 min
Views1.2K
Гугл никогда не сообщал, сколько серверов работает в его Дата-Центрах и как они работают. Но вот, на недавней конференции, Джефф Дин, один из инженеров, работающих в компании с 1999г, выступил с презентацией, в которой он рассказал, что разрабатывает систему автоматического распределения ресурсов, называемую Spanner.
Система позволяет динамически выделить ресурсы для обработки данных и способна задействовать от 1 до 10 миллионов серверов. При этом автоматические выбирается наиболее дешевый вариант выполнения, учитывающий трафик и электричество.

Я советую открыть презентацию (PDF), если вас интересуют масштабируемые системы, высокая нагрузка, кластеризация, Дата-Центры и паралельные вычисления.
Читать дальше →

Настройка mysql для репликаций по ssl (Debian, Ubuntu)

Reading time5 min
Views2.2K
Статья для тех, кому нужно настроить репликации типа master-slave на сервере mysql, используя защищенное соединение. Когда возникла необходимость, я столкнулся с недостаточностью информации на русском о настройке репликации и практически с полным отсутствием информации, как это сделать, используя ssl. В конце концов поднять репликации мне удалось. Хочу поделиться опытом и нарытыми ссылками.
Читать дальше →

Написание базового wave-робота на python'e

Reading time6 min
Views4.6K
Слава Роботам
По лету мне достался инвайт в гугльвейв песочницу. Но в этой самой песочнице было очень много народу, все волны были публичными, и мой бедный нетбук только с большим скрипом переваривал всю эту активность, так что, немного поигравшись, на сендбокс я забил :)

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

Мини-обзор или впечатления от покупки — Acer Revo R3600 (двухядерный Atom 330)

Reading time3 min
Views14K
Приобрел намедни этот замечательный девайс.
image Характеристики таковы:
Процессор: Intel Atom 330 1.6 ГГц
Оперативная память: 1024 МБ DDR2-800MHz
Видео: GeForce 9400M с поддержкой HD 1080р
HDD: SATA, 160 GB, 5400 rpm
Беспроводная связь: IEEE 802.11g
Операционная система: Linux (RevoBoot)
Слоты для карт памяти: SD, MMC, xD, MS
Разъемы: 6 x USB 2.0, VGA, RJ-45, HDMI, e-SATA
Размеры (ширина х высота х глубина) 3.8 x 19.5 x 20 см


Подробности в продолжении… (трафик)
Читать дальше →

Шифрование отдельной части PHP-скрипта

Reading time3 min
Views4.5K
Многие из тех, кто программируют на PHP, сталкивались с необходимостью шифрования своих скриптов в байткод для передачи на сторону. Слава богу, в наши дни существует огромный ассортимент PHP Encoder'ов, — как говорится, на любой вкус и цвет!

Мы же в своей работе столкнулись с нетривиальной задачей. Требовалось скрыть лишь некоторую часть кода, — функцию, содержимое которой не должен увидеть никто, кроме нас.

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

Information

Rating
Does not participate
Location
Зеленоград, Москва и Московская обл., Россия
Registered
Activity