AllCafe для iPhone в разделе Все о Москве App Store
Мелочь, а приятно. В российском App Store появилась отдельная подборка «Все о Москве», куда попало написанное мною приложение.
Мелочь, а приятно. В российском App Store появилась отдельная подборка «Все о Москве», куда попало написанное мною приложение.

Ура, наконец-то более менее допилил новую версию фан сайта Дельфина на новом движке. Старый был на старой версии Joomla, которую поломали и вычищать весь спам оттуда, попутно выискивая дыру, совсем не хотелось.
Новая версия самописная. Решил делать её на CouchDB, очень уж последнее время мне нравится эта документо-ориентированная база данных. Оформлять, в итоге, пришлось самому. Хотелось какого-то минимализма. Регистрации на сайте никакой решил не делать. Можно просто войти через соц. сети, чтобы писать комментарии. Заюзал для этого Loginza. Правда, есть подозрение, что проект этот умирать стал после того, как его купил Яндекс. На форуме никто не отвечает по поводу багов, а теперь его вовсе убили. Чинить авторизацию через Twitter, похоже, тоже никто не собирается. Вот тебе и Яндекс. Сами ржут, что Google покупает проекты, чтобы их закрыть, при этом покупают проекты, которые загибаются. Взять хотя бы kinobaza.tv.
Что-то я отвлёкся. На сайте будет большой большой архив материалов. Оказалось, что даже старый весь материал чтобы перелопатить и систематизировать - уйма времени и сил. Надеюсь, плавно буду всё туда по чуть-чуть выгружать.
Пока успешно иду по своему плану - делать какой-нибудь релиз чего-нибудь минимум раз в месяц. Январь и февраль - done :)
Ну и ссылка на сайт: dolphinfanclub.net
Выпустил обновление приложения Этот день. Передизайнил под iOS 7 (что примерно равно тому, чтобы убрать вообще почти всё оформление). Стало, по-моему, приятнее и лаконичнее.
Заюзал стандартный UIActivityViewController для шаринга через Facebook, Twitter и другие встроенные вещи, типа отправки по email, sms/iMessage и т.д., плюс прикрутил для шаринга в ВК Vkontakte-iOS-SDK вместо самописной хрени, что была раньше. Правда, визуальных отличий особо для пользователя нет, да и пока у меня руки дошли всё наконец допилить, появился уже официальный SDK для iOS от ВК, но ковырять его, чтобы заменить то, что уже работает, не стал.
Попутно избавился от уже ненужного SBJson для работы с JSON, т.к. можно смело пользоваться уже встроенным в iOS NSJSONSerialization. Решил встроить в приложение мобильную Яндекс.Метрику, чтобы считать нормально пользователей и смотреть - кто, например, какой версия iOS пользуется и на каком девайсе. Пока наблюдаю за цифрами, познавательно.
Такое вот продолжение маленького проекта-хобби. Буду думать, чего бы в нём ещё запилить, и буду писать следующее приложение. А пока - качаем/обновляемся:
Перевод ответа на stackoverflow.com на вопрос об отличиях CouchDB от Couchbase.
Я думаю есть несколько существенных отличий между CouchDB и Couchbase Server, которые необходимо отметить.
Я не буду писать о преимуществах перехода с CouchDB на Couchbase Server, потому, что они хорошо описаны везде (см. The Future of CouchDB by Damien Katz или Couchbase vs. Apache CouchDB by Couchbase). Вместо этого я постараюсь перечислить фичи CouchDB, которые вы не найдёте в Couchbase Server.
Есть CouchDB, CouchIO, CouchOne, Couchbase, Couchbase Server, Couchbase Mobile, Couchbase Lite, CouchApps, BigCouch, Touchbase, Membase, Memcached, MemcacheDB... все разные и всё же связанные, очевидно, не только названиями.
Сначала была CouchDB, база данных, созданная Damien Katz, бывшим разработчиком IBM. Официальное название изменилось на Apache CouchDB после того, как она стала проектом Apache.
Компания под названием CouchIO была основана для работы над Apache CouchDB и позже изменила название на CouchOne (я имею в виду название компании, а не базы данных).
CouchOne (бывшая CouchIO) объединилась с Membase (бывшая NorthScale), чтобы сформировать новую компанию под названием Couchbase. Membase (компания) разрабатывала Membase (продукт с таким же названием). Membase была создана несколькими лидерами проекта Memcached и использовала протокол Memcached. После объединения CouchOne и Membase, Couchbase продолжила разработку ПО Membase и позже изменило его название на Couchbase Server.
Сегодня, я думаю, большинство людей считает, что Couchbase Server это новая версия CouchDB, но на самом деле это новая версия Membase. Она всё ещё использует протокол Memcached и не использует REST API от CouchDB. Между тем CouchDB это всё ещё CouchDB, активно поддерживаемая и развивающаяся как проект Apache.
Теперь об отличиях:
Couchbase Server не полностью опенсорсное/свободное программное обеспечение. Есть две версии: Community Edition (свободная, но без последних исправлений ошибок) и Enterprise Edition (есть ограничения на использование, касающиеся конфиденциальности, аудитов от Couchbase Inc., которые «будут проводиться в обычное рабочее время на объектах Лицензиата» и другие условия, характерные для проприетарного ПО, которые многие люди могут счесть неприемлемыми).
CouchDB это опенсорсное/свободное программное обеспечение (без обязательств), проект The Apache Software Foundation и распространяемое по лицензии Apache License, Version 2.0 (DFSG-compatible, FSF-approved, OSI-approved, GPL-compatible, non-copyleft, commercial-friendly).
Я никогда не видел, чтобы на это указали прямо, но это, возможно, самое большое отличие между этими двумя базами данных потому, что это о философии моделей распределённых вычислений, а не только о некоторых особенностях, API или лицензировании. CouchDB и Couchbase Server совершенно разные в своих представлениях о построении распределённых систем и баз данных.
Согласно теореме CAP (consistency, availability, partition tolerance) - невозможно для распределённой базы данных одновременно обеспечивать согласованность данных, доступность и устойчивость к разделению.
CouchDB это система типа AP (обеспечивает доступность и устойчивость к разделению)
Couchbase Server это ИЛИ система типа CP (согласно Википедии) ИЛИ система типа CA (согласно техническому апдейту Couchbase) - ЧТО ИЗ ЭТОГО ПРАВИЛЬНО? ПРОКОММЕНТИРУЙТЕ, ПОЖАЛУЙСТА.
Вот, что я счёл необходимым указать из списка особенностей CouchDB, которые не поддерживаются в Couchbase Server:
Эти возможности CouchDB могут быть важны или не важны для вас, так что является ли их отсутствие недостатком или нет - строго субъективное мнение, но я думаю, что решение о том, переключаться с CouchDB на Couchbase Server или нет, должно основываться на этих различиях и том, зависите ли вы от этих возможностей в вашей текущей реализации на основе CouchDB.
Например, если вас заинтересовала CouchDB после просмотра изменений в CouchDB на NodeCamp, о которых рассказывал Mikeal Rodgers или один из уроков CouchApp от J. Chris Anderson, то вам стоит осознавать, что если вы хотите перейти на Couchbase Server, то вам придётся забыть о довольно многом из того, о чём они рассказывали.
Поэтому я бы сказал, что Couchbase Server выглядит как эволюция Memcached и Membase (но не как эволюция CouchDB) и поэтому выглядит как хороший продукт если вы уже используете Memcached и Membase. Если вы используете CouchDB для самых простых задач, то вы можете рассматривать использование Couchbase Server для них и он, возможно, будет работать лучше (если вы не паритесь о лицензионных ограничениях). Но если вы пользуетесь какими-то функциями, которые уникальны в CouchDB (например, changes feed, CouchApps, двухуровневая архитектура, peer-to-peer репликация и т.д.), то вам стоит забыть о них, или остаться на CouchDB. В любом случае, убедитесь, что прочитали и поняли инструкцию по миграции на Couchbase для пользователей CouchDB до того, как будете думать о переходе.
У людей часто складывается неверное впечатление (возможно после прочтения чего-то вроде «Какое будущее у CouchDB? Будущее это Couchbase»), что CouchDB как-то устарел по сравнению с Couchbase Server, или что это старая версия Couchbase. Тем временем CouchDB активно развивающийся open-source проект, Couchbase Server это совершенно отдельный проект (это более новый проект, но это не новая версия CouchDB - они даже не совместимы) и поскольку даже новые инструменты для создания CouchApps всё ещё продолжают разрабатываться (например, Kanso project), то CouchDB никуда не исчезнет в ближайшее время.
Я надеюсь, что это внесёт ясность. Пожалуйста, исправьте меня, если я где-то неправ.
Couchbase Server на самом деле новое название для Membase Server (он был переименован в Couchbase Server где-то в районе версии 1.8). Взгляните на обзор Couchbase 2011 года:
К сожалению, мы чертовски запутали многих наших пользователей. В дополнение к Membase Server и нашим новым мобильным продуктам мы также предложили Couchbase Single Server, который является собранным пакетом Apache CouchDB.
Кроме того, мы начали выпускать превью для разработчиков Couchbase Server 2.0, который включает технологию CouchDB в Membase Server - но этот продукт не был совместим с Couchbase Single Server (или CouchDB). [...] Membase Server будет переименован в Couchbase Server 1.8 в следующем релиза в январе - небольшой шаг для того, чтобы облегчить путаницу с названием. Как и было запланировано в самом начале, релиз Couchbase Server 2.0 (на текущий момент Developer Preview 3) добавить функционал индекса и запроса. В то время как Couchbase Server 2.0 будет включать в себя существенную часть технологий из проекта CouchDB, он не будет иметь обратной совместимости с CouchDB и его не стоит рассматривать как «версию CouchDB».
Решил написать итоги, но до НГ было как-то не до того, а на праздниках нормального интернета не было.
2013-й был как шторм, бросало туда-сюда.
Из приятного - 3 новые страны за год: Тайланд, Франция и Швеция. Францию, правда, кроме Парижа, я не видел, да и там я только по центру перемещался, а вот Тайланд и Швецию посмотрел пристально и в нескольких местах.
Буду так же, как обычно, иллюстрировать год.
Забавно, но год начался с ПТВП. 1 января мы с Ваней пошли в MOD на их концерт. Это как-то было... эпично очень :)
В феврале классно скатался на 2 недели в Тайланд, а конкретно на Самуи. Спасибо Оле и Рафаэлю за офигенное гостеприимство. Хорошо там, всё-таки, отдыхать.
В этом году часто выбирались на природу. Был, например, пикник у ещё не растаявшего залива в Комарово.
Скатались разок в Финляндию, типа по работе, а на самом деле просто пошататься :)
Летом шикарно скатались два раза с палаткой на Ладогу. На природе вообще очень классно :)
В августе на 4 дня сгоняли в Париж. Красивый город. Красота эта очень равномерно размазана по всему городу :) В Париже были на фестивале Rock en Seine. Увидел вживую снова потрясающее выступление Nine Inch Nails, ну и заценили System Of A Down.
Опять было много много концертов в этом году. В 2014 я уже снимать их если и буду, то очень редко. А в 2013 были круты:
ПТВП в MOD'е 1 января
Diablo Swing Orchestra в Авроре 23 февраля. Вообще знаковый был день :)
Title Fight в MOD'е 4 мая
БКМСБ в Авроре 12 мая
4 апреля в Авроре 12 мая
Billy's Band в Авроре, 31 мая
Anacondaz в Авроре, 8 июня. Anacondaz вообще стали какой-то объединяющей всех группой в этом году.
Eskimo Callboy в Авроре 8 октября
Annihilator в Авроре 8 ноября
Ну и из нового в 2013 - Забитые. Алкоголики, тунеядцы и хулиганы, но крутые и весёлые.
Ну а в целом - отчасти был продуктивный год, отчасти - бездарно провальный. Свои проекты так и не запустил, буду запускать в новом. От одной из двух работ отказался и в целом собираюсь пока поработать на себя в свободное время. Да и вообще пора уже заняться более серьёзными вещами, чем на концерты бегать с фотиком. Было много веселья, много негатива, но всё уже в прошлом. Двигаемся дальше.
Закончился 2013-й поездкой в Швецию, но это уже другая история :)
Ну и закончу, пожалуй, как обычно, песней.
Есть проблема с Homebrew в OS X 10.9 Mavericks - некоторые пакеты не компилятся из исходных кодов. Касается это программ, написанных на C++. Вчера пришлось потратить некоторое количество времени на её решение.
Судя по гуглению, проблема касается только тех, кто обновлялся в 10.8 на 10.9. У тех, кто ставил систему с нуля - вроде бы всё хорошо.
Вчера получил вот такое:
$ brew update
Updated Homebrew from f949b212 to 9d10c43e.
==> Updated Formulae
gfortran
$ brew install spidermonkey
==> Downloading http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz
Already downloaded: /Library/Caches/Homebrew/spidermonkey-1.8.5.tar.gz
==> ../js/src/configure --prefix=/usr/local/Cellar/spidermonkey/1.8.5 --enable-readline --enable-threadsafe --with-system-nspr --enable-macos-target=10.9
==> make
==> make install
Error: spidermonkey dependency readline was built with the following
C++ standard library: libstdc++ (from clang)
This is incompatible with the standard library being used
to build spidermonkey: libc++ (from clang)
Please reinstall readline using a compatible compiler.
hint: Check https://github.com/mxcl/homebrew/wiki/C++-Standard-Libraries
Погуглив и потыкавшись в issues на github'е, пошёл по ссылке, которая в консоли была в последней строчке. Там было:
Есть две стандартные C++ библиотеки, которые поддерживают компиляторы Apple.
По умолчанию в 10.8 и более ранних использовалась libstdc++, она поддерживалась компиляторами Apple GCC, GNU GCC и clang.
В 10.9 по умолчанию используется libc++, она же по умолчанию в clang на более старых платформах при билдинге кода C++11.
Существуют некоторые несовместимости между несколькими стандартными C++ библиотеками, поэтому Homebrew отбраковывает установку софта если его зависимость была собрана с несовместимой C++ библиотекой. Он рекомендует вам собирать дерево зависимостей используя совместимый компилятор.
Если вы обновились до 10.9 с более ранней версии - потому, что по умолчанию теперь как C++ библиотека используется libc++, возможно вы не сможете собрать из исходных кодов программы, чьи зависимости были собраны в 10.8 или более ранних. Если вы читаете это потому, что были направлены сюда ошибкой компиляции, вы можете исправить всё переустановив зависимости пакета, который вы пытаетесь собрать.
Вот, собственно, и решение проблемы. Если вы ставите какой-то пакет (в данном случае spidermonkey) и видите ошибку вроде:
Error: spidermonkey dependency readline was built with the following
C++ standard library: libstdc++ (from clang)
то нужно просто переустановить зависимость, на которую ругается компилятор. В данном случае readline. Просто выполнив команду:
brew reinstall -v readline
После того, как зависимость будет пересобрана - сам пакет установится.
Собственно, я с этим столкнулся, когда пытался установить новую версию CouchDB. Она тянет за собой spidermonkey, которая тянет за собой readline. Обе зависимости пришлось просто переустановить.
Надеюсь, заметка кому-нибудь сэкономит время.

Обновил сегодня рабочий хакинтош до 10.9. Всё довольно странно, но реализуемо.
До этого стояла 10.8.5 Mountain Lion. Через Mac App Store скачал обновление Mavericks. Запустил - установщик попросил перезагрузку. После перезагрузки ничего не произошло - просто загрузилась Mountain Lion снова.
Для установки обновления нужно следующее:





А после обновления начинаются опять танцы с бубном, установка kext'ов и прочего. Естественно макось после обновления у меня не запустилась. Запустилась она только с флагами -x -v -f для загрузчика. В безопасном режиме я запустил Multibeast 6, который специально для Mavericks сделан, установил EasyBeast - какой-то базовый набор kext'ов.

Поставил, ребутнулся - чёрный экран. Как оказалось, теперь в Multibeast 6 по умолчанию для загрузчика стоит флаг GraphicsEnabler=No. Именно поэтому у меня видео и не стартовало и был чёрный экран при загрузке системы. Когда я это нагуглил, добавил этот флаг при загрузке системы - всё завелось. Через Multibeast добавил этот флаг в Bootloader и готово. Ну а после этого нужно было разрулить опять Kernel Panic, которые традиционно появились после апдейта и описаны тут. Плюс дрова на звук - и мой хакинтош обновлён и работает теперь на Mavericks.
Сохраняю это тут, на всякий случай, если бы знал всё заранее - сэкономил бы 2-2.5 часа себе на перезагрузках и гуглениях.