ヘッダーを送信してイメージを取得

   NSURL* url = [NSURL URLWithString:@"hogehogehogeURL"];
    NSURLSessionConfiguration* config = [NSURLSessionConfiguration defaultSessionConfiguration];
    
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                           cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                       timeoutInterval:60.0];

    [request addValue:@"hogehoge" forHTTPHeaderField:@"hogehogeHeader"];
    [request setHTTPMethod:@"GET"];
    
    NSURLSession* session = [NSURLSession sessionWithConfiguration:config];
    NSURLSessionDataTask* task = [session dataTaskWithRequest:request
               completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                   UIImage* image = [UIImage imageWithData:data];
                   NSLog(@"");
               }];
    
    [task resume];

度 => ラジアン変換

標語

iPhoneエンジニアであるならば、
度からラジアンを求めたいときが多々あっても、
その逆のラジアンから度にしたいときはほとんどないだろう。

ということで、ラジアンにしたいときは以下の標語で覚えておけばよい

360で割って2πでラジアン

変換

度からラジアンへの変換。

(2 * M_PI/360) * hoge度

30度をラジアンに変換したいのなら

(2 * M_PI/360) * 30度

M_PI * (1/6)

となる

メモ

ビットによる状態(ステータス)の持ち方

bitによって状態を持つ方法

ビット 状態
0001 状態A
0010 状態B
0100 状態C
1000 状態D

このように、各々の桁でかぶらないように状態を作る。
そうすると、

状態Aと状態B は A|B -> 0011

のように判断することができる。

桁をかぶらせて状態を持つ場合

4桁目を日本なら1そうでないなら0みたいに定義して、

1001 東京
1010 神奈川
0001 北京
0010 ニューヨーク

などのように定義する方法もある。
ただし、このように4桁目にこのような意味を持たせた場合、実質の情報を3桁で行わないといけないので、
それほど多くの状態を表すことができない。

gitlab構築時に気になったコマンドを調べる

adduser

--disabled-login
$ adduser --disabled-login --gecos 'GitLab' git

adduser

--disabled-login
              Do  not  run passwd to set the password.  The user won't be able
              to use her account until the password is set.

       --disabled-password
              Like --disabled-login, but logins are still possible (for  exam-
              ple using SSH RSA keys) but not using password authentication.
--gecos
--gecos

はGECOSフィールドというところに GitLabという文字列を登録している?

sudo

-u
root以外のユーザーで実行するときに指定
-H
$HOMEをそのユーザーのものにする

最近のvimrc

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Neobundle 用(ここから)
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
" Neobundleを始める準備
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
set nocompatible
filetype off

if has('vim_starting')
  set runtimepath+=~/.vim/bundle/neobundle.vim
  call neobundle#rc(expand('~/.vim/bundle'))
endif

"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
" ここにインストールしたいプラグインのリストを書く
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NeoBundle 'scrooloose/nerdtree'
NeoBundle 'fholgado/minibufexpl.vim'
NeoBundle 'tpope/vim-endwise.git'

NeoBundleFetch 'Shougo/neobundle.vim'

"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
" Neobundleを終わる準備
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
filetype plugin on
filetype indent on
autocmd FileType * setlocal formatoptions-=ro
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Neobundle 用(ここまで)
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  各種設定
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"set autoindent                   "新しい行のインデントを現在行と同じにする
set hidden
set wildmode=list:longest        "vimのコマンドを補完
set nu                           "行番号表示
set showcmd                      "コマンドを表示
set hlsearch                     "検索文字をハイライト

"タブ可視化
"set list
"set listchars=tab:..

"------------------------------------------------------------------------------------"
"Neocomplete & Neocomplcache
"------------------------------------------------------------------------------------"
" 条件を満たせばNeoComplete、満たさないときはNeoComplcacheを使う
if has('lua') && v:version >= 703 && has('patch885')
  NeoBundle "Shougo/neocomplete.vim"
  " Disable AutoComplPop.
  let g:acp_enableAtStartup = 0
  " Use neocomplete.
  let g:neocomplete#enable_at_startup = 1
  " Use smartcase.
  let g:neocomplete#enable_smart_case = 1
  " Set minimum syntax keyword length.
  let g:neocomplete#sources#syntax#min_keyword_length = 1
  let g:neocomplete#lock_buffer_name_pattern = '\*ku\*'
	let g:neocomplcache_enable_auto_select = 1
else
  NeoBundle 'Shougo/neocomplcache.vim'
  " Disable AutoComplPop.
  let g:acp_enableAtStartup = 0
  " Use neocomplcache.
  let g:neocomplcache_enable_at_startup = 1
  " Use smartcase.
  let g:neocomplcache_enable_smart_case = 1
  " Set minimum syntax keyword length.
  let g:neocomplcache_min_syntax_length = 1
  let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*'
	let g:neocomplcache_enable_auto_select = 1
endif

"------------------------------------------------------------------------------------"
" NERDTREE
"------------------------------------------------------------------------------------"
augroup IsNotGitCommit
  autocmd!
  autocmd VimEnter * NERDTree ./
	autocmd VimEnter * wincmd p
augroup END

autocmd BufRead COMMIT_EDITMSG autocmd! IsNotGitCommit

"------------------------------------------------------------------------------------"
" Rsense
"------------------------------------------------------------------------------------"
let g:rsenseHome = "~/opt/rsense-0.3"
let g:rsenseUseOmniFunc = 1

if !exists('g:neocomplcache_omni_patterns')
	let g:neocomplcache_omni_patterns = {}
endif
let g:neocomplcache_omni_patterns.ruby = '[^. *\t]\.\w*\|\h\w*::'

"------------------------------------------------------------------------------------"
" minibufexpl
"------------------------------------------------------------------------------------"
let g:miniBufExplMapWindowNavVim = 1 
let g:miniBufExplMapWindowNavArrows = 1 
let g:miniBufExplMapCTabSwitchBufs = 1 
let g:miniBufExplModSelTarget = 1 

"------------------------------------------------------------------------------------"
" neocomplete
"------------------------------------------------------------------------------------"
highlight Pmenu ctermbg=8
highlight PmenuSel ctermbg=1
highlight PmenuSbar ctermbg=0

"------------------------------------------------------------------------------------"
" vim起動時に前回の行で開く
"------------------------------------------------------------------------------------"
if has("autocmd")
    autocmd BufReadPost *
    \ if line("'\"") > 0 && line ("'\"") <= line("$") |
    \   exe "normal! g'\"" |
    \ endif
endif

"------------------------------------------------------------------------------------"
" 各種プログラムで構文チェク(:make)をCtr+c Ctr+cで行えるようにする
" 表示されたQuickFixはウィンドウを移動しなくても
" :cn および :cp で移動可能
"------------------------------------------------------------------------------------"
" Perl構文チェック
autocmd FileType perl compiler perl
autocmd FileType perl map <c-c><c-c> :make<cr> :cw<cr><cr>

" PHP構文チェック
au BufRead,BufNewFile *.php set makeprg=php\ -l\ %
au BufRead,BufNewFile *.php set errorformat=%m\ in\ %f\ on\ line\ %l
autocmd FileType php map <c-c><c-c> :make<cr> :cw<cr><cr>

" Ruby構文チェック
au BufRead,BufNewFile *.rb set makeprg=ruby\ -c\ %
au BufRead,BufNewFile *.rb set errorformat=%m\ in\ %f\ on\ line\ %l
autocmd FileType rb map <c-c><c-c> :make<cr> :cw<cr><cr>

" HTML構文チェック
autocmd FileType xhtml,html :compiler tidy
autocmd FileType xhtml,html :setlocal makeprg=tidy\ -raw\ -quiet\ -errors\ --gnu-emacs\ yes\ \"%\"
autocmd FileType xhtml,html map <c-c><c-c> :make<cr> :cw<cr><cr>

"------------------------------------------------------------------------------------"
"foldmethod(折りたたみの設定)
"------------------------------------------------------------------------------------"
"set foldmethod=indent
"let g:xml_syntax_folding=1
"au FileType html,xml,xhtml setlocal foldmethod=syntax

"set foldlevel=100 "Don't autofold anything

"------------------------------------------------------------------------------------"
" シンタックスハイライト
"------------------------------------------------------------------------------------"
syntax on
if has("gui_running")
  "colorscheme pyte
  "colorscheme newspaper
  "colorscheme wombat
else
  "colorscheme xoria256
  "colorscheme twilight256
	colorscheme elflord
endif

"php用
let php_sql_query=1
let php_htmlInStrings=1

"------------------------------------------------------------------------------------"
" 親をたどってtagsを探す
"------------------------------------------------------------------------------------"
set tags=tags;

"------------------------------------------------------------------------------------"
" omni補完
"------------------------------------------------------------------------------------"
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType xhtml set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS

"------------------------------------------------------------------------------------"
" キーバインド
"------------------------------------------------------------------------------------"
" omni補完 キーバインド変更
imap <C-f> <C-x><C-o>
map <C-c><C-n> :cn<CR>
map <C-c><C-p> :cp<CR>

" ヤンクで検索
map qqq@ /<C-r>"<CR>
" コマンド履歴
map qqq: q:
" 検索履歴
map qqq/ q/

if has("gui_running")
  map <C-k> :tabprevious<CR>
  map <C-j> :tabnext<CR>
endif

"------------------------------------------------------------------------------------"
" 自作コマンド
"------------------------------------------------------------------------------------"
command Setphp set filetype=php
command Setjavascript set filetype=javascript
command Sethtml set filetype=html

" y や dした後にfcなどすればよい
" copy to clipboard
if has("unix") && match(system("uname"),'Darwin') != -1 " mac
  " http://www.mail-archive.com/vim-latex-devel@lists.sourceforge.net/msg00773.html
  nnoremap fc :call system("pbcopy", @")<CR>
  nnoremap fp :r! pbpaste<CR>
elseif has('win32unix') " cygwin
  nnoremap fc :call system("putclip", @")<CR>
  nnoremap fp :r! getclip<CR>
endif

"------------------------------------------------------------------------------------"
" タブ幅の設定
"------------------------------------------------------------------------------------"
" expandtabはタブをスペースに変える
"set expandtab
set tabstop=2
set softtabstop=2
set shiftwidth=2

"------------------------------------------------------------------------------------"
"ステータスライン
"------------------------------------------------------------------------------------"
set laststatus=2                  "ステータスラインを常に表示

function! GetB()
  let c = matchstr(getline('.'), '.', col('.') - 1)
  let c = iconv(c, &enc, &fenc)
  return String2Hex(c)
endfunction
" :help eval-examples
" The function Nr2Hex() returns the Hex string of a number.
func! Nr2Hex(nr)
  let n = a:nr
  let r = ""
  while n
    let r = '0123456789ABCDEF'[n % 16] . r
    let n = n / 16
  endwhile
  return r
endfunc
" The function String2Hex() converts each character in a string to a two
" character Hex string.
func! String2Hex(str)
  let out = ''
  let ix = 0
  while ix < strlen(a:str)
    let out = out . Nr2Hex(char2nr(a:str[ix]))
    let ix = ix + 1
  endwhile
  return out
endfunc

"ステータスラインに文字コードと改行文字を表示する
" set statusline=%<[%n]%m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).':'.&ff.']['.&ft.']'}\ %F%=%l,%c%V%8P
if winwidth(0) >= 120
  set statusline=%<[%n]%m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).':'.&ff.']'}%y\ %F%=[%{GetB()}]\ %l,%c%V%8P
else
  set statusline=%<[%n]%m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).':'.&ff.']'}%y\ %f%=[%{GetB()}]\ %l,%c%V%8P
endif

"set statusline=%{GetB()}

"------------------------------------------------------------------------------------"
" netrw
"------------------------------------------------------------------------------------"
" netrwは常にtree view
let g:netrw_liststyle = 3
" CVSと.で始まるファイルは表示しない
let g:netrw_list_hide = 'CVS,\(^\|\s\s\)\zs\.\S\+'
" 'v'でファイルを開くときは右側に開く。(デフォルトが左側なので入れ替え)
let g:netrw_altv = 1
" 'o'でファイルを開くときは下側に開く。(デフォルトが上側なので入れ替え)
let g:netrw_alto = 1


"------------------------------------------------------------------------------------"
" end
"------------------------------------------------------------------------------------"