Search
Write a publication
Pull to refresh
26
0
olegi @olegi

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

Send message

Алгоритм Дейкстры. Поиск оптимальных маршрутов на графе

Reading time3 min
Views439K
Из многих алгоритмов поиска кратчайших маршрутов на графе, на Хабре я нашел только описание алгоритма Флойда-Уоршалла. Этот алгоритм находит кратчайшие пути между всеми вершинами графа и их длину. В этой статье я опишу принцип работы алгоритма Дейкстры, который находит оптимальные маршруты и их длину между одной конкретной вершиной (источником) и всеми остальными вершинами графа. Недостаток данного алгоритма в том, что он будет некорректно работать если граф имеет дуги отрицательного веса.

Для примера возьмем такой ориентированный граф G:

image

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

Внутренности вордовских файлов: просто ужас

Reading time9 min
Views57K
О сложности и жуткости вордовских файлов давно ходили легенды. Известно было, что формат этот крайне запутанный, а к тому же еще и полностью засекреченный, так что о половине тамошних полей можно было только догадываться.

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

А теперь вот жизнь заставила (или подкинула возможность) все-таки разобраться во внутренностях всем хорошо известных документов, тем более, что в Штирлица теперь играть не обязательно, достаточно скачать с сайта «Майкрософта» официальные спецификации.

Что тут можно сказать? Невольно вспоминается старый пошлый анекдот: ну ужас. Ну просто ужас, но ведь не ужас-ужас-ужас.
Читать дальше →

AppStore. Как Bills for iPad стала №1 в США

Reading time8 min
Views4.2K
Опыт от тех, кто создал самую продаваемую программу для iPad в США.

Есть много статей о том как зарабатывать деньги на мобильных приложениях в AppStore и Android market. Но сколько разработчиков реально были наверху? Наша программа Bills for iPad в период с 26 по 29 июня 2010 июня была самой продаваемой в AppStore в США программой для iPad.
image

Как зарабатывать в AppStore? Вот механизмы, которые доступны:
  • Продажа программ.
  • Внутренние покупки
  • Реклама

AppStore, по-моему мнению, нацелен именно на доходы от “продажи программ”. Два главных рейтинга, Топ самых скачиваемых программ (Top paid) и Топ самых доходных программ (Top grossing), раздел “новое”, а также разделы AppStore, где Apple выделяет новые интересные программы — все это мотивирует на создание новых, лучших продуктов. Отсюда такое громадное количество программ в магазине — свыше 300,000.
Читать дальше →

Тестирование мультипоточности в Symbian

Reading time5 min
Views954
Недавно мы ставили SDK для разработки под Qt for Symbian на Linux. Теперь пришло время что-нибудь написать на нем.
Сейчас практически везде используются многопоточные архитектуры для выполнения каких-либо фоновых расчетов в то время как пользователь использует UI.
Давайте разберемся, насколько это эффективно при разработке под Symbian.
А давайте!

Watir: простой парсинг сложных сайтов

Reading time4 min
Views51K
imageКаждый, кто пишет парсеры, знает, что можно распарсить сто сайтов, а на сто-первом застрять на несколько дней. Структура очередного отмороженного сайта может быть сколь угодно сложной, и, когда дело касается сжатых javascript-ов и ajax-запросов, расшифровать их и извлечь информацию с помощью обычного curl-а и регекспов становится дороже самой информации.

Грубо говоря, проблема в том, что в браузере работает javascript, а на сервере его нет. Нужно либо писать интерпретатор js на одном из серверных языков (jParser и jTokenizer), либо ставить на сервер браузер, посылать в него запросы и вытаскивать итоговое dom-дерево.

В древности в таких случаях мы строили свой велосипед: на отдельной машине запускали браузер, в нем js, который постоянно стучался на сервер и получал от него задания (джобы), сам сайт грузился в iframe, а скрипт извне отправлял dom-дерево ифрейма обратно на сервер.

Сейчас появились более продвинутые средства — xulrunner (crowbar) и watir. Первый — безголовый firefox. У crowbar есть даже ff-плагин для визуального выделения нужных данных, который генерит специальный парсер-js-код, однако там не поддерживаются cookies, а допиливать неохота. Watir позиционируется разработчиками как средство отладки, но мы будем его использовать по прямому назначению и в качестве примера вытащим какие-нибудь данные с сайта travelocity.com.

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

Objective-C для C# разработчиков

Reading time5 min
Views20K
«Если единственный язык, который вы знаете — это Java или C#, я не думаю, что вы профессиональный программист — вы как молодой плотник, который пока работал только с одним видом дерева.»
Дядя Боб


Несколько месяцев назад я начал разрабатывать приложения для iPhone. Переключение с платформы .NET и C# на Cocoa и Objective-C проходило не без приключений, но было достаточно интересным и познавательным. Скоро мне предстоит помогать осваивать новую платформу и другим разработчикам нашей компании. Поэтому решил написать серию вводных заметок, которые, надеюсь, сделают этот переход более плавным.

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

Практические советы тем, кто хочет построить веб-сообщество ч.2

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

Глава 4. Куда сеем? В контент!

Многие спросили, как я набрал первоначальную массу пользователей, после набора которой сообщество, собственно, как-то задышало. Было дело так: когда я на одном из бесплатных LiveStreet'овском (CMS моего проекта) дизайне только-только открыл проект, сразу же встал вопрос о привлечении на него аудитории. Но на что придёт аудитория, не на голое же место?

image

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

Финансирование стартапа от государства

Reading time5 min
Views3.9K
Допустим, фирму вы уже создали, отдавать инвесторам 75% долю не хотите, а денег где-то взять надо. Помощь приходит совершенно из неожиданного места – Государства. Речь идет о 350 000 рублей, которые вам (внимание!) подарят! Но заплатить придется некоторой бюрократической возней и потерей времени. Речь будет идти о малых предприятиях, зарегестрированных в городе Москве, так как пишу по собственному опыту.



По программе содействия развитию малого бизнеса г.Москвы (в других регионах есть аналоги) любой субъект малого предпринимательства имеет возможность получить до 350 000 рублей на следующих условиях:
  • Необходимо вложить не менее 50% собственных средств;
  • Нужно иметь помещение и договор аренды;
  • Необходимо потратить более 50% предоставляемой субсидии на покупку основных средств;
  • Возмещение арендной платы из бюджета — не более 3 600 руб. за кв.м. в год;
  • На расходные материалы можно потратить не более 20% субсидии.

Условия устраивают? Тогда действуем! 

Получить денег от государства...

Стартап-бум: куда податься?

Reading time3 min
Views7.6K
На прошлых выходных случился стартап-бум.

В пятницу, 19 ноября, в одно и то же время проходили Startup Crash Test в ГУ-ВШЭ в Москве, «Начинай» в технопарке «Строгино» (тоже в Москве), Startup Point в Питере и Startup Weekend в Казани.
В субботу «Начинай» и Startup Weekend продолжились, и к ним прибавились poSEEDelki в Сколково.

На прошлых выходных стало понятно: новичку, не поднаторевшему в посещении стартап-мероприятий, разобраться в них теперь сложно. Почти невозможно. Поэтому, в преддверии третьего Startup Weekend в Москве, «Главстарт» решил обозреть рынок мероприятий, чтобы каждый, кто однажды решился войти в эту воду, входил в нее в правильном месте и с максимальной выгодой для себя.

Ниже — семь самых заметных мероприятий: для идей, для прототипов, для проектов. Читайте, выбирайте, приходите.
Читать дальше →

Как выбрать помещение для интернет-магазина в реале

Reading time7 min
Views34K
Маркетинг магазина в реале начинается с выбора места. Есть два пути решения задачи: так называемый «жоп-филинг», то есть интуитивное принятие решения и продуманный просчёт.

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

Предзаполнение базы данных Core Data

Reading time8 min
Views5.2K
image Часто для работы iPhone/iPad приложений необходим некоторый «дефолтовый» набор данных в базе. К сожалению, Apple стандартных средств предзаполнения базы приложения разработчикам не предоставляет.
Если необходимое количество данных невелико, то их можно подгрузить в базу во время старта приложения. Если же вам для работы приложения нужен большой объем исходной информации, то такое решение не подойдет, заставлять ждать пользователей пока закончатся все операции подгрузки — это моветон, да и заказчик, увидев как долго загружается ваше приложение, может пересмотреть планы по будущему сотрудничеству.

В этой статье я расскажу как можно быстро предзаполнить sqlite базу приложения, использующего Core Data.

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

Вытягивание из Директа всей информации о кампаниях конкурентов

Reading time6 min
Views4.2K
В продолжение статьи Евгения Ческидова «Яндекс. Директ. Анализируем конкурентное окружение» я хочу показать, как при помощи не очень сложных расчетов и API Яндекса вытащить из Директа буквально всю информацию о рекламных кампаниях конкурентов. Сразу скажу, что идея на практике еще не проверялась, сам факт наличия всей информации и, соответственно, возможности этого расчета был показан Ческидовым только вчера, а алгоритм родился буквально сейчас. Но математически вроде бы всё сходится. Осторожно, под катом много формул.
Читать дальше →

iOS SDK — CoreAnimation, программируем красивые кнопки

Reading time3 min
Views5.2K
Многие наверняка сталкивались с необходимостью быстрого создания контролов в мобильном пользовательском интерфейсе. Рассмотрим стандартные кнопки UIButton. Базовый контрол мало устраивает взыскательного заказчика и зачастую стандартное решение, это натягивание на кнопки битмапов состояния. Растянутая ли это картинка или целиком вырезаная кнопка — решение требует дополнительных временных затрат на дизайн пользовательского интерфейса. Хорошо было бы иметь универсальный контрол, с более широкими визуальными возможностями, чем базовый UIButton.
Читать дальше →

Хостинг по требованиям 152-ФЗ

Reading time2 min
Views16K
imageКомпания Parking.ru запустила новую услугу под говорящим названием «Хостинг ИСПДн». Эта услуга позволит заказчикам (операторам персональных данных) вынести на аутсорсинг информационные системы, содержащие и обрабатывающие эти самые персональные данные (ИСПДн), как то: социальные сервисы, интернет-магазины, системы биллинга, кадровые системы, бухгалтерию и другие привычные нам сервисы.

Подробнее об аутсорсинге152-ФЗ

Грабли при верстке HTML писем

Reading time3 min
Views104K
Довольно часто наши клиенты устраивают регулярные рассылки с новостями. Почти всегда их не устраивают текстовые рассылки или простое оформление HTML рассылок. Наши дизайнеры вовсю креативят, а мы потом набиваем шишки при верстке их макетов с корректным отображением во множестве почтовых клиентов.

Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
Читать дальше →

Разработка приложений на платформе Samsung Bada — Часть 2

Reading time4 min
Views3.2K


Привет всем, эта статья — продолжение первой части. Я расскажу о своем опыте работы с Samsung Apps Store, какие могут быть затруднения и каков сухой остаток. Сначала будет теория, затем практика. Я постарался дать как можно больше советов, которые могут пригодиться.
Читать дальше →

Геоинформационные идеи

Reading time2 min
Views2.7K
В университете на дипломной работе, я занимался тем, что делал некий аналог интернет карт. Самое интересное было — это работа с картографической информацией. Когда карты в сети стали более распространены, я обрадовался, т.к. можно делать весьма и весьма интересные вещи. Провозившись некоторое время с API Yandex.Maps, я понял, что инструмент есть.
Читать дальше →

Виртуальные карты: месяц в продаже, полет нормальный

Reading time2 min
Views8.8K
Месяц назад мы запустили новую услугу — продажу виртуальных карт MasterCard PrePaid.
Сегодня мы смотрим на статистику платежей вместе с нашим партнером, банком Интеркоммерц, и хотим рассказать вам о том, как идут дела.

В номинации «самые популярные магазины» первые три места ожидаемо заняли PayPal, App Store и Amazon.
Это и понятно: PayPal помогает переводить средства в другие страны, в App Store продается уже четверть миллиона приложений для iPhone и других яблочных продуктов, а на Amazon`е огромный выбор литературы на английском.

Популярнее всего у наших пользователей магазины, расположенные в США, Англии, Нидерландах… и, конечно, в Люксембурге.
А всего наши пользователи платили виртуальными картами в 38 стран, включая Японию, Исландию и Гибралтар.

Самый крупный платеж по виртуальной карте — на 449 долларов — в магазине радиоуправляемых моделей. Напомним, что максимальный номинал нашей MasterCard PrePaid — 14 000 рублей, что связано с требованиями российского законодательства.

Самый частый вопрос пользователей: «А можно мне довключить SMS-оповещение?»
Дело в том, что SMS-оповещение обязательно нужно, например, для привязки виртуальной карты к PayPal, а «довключить» его потом нельзя.
Мы очень постарались и снизили стоимость услуги до 19 рублей. Подключайте смело!

Самый большой неудавшийся платеж — 48 500 рублей. При этом на счете самого пользователя в Яндекс.Деньгах даже не было такой суммы — вероятно, дописались несколько случайных ноликов.

Самая обидная ошибка — на покупку не хватило трех рублей (а покупка была в иностранной валюте). Пользователь связался с нашим партнером, банком Интеркоммерц, где ему посоветовали подождать смены курса. Через день тех же денег хватило.

Мы видим, что сервис востребован пользователями, и решили не повышать комиссию с 1 сентября. Комиссия по-прежнему составляет 1,99% (но не менее 19 рублей). Напомним, что виртуальные карты MasterCard PrePaid можно купить ежедневно и круглосуточно в рублях, долларах или евро, а максимальный номинал карты — эквивалент 14 000 рублей.

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

Зачем именно вам нужен OAuth

Reading time2 min
Views5.9K

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

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

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

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

Information

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