Прикручиваем Paypal для оплаты

Одной из самых популярных платежных систем в буржунете является Paypal. Поэтому желающие прикрутить ее к своему сайту для оплаты товаров и услуг встречается очень часто на любом фрилансерском сайте, например, на RentACoder. Но так, как россиянам Paypal разрешает иметь только send only аккаунты, у нас эта платежная система не прижилась.

Сделать кнопку «Buy now» совсем не сложно, это простейшая форма вот такого вида:













Когда пользователь произведет оплату, он будет перенаправлен на URL, указанный в параметре return. После этого Пейпал сам отправит уведомление о поступившем платеже на notify_url, только эти данные подлежат тщательной проверке, поскольку любому злоумышленнику не составит особого труда сформировать POST-запрос на notify_url. Поэтому полученные данные надо перезапросить у paypal еще раз, добавив к запросу параметр cmd со значением _notify-validate. И если paypal подтвердит совершенный платеж, транзакцию можно считать завершенной.

Для сторонних разработчиков Paypal предусмотрел специальный сервис Paypal Sandbox, который позволяет тестировать весь процесс приема платежей, с одним небольшим ограничением. В paypal sandbox не работает IPN (Instant Payment Notification), когда уведомление о платеже отправляется на notify_url. Для отладки скриптов по обработке IPN в песочнице сделали отдельный инструмент Instant Payment Notification (IPN) simulator.

ICQ? Jabber? Skype!

Для общения с коллегами я раньше использовал только ICQ. Но с тех пор, как у меня стали появляться заказчики с RentACoder, мне пришлось использовать и другие способы связи.

Удивительно, но аська популярна в основном у нас, на пространстве бывшего СССР. Большинство буржуинов из моего контакт-листа используют Yahoo! Messenger, значительная часть пользуется MSN Messenger А вот Jabber’ом пользуются единицы, несмотря на все преимущества этого протокола обмена сообщениями.

Компания AOL частенько портит кровь пользователям альтернативных клиентов ICQ, меняя протокол сообщений, что приводит к неработоспособности клиентов вроде QIP. Последняя гадость от AOL случилась 21 января, и затронула значительную часть людей из моего контакт-листа. Поэтому я и стараюсь перевести все свои контакты на другие протоколы обмена сообщениями.

Пока мне больше всего нравится Jabber, но им пользуются единицы. Есть даже Jabber-клиенты с возможностью голосового чата, например Google Talk и Jabbin. Ho так как я пользуюсь OpenSUSE, Google Talk мне не подходит. А Jabbin как проект, к сожалению, заглох. Последнее обновление программы было в 2006 году. Нормальных джаббер-клиентов с поддержкой голосового или видео чата не нашел, поэтому и пришлось поставить Skype и Gizmo.

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

О пользе nginx

Вот уже болльше 2-х лет я пользуюсь хостингом от FirstVDS и MiniVDS, причем для моих небольших нужд вполне хватает самых дешевых тарифов, на которых дается всего 64 Мб RAM. Свободной памяти у меня практически никогда не бывает, но все сервисы стабильно работают.

Я всерьез задумался, а есть ли смысл включать nginx. Кроме статики, у меня еще есть куча скриптов; причем php работает как модуль apache. Да и сам nginx тоже будет висеть в памяти и есть ресурсы.

Удивительно, но после того, как я у себя включил nginx, apache стал есть меньше памяти. И как выяснилось, это заслуга nginx.

Зачастую апач генерит страницу быстрее, чем отдает ее клиенту; особенно, если клиент имеет не очень хороший канал. И пока он ее отдает, процесс висит в памяти и жрет системные ресурсы. Вот тут и приходит на помощь nginx, который работает как прокси. Он мухой забирает все, что сгенерил апач, и отдает все это добро клиенту. Апач же, законив свою грязную работу, спокойно умирает.

Включить nginx в панели ISPmanager можно одним кликом мыши, и уже через пару-тройку минут можно будет видеть результат. У меня, правда, процесс не совсем корректно отработал, nginx стартовал, а апаче почему-то нет. Пришлось апач запустить вручную. И еще, если автоматически созданные поддомены сделаны вручную через mod_rewrite, возможно некорректное отоборажение картинок на сабах. В этом случае придется вручную править правила раздачи картинок с поддоменов для nginx

Как сбросить пароль в mysql

Иногда бывают ситуации, когда рутовый пароль на базу MySQL проебали где-то потерялся, и его надо срочно перезадать. Если есть доступ к shell на сервере, то сделать это достаточно просто:

1. Останавливаем mysqld:

/etc/init.d/mysqld stop

2. Запускаем mysqld без проверки прав доступа:

mysqld_safe –skip-grant-tables &

3. Заходим под рутом и перебиваем пароль:

mysql -u root -D mysql
mysql> update user set password=password(‘new_password’) where user=’root’;

4. Обновляем права доступа:

flush privileges;

5. Выходим, убиваем mysqld и запускаем его снова:

mysql> exit;
/etc/init.d/mysqld stop
/etc/init.d/mysqld start

Красота-то какая…

Настоящая русская зима

Иногда надо отдыхать. А сейчас самое время, чтобы вырваться в лес и покататься на лыжах. Приятного отдыха.

Парсинг поисковых систем

Yahoo! Logo

Обычно поисковые системы не позволяют себя парсить простым смертным. Например, великий и ужасный Google банит айпишник на несколько часов, если делать запросы слишком часто. А еще гугл иногда выдает свою аццкую капчу, и иногда меняет форматирование своей выдачи, что осложняет жизнь нашим коллегам.

Однако, есть и дружелюбные поисковики, которые вполне официально разрешают себя парсить. Всего лишь надо зарегистрировать аккаунт на Yahoo, получить app id key и настроить свой парсер, благо API под него доступно там же на самых популярных языках программирования.

Никаких пауз между запросами, никакой подделки юзерагента или сбрасывания cookie делать не надо, все работает быстро и надежно. Выдачу можно забирать в XML, что значительно упрощает парсинг. Однако не стоит забывать, что в термсах Yahoo прописаны ограничения: не более 5000 запросов с одного IP. Как видите, ничто не запрещает использовать все доступные IP адреса для получения желаемого результата.

Особенности работы с RentACoder

Rent A Coder

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

Чтобы рядом с вашими бидами в системе засиял заветный значок Top Coder, надо выполнить следующие условия:

  • Надо выполнить не менее трех проектов на RentACoder
  • Набрать не менее 5000 очков
  • Иметь средний рейтинг не ниже 9 баллов
  • Не иметь ни одной плохо оцененной работы (рейтинг ниже 4 баллов)
  • После выполнения каждой работы заказчик и кодер имеют возможность оценить друг друга по десятибальной шкале, и этот рейтинг очень важен. Он влияет на расчет количества очков в общем зачете кодеров.

    Количество набранных очков рассчитывается по следующей схеме. Берется сумма законченного проекта и умножается на рейтинг. Т.е. 5000 очков можно получить выполнив проекты на сумму $500 с рейтингом 10, или выполнив проекты на сумму $1000 с рейтингом 5.

    Заказчики так же получают свою оценку. Если кодеру не понравилось поведение заказчика, постановка задачи или еще что-то, то у заказчика средний рейтинг понизится. Но это не единственный показатель, на который смотрит кодер при оценке своего заказчика.

    Например, если заказчик выставил Bid Request и не выбрал ни одного кодера для его выполнения, то карма у заказчика портится. В общем, понятно почему, он же отнял драгоценное время многих кодеров на то, чтобы прочитать его запрос, и дать свой бид. Этот показатель называется Non-action Ratio, на него тоже стоит обращать внимание прежде, чем браться за bid request.

    Еще одна важная деталь. Очень часто заказчик сомневается в квалификации кодера, если он с ним ни разу не работал. Поэтому зачастую он просит демо-версию программы/скрипта/сервиса. Чтобы наглядно показать заказчику, что может ваш скрипт, вам понадобится свой хостинг. Shared хостинг сразу отпадает, поскольку хостер вас может вежливо попросить съехать, если ваш скрипт будет мешать другим клиентам. Dedicated server для демо целей слишком дорог, его лучше использовать под готовые серьезные проекты. Вам будет достаточно VDS от FirstVDS.ru, поскольку ничего другого сопостовимого по соотношению цена/качество вы не найдете.

    См. также по теме: RentACoder: удаленная работа для программиста

    Paypal заговорил по-русски

    Paypal заговорил по-русски

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

    Для работы с Paypal вполне подходят карты Visa Virtuon и Visa E-C@rd банков ВТБ и ВТБ24; не тратьте деньги на более дорогие карты, поскольку карты Visa Classic от ВТБ и ВТБ24 с Paypal не работают.

    RentACoder: удаленная работа для программиста

    Rent A Coder

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

    Обязательное условие — приличное владение английским языком, поскольку большинство заказчиков англоязычные. Регистрируемся здесь как кодер, настраиваем свое резюме, предпочтения, опыт работы и обязательно подписываемся на RSS сообщения с новыми бидами.

    Система работает так. Заказчик выставляет свою задачу, и описывает ее например так:

    Hello,

    We currently have a functioning school management website. We need a coder who will take all static text on the website and make it to be loaded from the database. We have a page in admin where we have ‘pages’, we need this to be extended to include all text on the entire website. Additionally, it should be possible to add new pages and they appear in a top menu.

    Further, there are two tiny changes we also need:

    1. We have a comment text field. It should be made bigger using CSS
    2. The list of ‘events’ displays on the frontpage. Currently about 10 are displayed. We need this list expanded to show 40

    Заказчик выбирает ценовую категорию для проекта (например, Project Type: Very Small Business Project: under $100(USD)) и может выставить максимальный приемлемый для себя бид (в данном случае Max Accepted Bid: $60.00 (USD)).

    Кодеры читают задачу, и если их она устраивает, отвечают на нее своим бидом. Заказчик смотрит на биды кодеров, историю их работы, рейтинги и прочие факторы, и решает, а работать ли дальше. Он может отказаться от своего предложения (cancel), либо выбрать чей-то бид.

    Как правило, другие подробности работы заказчик описывает кодеру после того, как кодер принял бид. Заказчик переводит деньги в пользу RentACoder (escrow), и они после выполнения работы и принятия ее заказчиком, переходят в пользу кодера (за вычетом комиссии системы).

    Есть несколько тонкостей в работе. Если кодер в течение 24 часов после принятия бида заказчиком понимает, что по какой-то причине не сможет справиться с задачей, он обязан уведомить заказчика об этом и подать заявку на отказ от задачи. Это так называемый grace period, в течение которого кодер может безболезненно для себя и для заказчика отказаться от работы, не получив негативного рейтинга. Заказчику при этом возвращаются все переведенные в пользу RentACoder деньги.

    Если кодер все сделал вовремя, результат работы (без исключений) должен быть прикреплен к задаче для проверки и принятия ее закачиком. После успешного принятия работы кодер получает свои деньги, работа добавляется в портфолио и кодер получает рейтинг. Заказчик также получает рейтинг.

    Если же закачик или кодер чем-то недовольны, все споры решаются независимым арбитражом.

    Комиссия системы составляет 15%, но не менее 3 USD. Выплаты производятся по тому графику, который выбирает кодер (устанавливается минимальная сумма для выплаты (например, $100), и выбирается график выплат — в начале следующего месяца либо по окончании двухнедельного срока).

    Выплаты производятся 4-мя способами:

  • перевод на банковский счет (этот способ годится и для россиян)
  • перевод Western Union
  • выплаты на карту Payoneer Prepaid Mastercard (если ее нет, они ее сделают и вышлют)
  • выплаты в Paypal (для граждан бывшего СССР этот способ оплаты не подойдет)
  • Система очень удобная, довольно много соотечественников уже работает с ней. Категории задач встречаются самые разные, от настройки серверов до разработки крупных порталов, от перевода статей на другие языки до SEO-задач.

    Система удобна не только для кодеров, но и для заказчиков; поэтому этот сервис и стал таким популярным. Конкуренция там весьма высокая, поскольку среди кодеров встречаются и индусы, и китайцы, готовые работать за гроши. Они сильно демпингуют, но для кодеров с хорошим портфолио они серьезной конкуренции не представляют.

    В общем, регистрируйтесь и пробуйте, наверняка сервис понравится и вам.