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

   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をそのユーザーのものにする

ディスプレイの大きさ

いつも忘れてしまうのでここに書いておく

初めてのボーナスで買ったiMacのディスプレイの大きさ

20インチ(20")

iPad

9.7インチ(9.7")

初めて買ったMBA

MacBook Air 13インチ(13")

最近の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/[email protected]/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
"------------------------------------------------------------------------------------"

vimのちょっと役に立つ設定

NeoBundleを使ったときコメントの次の行に書こうとするとコメントが勝手に挿入されるを解除

autocmd FileType * setlocal formatoptions-=ro

NERDTreeをvim起動時に実行

autocmd VimEnter * NERDTree ./