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

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

Send message

Как создавалась Айчиталка. Часть 1: движок

Reading time10 min
Views28K
Совсем недавно мы выпустили в свет первую бета-версию нашей онлайн-читалки, с которой можно ознакомиться, почитав книгу Михаила Лермонтова «Герой нашего времени». Эта читалка — результат почти семимесячной работы, пять из которых ушло только на разработку движка. Казалось бы, в интернете уже есть бесплатные и открытые JavaScript-движки для чтения электронных книг и такой долгий срок может вызвать сомнения в профпригодности разработчика (то есть меня). Но есть одно большое и жирное «НО». Мы поставили перед собой слишком амбициозную и трудновыполнимую задачу: мы хотели использовать один и тот же движок на разных устройствах, в том числе маломощных, таких как айфон или электронная читалка.

В чём же заключается трудновыполнимость задачи? В первую очередь — в очень низкой скорости работы веб-приложений на айфоне. Например, мобильный Сафари по моим прикидкам работает раз в 100 медленнее своего десктопного собрата. Если на декстопе одна и та же операция выполняется 10 мс и совершенно незаметна для пользователя, то на айфоне она может выполняться больше секунды. Для сравнения: первая версия движка разбивала небольшую главу на страницы примерно за 15 секунд. Сейчас, спустя полгода, он делает то же самое менее, чем за секунду и вполне сносно работает в нашем приложении booq.

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

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

Рисуем карту в WPF-приложении

Reading time4 min
Views27K
Недавно возникла производственная необходимость – отобразить на форме карту России, с детализацией до регионов. При этом нужно:
  • в зависимости от различных условий менять внешний вид областей карты;
  • карта должна “воспринимать” пользовательский ввод и реагировать на него;
  • нужно иметь хорошее качество “картинки-карты” вне зависимости от разрешения монитора.

Один из вариантов решения

Обзор CMS по категориям

Reading time19 min
Views85K
В мире существуют тысячи CMS для самых разных целей, самого разного качества, самой разной перспективы, стоимости, распространённости и так далее. Серьёзно опробовать их все — нереально. Поэтому когда я только знакомился с миром движков для сайтов, выбирать приходилось наугад. Ниже я опишу свои впечатления от знакомства с теми или иными движками для тех или иных целей. К некоторым приложу краткое описание особенностей, впечатление о прочих состоит только из заглядывания в админку. Заметки эти составлялись и редактировались в течении долгого времени, но сейчас я решил, что лучше опубликовать их в нынешнем виде, чем ещё полгода-год по чуть-чуть редактировать не добавляя ничего принципиально нового.
Преимущество отдаётся бесплатным движкам. Платные будут рассматриваться только для сравнения или от безысходности, т.е. если нет бесплатных аналогов. Также ограничение на технологии: php. О движках на перле и питоне я не более чем слышал, на шарпе и джаве имел дело с самописными.
Итак, рассматриваются
Читать дальше →

Легким движением руки UITabBarController превращается в UISplitViewController

Reading time3 min
Views2K
Доброй ночи/утра/дня/вечера

Как видно из названия статьи я расскажу вам о том, как потратив минимум сил и времени, превратить iPhone`ский UITabBarController в iPad`овский “UISplitViewController”
Для этого нам понадобится: проект(под iPad) с предыдущего моего рассказа, xib файл(под iPhone) с UITabBarController'ом и класс-контроллер к нему. Первое у меня было. Что касается второго и третьего, то я быстро создал xib в Interface Builder'е и дал ему незамысловатое имя iPhoneTabBar.xib.


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

Приложения iPhone с открытым кодом

Reading time4 min
Views31K
В данной статье речь пойдет о приложениях с открытым кодом, которые размещены в App Store. Мы будем рассматривать только приложения которые одобрены компанией Apple и опубликованы. Начинающие разработчики могут изучать их код для повышения своих навыков.

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

Вот она, конкуренция

Reading time1 min
Views795
Вчера, примерно в 19:00 на наш маленький проектик, занимающийся арендой недвижимости, началась Ddos атака, которая продолжается до сих пор.
Ну началась и бог с ней. В данный момент с переменным успехом удается фильтровать лишний траффик. Впринципе, это не то событие, которое заслуживает внимания. Если бы не одно но. В процессе борьбы, мы, ради эксперимента, на несколько минут, направили весь траффик на один из наших сайтов, на котором стоял счетчик от mail.ru. Каково же было наше удивление, когда богом забытый сайт, за 10 минут набрал больше 20 тысяч просмотров и попал в 10ку в рейтинге mail.ru. И тогда я решил посмотреть рейтинг mail.ru сайтов, занимающихся арендой недвижимости. И увидел (скриншот), что у многих сайтов резко подскочили посещаемость (до 1,5 миллионов просмотров), на второй странице тоже есть подобные вещи. Явно их тоже досят. Захожу на эти сайты — либо лежат, либо еле-еле шевелятся.

Итог. Мы имеем десятки лежащих сайтов, вот небольшой список:
Инком
Doki
НЕДВИЖИМОСТЬ от Группы ПИК
rentagent.ru
sniatkvartiru.ru/
rent2000.ru/
ну и тд. Все сайты, у которых резко выросла посещаемость лежат (в том числе и наш). Я насчитал больше 10, потом надоело.

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

4 ответа, которые принесут вам деньги

Reading time1 min
Views757
Эпиграф:
«Инвестор – умный человек, у которого есть деньги. Дураков-инвесторов не бывает. Это аксиома» А.Морейнис

Сегодня на Startup Weekend Аркадий Морейнис рассказывал, как правильно готовиться к презентации своего проекта инвестору. Его советы были настолько конкретны и просты, что грех было их не законспектировать и передать эти полезные знания всем. Пожалуй, выступление Морейниса было самым полезным и интересным за сегодня (пруфлинк)

image

Итак, Аркадий Морейнис призывает на встрече с инвестором ответить всего лишь на 4 ключевых вопроса.

1. Что? В чем суть вашего продукта? Что будет делать ваш продукт? Какие у него есть уникальные свойства?

2. Почему? Почему ваш проект должен сыграть на рынке? Это может быть уникальный маркетинг, уникальный способ привлечения аудитории и др. И главное – почему другие конкуренты не смогут это повторить.

3. Зачем? Какова будет стратегия вашего выхода из проекта, причем об этом надо думать с самого начала, инвестору необходимо знать ваши намерения.

4. Сколько? Что у вас есть сейчас? На что пойдут инвестиции? Сколько планируете заработать?

Как откровенно сказал Аркадий Морейнис: «Главная причина провала стартапа перед инвестором – то, что люди приходят с полной туфтой». Да, правда такова. Поэтому для начала четко ответьте для себя на эти четыре вопроса, а если у вас это получилось – то смело обращайтесь к Аркадию Морейнису инвестору.

Как легально получать деньги из-за пределов России

Reading time5 min
Views202K
Дано: заказчик за рубежом, желающий работать с Вами и платить вам евро или доллары.
Найти: оптимальный способ организовать работу с ним, чтобы платить налоги и спать спокойно.

Сразу скажу, что получение денег на пластиковую карту без уплаты налогов может вылиться в серьезные проблемы (про ответственность написано в конце топика). Объяснения, что деньги «от бабушки внучку на мороженное» при суммах больше 10К$ в год уже не прокатывают, особенно если в реквизитах «бабушки» будет стоять что-то вроде «GMBH Star Development» Вероятность того, что возьмут за задницу достаточно высокая и поэтому лучше не рисковать и делать все по Закону, тем более, что ничего сложного в этом нет
Читать дальше →

Просмотр памяти .NET приложений при помощи Crack.NET

Reading time1 min
Views2.4K
Crack.NET — это приложения для отладки, просмотра памяти и ее изменения для любого WPF или WinForms приложения. Также есть поддержка IronPython для написания скриптов, автоматизирующих какие-либо операции.

image

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

Нынешние способы обмена Webmoney на ЯД и наоборот

Reading time3 min
Views8.1K
Вероятно, практически все хабраюзеры некоторое время назад столкнулись с неожиданным запретом Webmoney на осуществление обменных операций с большим кол-вом обменников, в том числе и ЯД.

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

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

Немного погуглив, можно найти много способов, все-таки обменять вебмани на яд и наоборот, некоторые из которых и публикую в этом посте. Считаю, что данная информация может пригодится :)
image

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

Как FriendFeed использует MySQL для хранения данных без схемы

Reading time7 min
Views3.2K

Условия


Мы используем MySQL для хранения любых данных FriendFeed. Наша база данных растёт вместе с числом пользователей. Сейчас у нас более 250 миллионов записей, это записи пользователей (post'ы), комментарии, оценки («likes»)

По мере того как росла база данных, мы время от времени имели дело с проблемами масштабируемости. Мы решали проблемы стандартными путями: slave-сервера, используемые только для чтения, memcache для увеличения пропускной способности чтения и секционирование для увеличения пропускной способности записи. Однако, по мере роста, использованные методы масштабируемости привели к затруднению добавлению новой функциональности.

В частности, изменение схемы базы данных или добавление индексов к существующим 10-20 миллионов записей приводили к полной блокировке сервера на несколько часов. Удаление старых индексов требовало времени, а не удаление ударяло по производительности, так как база данных продолжала использовать их на каждом INSERT. Существуют сложные процедуры с помощью которых можно обойти эти проблемы (например создание нового индекса на slave-сервере, и последующий обмен местами master'a и slave), однако эти процедуры настолько тяжелые и опасные, что они окончательно лишили нас желания добавлять что-то новое, требующее изменение схемы или индекса. А так как наши базы сильно распределены, реляционные вещи MySQL как например JOIN никогда не работали для нас. Тогда мы решили поискать решение проблем, лежащее вне реляционных баз данных.

Существует множество проектов, призванных решить проблему хранения данных с гибкой схемой и построением индексов на лету (например CouchDB). Однако, по-видимому ни один из них не используется крупными сайтами. В тестах о которых мы читали и прогоняли сами, ни один из проектов не показал себя стабильным, достаточно зрелым для наших целей (см. this somewhat outdated article on CouchDB, например). А все это время MySQL работал. Он не портил данные. Репликация работала. Мы уже в достаточной мере понимали все его узкие места. Нам нравился MySQL именно как хранилище, вне реляционных шаблонов.

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

Качества успешного предпринимателя – Трудолюбие (6/11)

Reading time4 min
Views1.3K
Перевод шестого поста Марка Састера из серии про качества успешного предпринимателя (предыдущие посты: 1, 2, 3, 4, 5).
__________



Это часть моей новой серии постов о том, что делает предпринимателя успешным. Исходно я публиковал их на сайте VentureHacks, одном из моих любимых сайтов для предпринимателей. Если вы там не были, то стоит зайти.

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

Лукас Дэйли заметил:

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


Для меня в процессе поиска хороших предпринимателей недостаточно найти большую дозу того или иного качества. Как я уже говорил, упорство без гибкости в подходе (способности изменить курс) не дает хорошего результата. Это же относится и к лидеру-вдохновителю, который не способен добиваться результата. Вы наверняка видели таких: они отлично смотрятся на сцене на конференциях, но к этому все и сводится. Перед крупнейшими заказчиками они выглядят достойно, но их приходится прятать от сотрудников, чтобы они не сбили тех с курса своими советами, за реализацией которых они не станут следить. Хорошему лидеру требуется не только вдохновение, но и трудолюбие.

Если вы еще не видели фильм «Непокоренный» (Invictus, есть трейлер), то посмотрите. В нем показаны первые годы работы Нельсона Манделы на своем посту. Он работал настолько усердно, что терял сознание от изнеможения. Его охранники, сотрудники спецслужб, жаловались на недостаток отдыха. А он неустанно защищал и пропагандировал свою позицию.
Читать дальше →

iPhone разработка: Интегрируем In-App Purchases

Reading time8 min
Views88K
In-App Purchases — это простой и удобный механизм для организации продаж своих приложений или дополнительных фич непосредственно из своего приложения. In-App Purchases легко встраивается и открывает для Вас новый канал продаж. Взаимодействие с App Store осуществляется с помощью StoreKit.framework, который поставляется вместе с SDK, начиная с версии 3.0.
Читать дальше →

AlterGeo и Яндекс.Бар

Reading time1 min
Views3.8K
Наконец-то можно рассказать о том, над чем мы работали в течении последних 6-ти месяцев. Итак, вышла новая версия Яндекс.Бара. Казалось бы, причем тут мы? А притом, что помимо всего прочего, в этой версии добавлено определение местоположения при помощи WiFi-точек доступа, провайдером которого выступает компания AlterGeo. Более подробно можно прочитать об этом в пресс-релизе компании Яндекс. Зачем может понадобится такая возможность? Ну, например для того, чтобы найти кафе поблизости:

image

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

Псевдореальные квазинаучные интерфейсы в фильмах

Reading time1 min
Views3K
Всегда было интересно, что за цифры и буквы тучами летают по информационным табло во всяких командных центрах разных фантастических фильмов. И особенно было интересно кто и зачем это делает.

Например вот такая картинка для «Идентификации Борна»
Bourne Identity

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

Знай откуда пришел пользователь

Reading time2 min
Views18K
Когда вы открываете свой проект вы начинаете писать о нем везде, в том числе и на хабре.

Сервисы статистики типа Google Analytics дадут вам общую оценку трафика, а именно сколько посетителей пришло с какого ресурса. Можно настроить цели(goals) и отследить регистрации или покупки, но этого часто бывает недостаточно.

А что если вам нужна статистика о том откуда идут более активные пользователи или пользователи которые создали больше всего тем на форуме за какой-то промежуток времени, или сделали больше всего покупок в вашем интернет магазине. Вариантов может быть много и такие данные сервисы аналитики уже дать нет смогут.

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

Сделай тихо или бесшумный ящик

Reading time2 min
Views7.4K

Beginning.



*магнит отображает суть всей переделки и
является окончательным штрихом всего труда

Очень мне захотелось свой системный блок сделать тихим, чтобы несмотря на работу в режиме 24\7 — не грелся, а я слышал только музыку и никаких посторонних шумов. Сказано — сделано!
Читать дальше →

Students Calculator теперь open source

Reading time2 min
Views5.2K
imageStudents Calculator — это мое первое серьезное приложение, идея доведенная до конечной реализации. Это то, что определило мою текущую профессию. Смешно вспомнить, начинал я писать его в блокноте, в функциональном стиле, не зная о существовании Javadoc и даже java.util, пользуясь только исходниками других j2me приложений. (Конечно, в дальнейшем, с ростом моих навыков программа пережила 2 рефакторинга)

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

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

Оффсайт: calc.motofan.ru (тут последняя версия 1.5.0 PR от 26.03.2006)
Реальная последняя версия:1.9.2 альфа от 2.4.2008
Sourceforge: sourceforge.net/projects/stdcalc/develop — исходники тут
Для заинтересовавшихся

«Умное» здание — взгляд изнутри

Reading time1 min
Views3.2K
О, Хабр!

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

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

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

Information

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