-rw-r--r-- 500B 26 февр. 2013 · 69DF4A1 · ~1 мин

The Ghost Inside в Арктике, 25 февраля 2013, видео

the ghost inside видео

Сегодня (уже вчера) снимал в Арктике группу The Ghost Inside из штатов. Удивительно, но микрофон фотика выдержал. Звук на сцене, конечно, совсем другой, но зато динамично получилось.

[↵] открыть пост the-ghost-inside-v-arktike-25-fevralya-2013--video.md
-rw-r--r-- 900B 19 февр. 2013 · C4B7FE3 · ~1 мин

Phuket Airport Schizophrenia

phuket airport schizophrenia видео путешествия

Вернулся из Тайланда. На обратном пути мне пришлось ждать 6 часов ночью в аэропорту Пхукета до начала регистрации на мой рейс. Я очень рассчитывал на ирландский паб в аэропорту, но, как оказалось, он был до 11 вечера. В результате в аэропорту было закрыто всё кроме регистраций на рейс. За эти 6 часов я изучил все 3 этажа аэропорта, наснимал немного видео и даже нашёл розетку, чтобы подзарядиться.

[↵] открыть пост phuket-airport-schizophrenia.md
-rw-r--r-- 1.7K 10 янв. 2013 · 87BA54F · ~2 мин

PHP-скрипт для сборки всех видов в CouchDB

couchdb скрипты

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

<?php

set_time_limit( 0 );

// all dbs
$ch = prepareCurlResource();
curl_setopt( $ch, CURLOPT_URL, 'http://localhost:5984/_all_dbs' );
$data = curl_exec( $ch );
$dbs = json_decode( $data );

foreach ( $dbs as $db ) {
    // skip _users and _replicator
    if ( substr( $db, 0, 1 ) == '_' )
        continue;

    // getting all databases
    $chCC = prepareCurlResource();
    curl_setopt( $chCC, CURLOPT_URL, 'http://localhost:5984/' . $db . '/_all_docs?startkey="_design/"&endkey="_design0"&include_docs=true' );
    $data = json_decode( curl_exec( $chCC ) );

    if ( false === empty( $data->rows ) ) {
        foreach( $data->rows as $design ) {

            // creating views of design
            if ( false === empty( $design->doc->views ) ) {
                foreach( $design->doc->views as $viewName => $tmp ) {
                    echo 'Creating view: ' . $db . '/' . $design->id . '/_view/' . $viewName . "\n";

                    $chCC = prepareCurlResource();
                    curl_setopt( $chCC, CURLOPT_URL, 'http://localhost:5984/' . $db . '/' . $design->id . '/_view/' . $viewName . '?limit=0' );
                    curl_exec( $chCC );
                }
            }
        }
    }
}

function prepareCurlResource() {
	$ch = curl_init();
	curl_setopt( $ch, CURLOPT_PORT, 5984 );
	curl_setopt( $ch, CURLOPT_HEADER, false );
	curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
	curl_setopt( $ch, CURLOPT_HTTPHEADER, array( 'Content-type: application/json' ) );

	return $ch;
}
[↵] открыть пост php-skript-dlya-sborki-vseh-vidov-v-couchdb.md
-rw-r--r-- 12K 31 дек. 2012 · 181EA8A · ~6 мин

Итоги года 2012

новый год итоги жизнь концерты итоги года

Год был безумный. Насыщенный. Со всеми вытекающими.

[↵] открыть пост itogi-goda-2012.md
-rw-r--r-- 2.7K 18 дек. 2012 · EDC0F30 · ~1 мин

Про экранирование URL'ов изображений с русскими именами в Objective-C

objective-c ios

Начало начальство у нас вставлять в новости у нас на портале изображения, названные русскими именами, вроде Фото-Ресторана.jpg.

Картинки из новостей у нас показываются в приложении, соответственно по этим URL'ам они в приложение и тянутся.

Соответственно приходит в приложение URL уже закодированный, например:


http://allcafe.ru/s/pic/news/!_2012/2012_12/%D0%A0%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D0%BD-Graf-in-%D0%A1%D0%B0%D0%BD%D0%BA%D1%82-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3-%D0%B7%D0%B8%D0%BC%D0%BD%D1%8F%D1%8F-%D1%82%D0%B5%D1%80%D1%80%D0%B0%D1%81%D0%B0.jpg

В приложении используется класс AsynchronousUIImage, найденный мною около года назад в интернетах. Класс просто асинхронно загружает картинку с помощью NSURLConnection.

- (void)loadImageFromURL:(NSString *)anUrl {
    anUrl = [anUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:anUrl] 
        cachePolicy:NSURLRequestReturnCacheDataElseLoad 
        timeoutInterval:30.0
    ];

    connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}

Собственно, в stringByAddingPercentEscapesUsingEncoding оказался затык. Т.к. URL'ы приходят уже экранированными, то, похоже, происходило повторное экранирование и картинка просто не загружалась. Ну а если не прописан из протокола NSURLConnectionDelegate метод connection:didFailWithError: - то это чревато падением приложения, с чем я и столкнулся.

Итог ковыряний забавен, если есть URL'ы с кириллицей - то экранировать их надо или на сервере перед отправкой в клиент, или в клиенте. Если экранировать и там, и там - то не работает. Если нигде не экранировать - то тоже не работает :)

Благо я справился на серверной стороне ничего не сломав и избежав срочного обновления клиента. На Android, кстати, такой проблемы нет.

[↵] открыть пост pro-ekranirovanie-url-ov-izobrazhenij-s-russkimi-imenami-v-objective-c.md
-rw-r--r-- 1016B 16 дек. 2012 · 1B3F6E5 · ~1 мин

Есть Есть Есть в клубе DA:DA 14 декабря 2012, аудио

есть есть есть бутлеги аудио

Есть Есть Есть в клубе DA:DA 12 декабря 2012

Записал в 3-й раз концерт Есть Есть Есть.
Презентовали альбом Сатана в отпуске.

Фото для обложки щёлкнула Даша.

Трэк-лист:

01. Интро
02. Гомер
03. День Победы
04. Бродский night, Святки skit
05. Святки
06. Плёнка
07. Капитошки
08. Журналистовцы
09. Уже
10. Поэма героика
11. Сатана в отпуске
12. Весна
13. Резюме
14. Лиссабон
15. Палитра
16. Утка-маляр
17. Осень

Скачать (mp3, 320 kbps, 230 mb): Narod | Rutracker

[↵] открыть пост est-est--est--v-klube-da-da-14-dekabrya-2012--audio.md
-rw-r--r-- 1.6K 11 дек. 2012 · 4AFEB6A · ~1 мин

Оптимизация iOS-приложения для экрана iPhone 5

шпаргалки ios objective-c iphone 5
  1. Для xib-файлов для View выставить Size: Freeform. Тогда интерфейс на всю высоту экрана растянется. Если надо всё кастомно - то можно выставить для вида размер для 3.5-дюймового экрана или 4-дюймового и программно нужный подставлять.
    Оптимизация ios-приложения для экрана iPhone 5
  2. Самое главное - добавить стартовую картинку для 4-дюймового экрана. Без неё апп почему-то думает, что экран маленький. И да, если раньше никакой стартовой картинки не использовалось - теперь походу придётся.
    Оптимизация ios-приложения для экрана iPhone 5

Как оно со Storyboard пока не знаю. И ещё мелкая полезность - если в коде надо определить - широкий ли экран или обычный, то можно а prefix.pch задефайнить:

#define IS_WIDESCREEN ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON ) 

и проверять в коде:

if ( IS_WIDESCREEN == YES ) {
    // юзать интерфейс для 4 дюймов
} else {
    // юзать интерфейс для 3.5 дюймов
}
[↵] открыть пост optimizatsiya-ios-prilozheniya-dlya-ekrana-iphone-5.md
makoni@arm1:~/blog$ cd ../page-24/ // ← предыдущая cd ./page-26/ // ещё посты →