10 сентября 2013 г.

Динамическое добавление swap в Linux

Сегодня, на очень короткое время на компьютере понадобилось добавить swap, переразбивать ради этого диск с системой совсем не хотелось. Оказывается в Linux можно создать файл и сказать системе использовать его как своп. Спасибо блогу за простое решение.
$ free -m
 total used free shared buffers cached
Mem: 2018 1225 793 0 7 335
-/+ buffers/cache: 882 1135
Swap: 2957 124 2832
$ dd if=/dev/zero of=swap.swap bs=1M count=100
100+0 записей считано
100+0 записей написано
скопировано 104857600 байт (105 MB), 0,768403 c, 136 MB/c
$ mkswap swap.swap
Устанавливается пространство для свопинга версии 1, размер = 104853 кБ
без метки, UUID=1b3f8a75-8214-406b-9841-a5f82bf56ae8
$ sudo swapon swap.swap
$ free -m
 total used free shared buffers cached
Mem: 2018 1327 691 0 7 436
-/+ buffers/cache: 883 1135
Swap: 3057 124 2932
и для удаления
$ sudo swapoff swap.swap
$ rm swap.swap
$ free -m
 total used free shared buffers cached
Mem: 2018 1239 778 0 8 348
-/+ buffers/cache: 883 1135
Swap: 2957 124 2832

27 апреля 2013 г.

Смена ориентации экрана в модальном окне iOS 5/6

Случилось мне недавно делать приложение для iOS, которое работает в портретной ориентации экрана и только одно вью (которое отображалось модально) нужно было отображать только в ландшафтной ориентации экрана. Что ж, решение для iOS 5.х довольно простое: в методе - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation модального окна просто прописываем нужный разворот устройства

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight);
}


Для iOS 6.x все оказалось немного сложнее:

1. В классе вью контроллера модального окна определяем обработчики методов

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
 return UIInterfaceOrientationLandscapeRight;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

- (BOOL)shouldAutorotate
{
    return YES;
}


2. Сразу после вызова показа модального окна устанавливаем положение статус бара:

 [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];


3. Перед тем, как убрать модальное окно, возвращаем статус бар в нужное положение:

 [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait animated:NO];


Как обычно пример на github-е.