четвер, 24 січня 2013 р.

NGINX

Reguest body limit of 1 MB by default

для загрузки файлов обычно нужно увеличить значение параметра client_max_body_size (квоты в 1 МБ маловато для фоток)

upstream  backend {
   server unix:/home/... ..... ... /shared/unicorn.sock fail_timeout=0;
}

server {
        listen   80 default;
        server_name default;

        access_log  /var/log/nginx/localhost.access.log;
        error_log /var/log/nginx/localhost.error.log;

client_max_body_size 4M;    <-- 
client_body_buffer_size 128k;

        root /home/.... ..... /current/public;

        try_files $uri/index.html $uri.html $uri @myapp;

        location @myapp {
                proxy_pass http://backend;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect off;
        }
}

четвер, 3 січня 2013 р.

MPFlipViewController и 3D перспектива

При попытке применить CATransform3DRotate к изначальной UIView для MPFlipViewController чтобы нарисовать такую листалку
 меня ждал облом :( . MPFlipViewController рендерит UIImage для листания и любые 3D транформации ios игнорит при этом. Получается картинка при листании теряет все 3D трансформации и становится абсолютно плоской.
Единственный способ — не использовать листалку из MPFlipViewController, а делать поворот самому (получение screenshot на айфоне возможно, но только через приватное api)

Анимирование:

[CATransaction begin];
{
    [CATransaction setCompletionBlock:^{
        можно задать вложенные транзакции/completions
    }];
    ...
    CABasicAnimation * anim = [CABasicAnimation     animationWithKeyPath:@"sublayerTransform.rotation.y"];
    anim.toValue = [NSNumber numberWithFloat:mp_radians(90)];
    anim.duration = 0.1;
    
     // эти две строки:  оставаться в посленей точке анимации (не возвращаться на исходную позицию)
    anim.removedOnCompletion = NO;
    anim.fillMode = kCAFillModeForwards;

    [self.rightPage.layer addAnimation:anim forKey:@"rotateRightPageAnimation"];
}
[CATransaction commit];



четвер, 27 грудня 2012 р.

Image resources -568h for iPhone5

Наивно ожидал, что ios умеет подгружать все файлы ресурсов с суфиксом "-568h".
Нет, по умолчанию понимает только Default-568h@2x.png . Для остальных мест, например фон страницы, необходимо создавать костыли — проверять высоту экрана : если 568 точек , то загружать файл ресурса вручную.

неділя, 23 грудня 2012 р.

Ruby Net:HTTP and https

# подготовка параметров
uri = URI('https://server/path')
request_params = {'param1' => 'val1'}

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true if uri.scheme == 'https'

http.start do |h|
  request = Net::HTTP::Post.new uri.request_uri
  request.set_form_data(request_params)
  response = h.request request # Net::HTTPResponse object

  # обработка response.body
end

iOS5 не делает retain для невизуальных компонентов storyboard

В storyboard есть прекрасная возможность помещать невизуальные компоненты (например gesture recognizers) на панельку под контроллером.
Главное: добавить retain property для этого компонента в сам контроллер (сделать retain вручную) — иначе в iOS 5 получится zomby.
В iOS 6 этот же код будет работать и без retain
Как себя ведёт xcode в случае с ARC — не знаю, не пробовал