arm1.ru

Этот день 2.0

event Mar 6, 2014 at 15:46

Этот день 2.0

Выпустил обновление приложения Этот день. Передизайнил под iOS 7 (что примерно равно тому, чтобы убрать вообще почти всё оформление). Стало, по-моему, приятнее и лаконичнее.

Заюзал стандартный UIActivityViewController для шаринга через Facebook, Twitter и другие встроенные вещи, типа отправки по email, sms/iMessage и т.д., плюс прикрутил для шаринга в ВК Vkontakte-iOS-SDK вместо самописной хрени, что была раньше. Правда, визуальных отличий особо для пользователя нет, да и пока у меня руки дошли всё наконец допилить, появился уже официальный SDK для iOS от ВК, но ковырять его, чтобы заменить то, что уже работает, не стал.

Попутно избавился от уже ненужного SBJson для работы с JSON, т.к. можно смело пользоваться уже встроенным в iOS NSJSONSerialization. Решил встроить в приложение мобильную Яндекс.Метрику, чтобы считать нормально пользователей и смотреть - кто, например, какой версия iOS пользуется и на каком девайсе. Пока наблюдаю за цифрами, познавательно.

Такое вот продолжение маленького проекта-хобби. Буду думать, чего бы в нём ещё запилить, и буду писать следующее приложение. А пока - качаем/обновляемся:

Загрузить

Отличия CouchDB от Couchbase

event Feb 19, 2014 at 01:03

Перевод ответа на 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.

Итоги года 2013

event Jan 10, 2014 at 14:24

Решил написать итоги, но до НГ было как-то не до того, а на праздниках нормального интернета не было.

2013-й был как шторм, бросало туда-сюда.

Из приятного - 3 новые страны за год: Тайланд, Франция и Швеция. Францию, правда, кроме Парижа, я не видел, да и там я только по центру перемещался, а вот Тайланд и Швецию посмотрел пристально и в нескольких местах.

Буду так же, как обычно, иллюстрировать год.

Проблемы компиляции C++-приложений у Homebrew в OS X 10.9 Mavericks

event Nov 20, 2013 at 16:53

Есть проблема с 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. Обе зависимости пришлось просто переустановить.

Надеюсь, заметка кому-нибудь сэкономит время.

Как обновить хакинтош с Mac OS X Mountain Lion до Mavericks

event Oct 30, 2013 at 16:49

Hackintosh Mac OS X Mavericks

Обновил сегодня рабочий хакинтош до 10.9. Всё довольно странно, но реализуемо.

До этого стояла 10.8.5 Mountain Lion. Через Mac App Store скачал обновление Mavericks. Запустил - установщик попросил перезагрузку. После перезагрузки ничего не произошло - просто загрузилась Mountain Lion снова.

Для установки обновления нужно следующее:

Впечатления от Windows Phone 8

event Oct 28, 2013 at 19:00

Lumia 625

Пользуюсь 4-й день Lumia 625. Наконец-то очень близко познакомился с Windows Phone 8. Всё оказалось гораздо приятнее, чем я думал.

Синхронизация папки с Яндекс.Диском, находящейся в другом месте

event Oct 7, 2013 at 15:19

Пока что Яндекс.Диск синхронизирует только файлы и папки, находящиеся внутри её папки и не даёт добавить папку извне, например, с другого жёсткого диска. Если не хочется пихать папку, которую нужно синхронизировать, в папку Яндекс.Диска - то в макоси можно создать symlink, например:

ln -s /Volumes/MyDisk/FolderToSync /Users/user/Яндекс.Диск/FolderToSync

В Windows, по идее, тоже можно использовать символическую ссылку.