Как стать автором
Обновить
46
0
Андрей Юношев @YoungSkipper

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

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

Как я подключался к QIWI

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

Зачем мне это было нужно?


Проект настойчиво требовал подключения удобных платежных систем. Да, есть webmoney, но не у всех. Да, есть moneybookers для карточек, но слишком долог бюрократический процесс.

Было принято решение принимать платежи через QIWI, во-первых потому что их автоматы есть практически везде, а во-вторых (тссс, большой секрет!) они готовят запуск системы прямых платежей со счета сотового оператора, без всяких дурацких СМС и девяностодевятипроцентных комиссий.

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

Сказано – сделано!


Для сайта был взят вполне заурядный VDS, на котором собран вполне заурядный же серверный набор – nginx спереди, Apache позади.

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

Для работы с SOAP проще всего взять с гуглокода класс nuSOAP (http://code.google.com/p/nusoap-for-php5/).

Затем нам надо сделать две вещи:
  1. Отправку на сервер QIWI информации о попытке платежа
  2. Прием от QIWI на наш сервер пакета с информацией об изменении статуса платежа.

Документация, жаль, что не очень подробная, есть здесь: https://ishop.qiwi.ru/docs/OnlineStores_Protocols_SOAP.pdf
Читать дальше →
Всего голосов 71: ↑67 и ↓4+63
Комментарии56

Интервью с разработчиком iPhone-приложений

Время на прочтение1 мин
Количество просмотров4.6K
Константин Павлихин, разработчик из Deep IT, рассказывает о простоте, сложностях и подводных камнях разработки приложений для iPhone.

Всего голосов 56: ↑29 и ↓27+2
Комментарии28

Как люди покупают безопасность

Время на прочтение2 мин
Количество просмотров901
Люди постоянно стараются уйти от риска, когда дело касается доходов и наоборот стараются рискнуть, чтобы уйти от потерь. Если вы дадите людям следующий выбор: “Получить гарантировано $500 или бросание монеты, чтобы получить $1,000″. Около 75% выберут гарантированную прибыль. А теперь рассмотрим противоположную ситуацию: “Проиграть гарантировано $500 или рискнуть на $1,000″. Здесь противоположная тенденция, 75% выберут риск.

У людей в головах отсутствует стандартизованная модель оценки рисков. Компьютер не увидит различий между 2-мя приведенными выше ситуациями – это всего лишь степень того, насколько вы предрасположены к риску, но люди видят. Данный факт не следует рассматривать как некий сговор. Когда он впервые был озвучен, он перевернул экономическую теорию. Данный факт получил название “теория перспектив”.
Читать дальше →
Всего голосов 81: ↑62 и ↓19+43
Комментарии36

Загрузка браузером нескольких файлов

Время на прочтение5 мин
Количество просмотров30K
Если нужно дать пользователю возможность загрузки нескольких файлов, традиционное решение на данный момент — использовать для этой цели Flash (реже — Java applet или ActiveX). В случае, если соответствующий плагин недоступен, пользователю, как правило, показывают стандартный HTML-элемент для загрузки файла.

Последнюю ситуацию можно улучшить, если использовать встроенную в браузеры возможность множественной загрузки файлов. Из всех браузеров сейчас данную возможность не поддерживает только Internet Explorer (впрочем, мы ещё не видели девятую версию, может там что-то изменится), остальные браузеры — Opera 9 и выше (а так же версии 3.5—6.05), Firefox 3.6+, Chrome 3.0.191.0+ и Safari 4.0.1+ такую возможность предоставляют.

Достаточно написать что-то вроде
Copy Source | Copy HTML
  1. <form enctype="multipart/form-data" method="post">
  2.    <input type="file" min="1" max="9999" name="file[]" multiple="true" />
  3.    <input type="submit" name="submit" />
  4. </form>
PHP оказался готов к такой конструкции (именно для него в параметре «name» стоят квадратные скобки), он просто разложит загружаемые файлы по элементам массива $_FILES, если только мы не используем «Оперу».

К сожалению, «Опера» (ещё с версии 3.5) отправляет, при использовании мультизагрузки, файлы в контейнере «multipart/mixed», который PHP не понимает.

Я попробовал исправить эту ситуацию.
Читать дальше →
Всего голосов 119: ↑107 и ↓12+95
Комментарии67

Hello World! как ему следует быть на C в Linux

Время на прочтение3 мин
Количество просмотров52K
Очень многие начинающие программисты думают, что знают, как написать Hello World. Естественно, с этого примера ведь и начинается большинство учебников.
А давайте посмотрим, как это делается.
Обычно в учебнике по C эта программа выглядит примерно так:
#include <stdio.h>
void main()
{
    printf("Hello world\n");
}

Читать дальше
Всего голосов 226: ↑161 и ↓65+96
Комментарии134

Работа с массивами в bat

Время на прочтение6 мин
Количество просмотров56K
Прочитав пост Свой сапер на своих батниках и пробежавшись по коду, наткнулся на комментарий, что в батниках нет массивов (кстати, в последней версии Сапера, о котором идёт речь в том посте, нет этого комментария). Так вот, если в батнике необходимо использовать некоторый набор значений, то логично объявить такое кол-во переменных, которое требуется и работать с ними. Собственно данный сценарий эту задачу помогает решить проще. Вот несколько примеров:

echo Создание массива А:
call :array new A "'one','two','three','foo','bar'"
echo Получение третьего элемента в result:
call :array get A 3 result
echo %result%
echo Изменение нулевого элемента
call :array set A 0 "первый элемент"

подробнее
Всего голосов 47: ↑39 и ↓8+31
Комментарии32

Аналог Time Machine для Windows

Время на прочтение3 мин
Количество просмотров24K
Time Machine Каждый из нас иногда теряет информацию. По своей ошибке (дрогнувшая рука, не вовремя нажатые клавиши CTRL+S), либо по неудачному стечению обстоятельств (выбило пробки, завис компьютер). Иногда речь идет о пустяках. Бывает, что приходится заново выполнять работу. В худшем же случае, ценная информация оказывается безвозвратно утеряна.

Все мы знаем, что необходимо периодически делать бэкапы. Знаем, но не делаем. А если и делаем, то, по закону подлости, когда надо, копия месячной давности — это лучшее, что удается найти. А ведь случается и так, что утерянный файл было создан всего лишь пару часов назад.
Когда я не мог определиться с темой диплома, один знакомый рассказал мне про TimeMachine от Apple и предложил сделать аналог для Windows. Непрерывная защита данных – это то, о чем я всегда подсознательно мечтал.
Читать дальше →
Всего голосов 131: ↑127 и ↓4+123
Комментарии110

Делаем освещение в квартире по датчику движения

Время на прочтение3 мин
Количество просмотров166K
датчик Наверняка все слышали про технологию «умный дом». Одно из самых популярных применений этой технологии в автоматическом освещении — например, включение и выключение света при появлении или уходе людей из помещения. В этой статье хотелось бы показать, что ничего сверхествественного в этом нету, и реализовать эту возможность может любой человек. Итак, попробуем подключить к обычной лампочке Ильича в коридоре датчик движения, и заставим освещение работать в зависимости от наличия людей в помещении.
Читать дальше →
Всего голосов 181: ↑163 и ↓18+145
Комментарии224

О монадических технологиях

Время на прочтение6 мин
Количество просмотров3.5K
Кирпичёв правильно пишет про небрежность интуитивного понимания императивных языков: http://antilamer.livejournal.com/300607.html.

Однако, мне кажется, что важно было бы озвучить, что всё то, что сейчас скрывается под именем «монада» — само по себе достаточно спутанно в плане педагогики и евангелизма.  Классическая шутка SPJ/Вадлера звучит как «нам следовало назвать ЭТО warm fuzzy things, чтобы не пугать людей теоркатом».  Шутка поразительно недальновидная.   Проблема лежит в той же плоскости, что и называние стоящих перед тобой задач словом «stuff» (это то, с чем борется Аллен в своём GTD).  
Монады в настоящий момент являются миру как сложный ком из исторически обусловленных причин, проблем, решений, технических возможностей и теоретических основ (как алгебраических, так и аспектов теории вычислений). 
Все эти наслоения можно (и нужно) расщепить в первом приближении так (порядок приблизительно случайный):
  • стремление к экспликации эффектов (чистое внедрение императивно-подобных моментов в вычисление), (см. труды Вадлера);  здесь мы включаем ввод-вывод, STM, параллельные вычисления и проч.)
  • удобный механизм для материализации базовых микро-стратегий вычисления — вызов функции (call-by-name/call-by-value), многозначность, смена состояния (присваивания!), обработка исключений, останов при неудаче, continuations, бэктрекинг;
  • typeclasses как механизм внесения монад в язык, и как следствие — удобный механизм для мета-перехвата вычисления (невероятно удобно для domain-specific embedded languages);
  • строгая проверка типов, проистекающая из использования typeclasses, и позволяющая механически проверять корректность использования объектов;
  • существование монадических законов, в которые укладываются монады, что позволяет материализовывать абстрактные комбинаторы; это позволяет находить порой неожиданные изоморфизмы между различными предметными областями, а также помогает при оптимизации и верификации программ;
  • проработанная теоретическая основа (теория категорий), на которой базируются монады; это облегчает жизнь создателям базовых библиотек, на которых потом базируется всё реальное программирование;
  • монады — лишь один из классов в длинной цепочке интересных алгебраически обусловленных классов, некоторые из которых слабее монад, а некоторые — сильнее: Functor, Applicative, Monoid, Traversable, Foldable, Monad со товарищи, Arrow со товарищи;
  • стремление к материализации некоторых видов вычислений в алгебраическую структуру (моноидальные вычисления); это открывает широкий простор для оптимизаций, верификации программ, создания абстрактных комбинаторов, а также устранение unbounded recursion — по мощности результатов это похоже на то, как когда-то ввод-вывод был надежно изолирован в IO Monad;

Потратим по паре абзацев на каждый пункт.
Читать дальше →
Всего голосов 49: ↑33 и ↓16+17
Комментарии103

Приложение 3.х на устройстве 2.х

Время на прочтение1 мин
Количество просмотров462
    Как вам наверно извесно, счастливые обладатели iPod Touch не спешат с обновлением своей игрушки до последней версии. Толи религия не позволяет. Толи потому что обновление платное. Вобщем причина не так важна. Для нас програмистов это выливается в требования вида «Хочу чтобы, поставив приложение на 3.0, мог выбирать песенку и на 2.0 чтобы можно было запустить.» О том как это можно сделать будет описано в этой коротенькой статье.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии5

Программирование Magic: the Gathering — §2 Карта

Время на прочтение8 мин
Количество просмотров3.3K
Продолжим наше обсуждение программирования Magic the Gathering. Сегодня мы обсудим то, как формируется объектная модель конкретной карты. Поскольку карты взаимдействуют со всеми участниками системы (с игроками, другими картами, и т.д.), мы также затронем вопросы реализации базового поведения карт. Как и предже, мы будем использовать экосистему .Net, хотя в будущем (намек) мы увидим использование неуправляемого С++. Также, для примеров мы воспользуемся картами 8й и поздних редакций.[1]

Предыдущие посты: §1

Читать дальше →
Всего голосов 51: ↑37 и ↓14+23
Комментарии65

Visual Studio 2010 Beta 2 доступна для скачивания

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


Именно так: Visual Studio 2010 Beta 2 доступна для скачивания, правда пока для подписчиков MSDN. Но это означает, что со дня на день новая студия будет доступна для скачивания и всем другим. В наличии:

* Visual Studio 2010 Ultimate Beta 2 Web Installer;
* Visual Studio 2010 Beta 2 — DVD [Ultimate, Professional, Premium, Express];
* Visual Studio 2010 Team Foundation Server Beta;
* Visual Studio 2010 DSL SDK Beta 2;
* Visual Studio 2010 SDK Beta 2;
* Visual Studio 2010 Isolated Shell Beta;
* Visual Studio 2010 Team Explorer Beta 2;
* Visual Studio 2010 Test Elements Beta 2;
* Visual Studio 2010 Team Agents Beta
* Visual Studio 2010 Remote Debugger Beta 2;
* .Net Framework 4 Full Beta 2.

Замечательное событие! Качайте, устанавливайте, знакомьтесь. Нововведений — масса.

PS: появилось подтверждение того, что каждый сможет скачать VS 2010 Beta 2 в среду twitter.com/scottgu/status/4994532053
PS2: новое лого у студии! подробнее уже сейчас
Всего голосов 85: ↑60 и ↓25+35
Комментарии75

Программирование Magic: the Gathering — §1 Мана

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

Хочется начать посты про программирование Magic: the Gathering (M:tG), и начнем мы пожалу с самого простого – с концепции «маны». Мана – это то, чем оплачиваются все заклинания. Несмотря на то, что с виду маны всего 5 типов, на самом деле все чуть-чуть сложнее. Давайте попробуем разобраться.


Читать дальше →
Всего голосов 101: ↑73 и ↓28+45
Комментарии100

Основы

Время на прочтение8 мин
Количество просмотров13K
Сегодня я постараюсь рассказать самые основы, такие, как базовые типы данных, типы функций, ФВП, списки (в том числе и бесконечные).

Последующие статьи:
Типы данных, паттерн матчинг и функции
Классы типов, монады
Читать дальше →
Всего голосов 72: ↑69 и ↓3+66
Комментарии162

Открылся Stack Overflow Careers

Время на прочтение1 мин
Количество просмотров2.6K
image

Популярнейший ресурс для разработчиков stackoverflow.com сообщает об открытии нового раздела Careers, который нацелен на предоставление помощи разработчикам в их профессиональной карьере. Вот что пишут авторы проекта (перевод не дословный):

«Мы верим в то, что каждый профессиональный разработчик должен иметь работу, которую он любит… Поэтому наш ресурс преследует две цели:

* избежать „гетто спама по ключевым словам“ (keyword-spam-free-resume ghetto), доступ к вашему резюме будет платным (номинально) для компаний ищущих персонал;
* позволить опционально интегрировать ваше резюме с вашим профилем на stackoverflow.com, так что вы получите возможность показывать ваши навыки автоматически без постоянного пополнения резюме, просто проявляя активность на сайте (отвечая на вопросы пользователей).»

Тем, кто задумывается над поиском работы зарубежом стоит обязательно попытаться попробовать проект. Ресурс очень популярный, с развитием нового проекта, он будет привлекать массу работников по поиску персонала.

PS: лучшего блога для заметки не нашел
Всего голосов 54: ↑47 и ↓7+40
Комментарии6

Помощь в отладке для Visual Studio — Debugger Visualizers

Время на прочтение3 мин
Количество просмотров9.7K
Microsoft Visual Studio - Debugger
Отладка любой программы сложна сама по себе и что бы, ее хоть как то облегчить – можно воспользоваться визуализаторами для Visual Studio (Debugger Visualizers).

Визуализатор – это компонент пользовательского интерфейса отладчика Visual Studio. Он создает диалоговое окно или другой элемент интерфейса, в котором переменная или объект отображается осмысленным образом, подходящим для этого типа данных. Например, HTML-визуализатор интерпретирует строку HTML и отображает результат в том виде, в каком она будет выглядеть в окне обозревателя, визуализатор точечных рисунков распознает структуру точечного рисунка и отображает его и т. д. Некоторые визуализаторы позволяют не только просматривать, но и редактировать данные.

Отладчик Visual Studio содержит четыре стандартных визуализатора. Это визуализаторы текста, HTML и XML, которые работают со строковыми объектами, и визуализатор наборов данных, который работает с объектами DataSet, DataTable и DataView.

Кроме стандартных визуализаторов из поставки Visual Studio, существуют еще и другие — вот о них и пойдет речь дальше.
Читать дальше →
Всего голосов 62: ↑52 и ↓10+42
Комментарии13

Интересная статистика для тех, кто продвигает свои iPhone приложения

Время на прочтение1 мин
Количество просмотров2.2K
В данной статье в сжатом виде собрана статистика, которая будет интересна тем, кто создает и продает свои iPhone приложения в AppStore.

Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии22

MVC на iPhone: «The Model» (Часть 1)

Время на прочтение8 мин
Количество просмотров2.9K
CocoaTouch с самого начала создавалась с прицелом на парадигму MVC. Практически все шаблоны, представления и их контроллеры для пользователя уже готовы. Ключевые классы — "UIView" и "UIViewController". Во многих случаях метод "UIView" применим сам по себе — с добавлением элементов пользовательского интерфейса в общий "UIView" в редакторе IB. Для создания собственных функций добавляем подклассы к "UIViewController". Спецификаторы "IBOutlet" позволяют связывать элементы пользовательского интерфейса с представлением, обеспечивая к ним доступ.

А как быть с понятием «Model»? О нем информации я практически не нашел. В уроках по программированию с моделью предпочитают не работать, набирая код непосредственно в контроллерах.

Добившись, как мне показалось, неплохих результатов с реализацией, я предлагаю их здесь для обсуждения и оценки. Изложу вкратце. Я создаю класс "Singleton", расширяющий "NSObject" для моей модели. Потом посредством наблюдения за ключами/переменными узнаю об обновлениях. Это во многом напоминает "ModelLocator" из "Cairngorm", если кому-то приходилось работать с ним во "Flex".

Для начала создадим проект с парой представлений.
Читать дальше →
Всего голосов 23: ↑17 и ↓6+11
Комментарии3

Работа с базовой анимацией на iPhone

Время на прочтение5 мин
Количество просмотров2.1K
Одна из привлекательных особенностей интерфейса Cocoa Touch — упрощенная работа с анимацией. В этом уроке я покажу пару простых примеров создания анимации для iPhone. Наша анимация будет выполнять две задачи: перемещать объект на экране и менять его размеры в зависимости от точки касания его пользователем.

Тем, кому еще не приходилось заниматься программированием на iPhone, полезно будет ознакомится с азами здесь, здесь и здесь. В качестве примера приведу также урок из серии Stanford iPhone Development (английский язык), где рассматривались основы анимации движения.

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



Что ж, приступим…
Читать дальше →
Всего голосов 45: ↑35 и ↓10+25
Комментарии6

Кроссплатформенная игра на MonoTouch

Время на прочтение1 мин
Количество просмотров800
Видео демонстрирует одну и ту же игру, которая была разработана с помощью MonoTouch/C# для iPhone, а затем всего за 12 часов портирована на Zune HD. В видео показан процесс игры на iPhone, ZuneHD и в эмуляторах iPhone под MacOS X и XNA под Windows.

Всего голосов 16: ↑10 и ↓6+4
Комментарии4

Информация

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