-rw-r--r-- 529B 6 марта 2013 · D228F65 · ~1 мин

Валентин Стрыкало в Авроре, 2 марта 2013, видео

валентин стрыкало видео

Попробовал смонтировать небольшой бэкстейдж на саундчеке. Наснимал на 10 минут, но в итоге всё сократил до минуты. Антон, наш художник по свету, зафигачил очень крутой свет на этом концерте.

[↵] открыть пост valentin-strykalo-v-avrore-2-marta-2013--video.md
-rw-r--r-- 936B 27 февр. 2013 · 9EB9080 · ~1 мин

Diablo Swing Orchestra в Авроре, 23 февраля 2013, видео

diablo swing orchestra видео

Неожиданно крутой концерт группы Diablo Swing Orchestra из Швеции был 23-го февраля в Авроре. По описанию в виде «метал, оперный вокал, оркестровые инструменты» я ожидал какого-то мрачного скандинавского дэд-метала с вызовом Сатаны. А группа очень приятно удивила.

Со звуком, правда, что-то очень странное приключилось. Записался только в левый канал, пришлось выправлять, хотя проверил технику - всё вроде в норме.

[↵] открыть пост diablo-swing-orchestra-v-avrore-23-fevralya-2013--video.md
-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
makoni@arm1:~/blog$ cd ../page-24/ // ← предыдущая cd ./page-26/ // ещё посты →