Pull to refresh
74
0
Евгений Балашов @ITdirector

User

Send message

Безопасность сайтов с лирическими отступлениями

Reading time14 min
Views10K
Недавно я писал для одного заказчика обзорный документ по безопасности web приложений, после чего я подумал, что было бы неплохо выложить его на общее обозрение.
Статья написана для непрофессионалов, поэтому дабы сделать ее более интересной для притязательных пользователей хабра, я разбавил текст некоторыми случаями из жизни.
Читать дальше →
Total votes 80: ↑74 and ↓6+68
Comments41

PastryKit: средство разработки сайтов для iPhone, написанное в Apple

Reading time1 min
Views1.2K
Обратите внимание вот на какую картинку:

[пример web-приложения PastryKit]

На экране этого iPhone вы видите приложение, которое выглядит как обычное приложение; тем не менее оно запущено через Интернет, оно является сайтом, который просматривается в мобильной версии браузера Safari. Этот эффект достигается использованием библиотеки PastryKit, разработанной в Apple: библиотека отключает адресную строку Safari, библиотека обеспечивает фиксированное позиционирование панелей инструментов, библиотека даже заменяет способ прокрутки сайтов Safari, добавляя к нему такое «сохранение импульса», которое свойственно именно приложениям iPhone, а не сайтам Safari.

Библиотека PastryKit состоит из CSS и джаваскриптов. Она используется в «iPhone User Guide», а также, до некоторой степени, в LP-файлах iTunes, но ещё не очень ясно, собирается ли Apple пропагандировать и документировать использование PastryKit; блоггер и разработчик Джон Грубер (John Gruber; это тот самый, который придумал язык разметки Markdown) сравнительно случайно обнаружил библиотеку PastryKit на сайте Apple и дал знать о её существовании другим заинтересованным разработчикам.

Подробнее обо всём этом вы можете прочесть во блоге Ajaxian; там же рассказывается, как и где можно скачать и подключить PastryKit.
Total votes 54: ↑34 and ↓20+14
Comments20

Портирование приложений под Mac OS X (WineSkin)

Reading time2 min
Views64K
image

Более года, наша команда занимается переносом игр и приложений в операционную систему Mac OS, было портировано 99% запрошенных приложений. Для этого были разработаны специальные утилиты и врапперы, которые доступны в открытом коде. Но обо всех я сразу не успею рассказать. начну пожалуй с Wine Skin.
Читать дальше →
Total votes 67: ↑61 and ↓6+55
Comments80

Почему российские компании катастрофически отстают от западных?

Reading time6 min
Views2.1K
Хочу поднять тему менеджмента и смежных с ним областей знания, так как считаю, что им уделяется крайне мало внимания на Хабре. Западные компании тратят огромные суммы на обучение своих менеджеров и развитие систем управления. Пришло время и нам обратить внимание на эти вопросы. (Осторожно, дальше много текста).

Мечты


Думаю, каждый посетитель Хабра хотя бы раз, но представлял себе день, когда на арену мирового IT-бизнеса взойдут российские компании и отвоюют большую часть покупателей и западных конкурентов. И казалось бы, у нас для этого есть все шансы: наличие талантливых программистов, большое количество людей увлеченных сферой IT, помогает специфика отрасли, позволяющая вести бизнес без границ и без значительного вмешательства чиновников и милиции, да и, в конце концов, перед глазами пример компании Google, которая как ни крути имеет русские корни!

image

Вынужден огорчить – ни у одной российской компании сейчас нет шансов стать хоть сколько-нибудь заметным игроком во всемирной паутине. Речь о построении успешной компании с долгосрочными конкурентными преимуществами, а не о копировании американских идей с добавкой нелегального контента. Не произойдёт это по ряду причин, которые, к сожалению, свойственны всему российскому бизнесу, включая IT-отрасль. И все эти причины относятся к
Читать дальше →
Total votes 147: ↑103 and ↓44+59
Comments195

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

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

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

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

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

Работа с буфером обмена в Linux: теория и практика

Reading time5 min
Views112K

Совсем немного теории


Copy and PasteИсторически сложилось так, что в X Window System (X11, — оконная система для Linux, UNIX) существует два буфера обмена.

Один из них (clipboard) похож на буфер обмена в Windows — при нажатии на Ctrl+Insert или Ctrl+C выделенный фрагмент (текст, картинка, файл) копируется в буфер обмена, а при нажатии на Shift+Insert (или Ctrl+V) — вставляется из него. Следует заметить, что во многих программах эти сочетания зарезервированы для иных целей и приходится пользоваться другими — например, в терминале сочетание Ctrl+C используется для завершения процесса, а для работы с буфером обмена используются сочетания Ctrl+Shift+C для копирования и Ctrl+Shift+V для вставки.

Второй буфер (primary) является специфичным для оконной системы X11. Выделенный текст незамедлительно попадает в буфер primary, и для того, чтобы вставить скопированный текст, достаточно лишь нажать среднюю кнопку мышки (колёсико). У кого в наличии не имеется трёхкнопочной мышки, а так же владельцам ноутбуков с тачпадами следует одновременно нажать левую и правую кнопки мышки для вставки текста.

Перейти к практике...
Total votes 100: ↑94 and ↓6+88
Comments99

Clip2net — очень быстрая публикация в Сеть

Reading time4 min
Views3.8K
Хочу рассказать почтенной публике про Clip2Net — сервис быстрой публикации изображений (и не только). Целью этого сообщения является не столько реклама сервиса как такового, но, скорее, возможность открыто обсудить этот проект, его текущий статус и возможное развитие. Краткая информация об этом сервисе уже пробегала когда-то на Хабре, но думаю, что будет интересно узнать кое-какие подробности, так сказать, от первого лица.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments29

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

Reading time6 min
Views34K

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


Проект настойчиво требовал подключения удобных платежных систем. Да, есть 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
Читать дальше →
Total votes 71: ↑67 and ↓4+63
Comments56

Безопасность при межпроектном взаимодействии

Reading time15 min
Views5.3K

Введение


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

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

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

Защита (или отсутствие защиты) от различных типов атак демонстрируется на примере протоколов популярных сегодня систем: Assist, Cyberplat, WebMoney, ChronoPay, Robokassa и PayPal (платёжные системы), а также OpenID, OpenAuth, OAuth (децентрализованная аутентификация).
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments28

О работе с заказчиками, разработке и внедрении софта

Reading time14 min
Views5.1K
Почитал я, как люди бьются с пользователями своего софта и решил поделиться с миром опытом. Сразу скажу, что опыт у меня не маленький — в своё время мои программы пользовались большим спросом и на их поддержке я не одну собаку съел. В результате клиенты пИсали кипятком, а пользователи саботировали любой другой софт, спускаемый сверху, кроме моего. В качестве истории успеха приведу не слишком большой проект автоматизации АЗС.
Читать дальше →
Total votes 69: ↑63 and ↓6+57
Comments52

Zend Framework: подключаем OpenID

Reading time8 min
Views2.1K
В своем проекте (Вопросы и ответы для программистов) на Zend Framework мне стало необходимо подключить OpenID и после часа работы я успешно подключил стандартный зендовский сервис. Думаю класс, как легко и удобно(как и все в зенде), но как оказалось этот сервис не работает с OpenId 2.0, да — он просто не дописан.

Немного порывшись в исходниках я это подтвердил — Consumer.php * todo OpenID 2.0 (7.3) XRI and Yadis discovery
Потом посмотрел по багтрекеру и оказалось что это весит уже давно(очень) и никто не спешит доделывать. Тогда я и начал искать альтернативу. Выбор попал на openidenabled.com/php-openid.

Далее приведу пример, который позволит тем кто еще только собирается подключать сделать это минут за 15.
Читать дальше →
Total votes 29: ↑24 and ↓5+19
Comments28

Царь хороший, а бояре плохие. Малый бизнес и все, все, все…

Reading time5 min
Views1.2K
США является одной из самых сильных мировых экономик. Но не многие знают, что половину ВВП в США даёт малый бизнес. Более того малым бизнесом создаётся около 70% рабочих мест.
Дмитрий Медведев не относится к числу тех, для кого данные факты являются новостью. Во многих его обращениях и действиях явно прослеживается желание поднять отечественную экономику на новый уровень как раз с помощью развития малого бизнеса. Но не смотря на появление различных законодательных актов, призванных облегчить ведение малого бизнеса обстановка в этой области не становится сильно лучше. Можно много говорить о причинах такой ситуации. Я бы хотел рассказать об одной, с которой столкнулся сам, а точнее мой друг.
Читать дальше →
Total votes 74: ↑64 and ↓10+54
Comments200

Что почитать по веб-разработке

Reading time3 min
Views233K
Топик Много книг, хороших и разных навёл на мысль сделать похожий каталог наиболее удачных и интересных книг по веб разработке.

Поэтому предлагаю здесь собрать и структурировать такие книги с небольшим описанием, вашим рейтингом и просто пообсуждать их.

update: Теперь есть электронные версии книг!

Начнём…
Читать дальше →
Total votes 118: ↑99 and ↓19+80
Comments137

Стартап: операционная веб-платформа MindApps

Reading time2 min
Views678
Уважаемые коллеги, представляю на ваш суд стартап MindApps: http://mindapps.ru.

MindApps предназначен для создания и исполнения веб-приложений — по схеме SaaS либо на серверах компании. MindApps рассчитана на предприятия малого, среднего и, возможно, крупного бизнеса в различных отраслях, а также консалтинговые компании, которые будут готовы на этой платформе «материализовать» свою компетенцию в виде решений-сервисов.

Основной идеей, заложенной в платформу, является простота создания и скорость изменения приложений. Для того, чтобы компания могла создавать себе нужные информационные инструменты по потребности — и, желательно, без программистов. Возникла потребность –> принято решение –> создано/изменено приложение –> введено в использование. Скажем, в течении дня на весь цикл.

image
Читать дальше →
Total votes 59: ↑52 and ↓7+45
Comments70

Организация on-line платежей на сайте. Для тех, кто никогда этим не занимался, но боится, что придётся. Часть 2: архитектура

Reading time13 min
Views7K
Вслед за первой частью, призванной в первую очередь показать, что «не так страшен чёрт, как его малюют»

Статья об архитектуре части проекта, которая занимается он-лайн платежами. Намеренно не хотелось бы сейчас подробно описывать API конкретного биллинга или процедуру регистрации в нём. Тонкости конкретных биллингов нужно обсуждать отдельно, иначе тему просто не раскрыть. Цель статьи: обсудить вариант архитектуры, позволяющий нанизывать новые виды биллингов и типы платежей, с наименьшей головной болью.
Читать дальше →
Total votes 72: ↑64 and ↓8+56
Comments33

Divine Project – автоматическое создание сайта из PSD шаблона

Reading time1 min
Views12K
image Привет всем! Очень странно, что я не нашел на Хабре ничего такого, про что расскажу вам далее…
Это мой первый пост, а потому попрошу сильно не ругать =)

Я думаю, кто-то из вас рано или поздно сталкивался с задачей сделать для своего сайта уникальный дизайн, но, увы, это не так просто осуществить, как хотелось бы. Но с помощью DIVINE всё становиться гараздо проще. Дизайнерам теперь не нужно владеть HTML, CSS и понятием о том, как устроены темы для WordPress
Читать дальше →
Total votes 99: ↑65 and ↓34+31
Comments110

Мое дело — Онлайн-бухгалтерия для индивидуальных предпринимателей

Reading time2 min
Views3.8K


Привет!

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

Нашей целью было сделать бухгалтерию доступной для любого человека — поэтому мы сконцентрировались на небольшом сегменте рынка — индивидуальные предприниматели на 6%-ной упрощенке, работающие без кассы. Это позволило сделать сервис очень простым и понятным — без бухгалтерского лексикона, ссылок на нормативные акты и перегрузки ненужной информацией вроде расчета НДС, ЕНВД итд. И, я думаю, у нас это неплохо получилось.

Читать дальше →
Total votes 158: ↑151 and ↓7+144
Comments231

Бизнес 160 байт. Часть вторая, техническая

Reading time5 min
Views11K
В первой части намеченной серии статей мы рассмотрели некоторые общие вопросы работы с СМС-сообщениями, теперь с небольшой задержкой публикуем очередную статью. Итак, вспомним: сообщения могут быть входящими и исходящими, за обработку сообщений отвечают СМС-центры, есть возможность подменить отправителя сообщения.

Начнем вторую часть с самого важного — с протокола. Конечно, для работы с СМС-сообщениями разработан свой протокол — SMPP (Short Message Peer-to-Peer Protocol), на котором и происходит общение между СМС-центрами. Разработкой протокола занимается организация SMSforum, публикующая его спецификации. Для работы с этим протоколом существует целый ряд библиотек на разных языках [1][2][3], но наиболее популярным open source решением является сервер kannel, который реализует все основные аспекты работы с СМС и одновременно является WAP-шлюзом. СМС-центры могут передавать сообщения не только через SMPP, но и через любой другой протокол — HTTP, OSCAR, XMPP или почтовый протокол для отправки на электронную почту. Для работы с различными веб-проектами используется трансформация в HTTP-протокол, наиболее удобный и привычный для веб-разработчика. Поэтому, как было верно отмечено в комментариях к первой части, знать и использовать SMPP разработчику вовсе не обязательно.
Читать дальше →
Total votes 35: ↑25 and ↓10+15
Comments24

Управление проектом на одной странице (таблица из одноименной книги К. А. Кэмбэлла)

Reading time1 min
Views53K
Только дочитал означенную в названии топика книгу. Она предлагает очень интересную и удобную схему для ведения проекта. Фактически, это – несколько усложненная диаграмма Ганта.

Однако я предположил, что таблица уже созданная в Excel будет многим хабравчанам удобна. Сама по себе книга имеет ценностью на 80-90 % в этой схеме. Но, думаю, без первоисточников вполне можно справиться с изучением данной диаграммы, тем более, что на официальном сайте издательства она представлена как:
Читать дальше →
Total votes 36: ↑32 and ↓4+28
Comments25

Создание расширения для Google Chrome

Reading time8 min
Views118K
Тема создания расширений достаточно хорошо раскрыта в сети, есть множество статей, документации на эту тему. Но я не нашел ни одного ресурса, который бы описал процесс создания расширения от начала до конца. Я собираюсь исправить эту ситуацию, и рассказать о том как создать расширение, как хранить, читать настройки, как добавить поддержку нескольких языков.

Для работы с расширениями вам понадобится переключить канал обновлений на Dev или Beta.
Читать дальше →
Total votes 98: ↑93 and ↓5+88
Comments28

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity