サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
yomi322.hateblo.jp
/dev/input/event* のデバイスの名前とかを表示する。 #include <dirent.h> #include <fcntl.h> #include <linux/input.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/ioctl.h> #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> int is_event_device(const struct dirent *dir) { return strncmp("event", dir->d_name, 5) == 0; } int main(void) { struct dirent **namelist; int i, ndev; nd
SD12月号のdocker特集にあったやつ。 ngixnxをリバースプロキシとして目的のdockerのコンテナにプロキシする。 dockerのコンテナの管理とかはfig使った。 meu@u01:~/docker/dproxy$ find . -type f ./linkd/Dockerfile ./linkd/linkd ./fig.yml ./redis/Dockerfile ./redis/redis.conf ./nginx/Dockerfile ./nginx/nginx.confmeu@u01:~/docker/dproxy$ cat fig.yml nginx: build: nginx command: /usr/sbin/nginx ports: - "80:80" links: - redis redis: build: redis command: /usr/bin/r
まず簡単なところから。 #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("GPL"); static int __init hello_init(void) { printk(KERN_ALERT "hello, world\n"); return 0; } static void __exit hello_exit(void) { printk(KERN_ALERT "bye\n"); } module_init(hello_init); module_exit(hello_exit); Makefileはこんな感じ。ROOTDIR にはカーネルのソースがあるディレクトリを設定する。 obj-m := hello.o ROOTDIR := /home/yomi/kernel/linux-3.11 defau
Yokohama.vim #5 に行ってきました。 http://atnd.org/events/48511 こういうイベントに参加するのはかなり久しぶりでした。 アットウェアが移転したらしく会場が横浜からみなとみらいになってました。オフィスめっちゃきれいで羨ましい。 特にホワイトボードとかプロジェクターとかヤバい。 @srockstyle さんの発表「Vimで捗るRuby開発」。 なんか前日に資料つくったって言ってたわりにはすごくまとまっててすごくすごいと思った。 unite-railsとかの話だった気がする。vimに関連するところはあんまり覚えていない。 仕事中にtweetvimで誤爆したらしい。個人的にはどんな感じでchef使ってるのか興味がある。 @thinca さんがライブコーディングでunite-chefを作った。まじやばいまんぼう。 Vim養成講座 4人ずつ3グループに分かれ
QuickCheckでテストに使われるランダムな値の設定とか。 QuickCheckを使うには Test.QuickCheck モジュールが必要。 参考: 本物のプログラマはHaskellを使う - 第17回 QuickCheckでデータ駆動型テストを行う:ITpro 本物のプログラマはHaskellを使う - 第18回 QuickCheckを使ってできることとできないこと:ITpro ランダムに値を生成するのに arbitrary を使って 生成される値をみるには sample を使う。 >>> sample (arbitrary :: Gen Int) -1 0 -1 0 13 -6 -71 105 535 -259 167 >>> sample (arbitrary :: Gen [Int]) [] [2] [4,4] [-5,0] [-17,-20,31,2] [-3,48,-31
Prelude に const という関数がある。型は const :: a -> b -> a 簡単に言うと、引数を2つとって1つ目の引数をそのまま返す関数。 Prelude> const 1 2 1これと id を組み合わせてみると、引数を2つとって2つ目をそのまま返すようになる。 const id :: a -> b -> b Prelude> const id 1 2 2これは const id x = id となるから。 このように const に関数を与えると便利に使える場合がある。例えば myLast = foldr1 (const id) でリストの最後の要素を求めることができたり myLength = foldr (const (+1)) 0 でリストの長さが求められる。
新しい環境に一からインストールするのが面倒なのでコマンド作った。 もうすでに誰かがやってるのかもしれない。 set nocompatible filetype off let s:neobundledir = expand('~/local/neobundle') if isdirectory(s:neobundledir) if has('vim_starting') execute 'set runtimepath+=' . s:neobundledir . '/neobundle.vim' endif call neobundle#rc(s:neobundledir) NeoBundle 'Shougo/neobundle.vim' NeoBundle 'Shougo/unite.vim' NeoBundle 'Shougo/vimproc', { 'build': { 'unix'
scalaのビルドにsbtってのが便利らしい。 ついでにテストにspecs2ってのを使ってみるよ。 とりあえず、sbtインストール。 archにはパッケージがあった。さすがや。 % yaourt -S sbtHello, World — sbt Documentationを参考に。。 とりあえず練習用に hello というディレクトリを作ってその中に hello.scala を作る。 中身は適当。 // hello/hello.scala object Hello { def main(args: Array[String]) = println("hello") } そしたら動かしてみる。 % sbt run [info] Set current project to default-a543dd (in build file:/home/yomi/tmp/hello/) [info]
Haskell の Arrow の使い方とか。といっても、よくわかってないので Control.Arrow の関数をいくつか使ってみるだけ。Arrow は今のところ、タプルに関数を作用させる時に便利になるくらいのイメージ。 まず、first と second。 first :: Arrow a => a b c -> a (b, d) (c, d) second :: Arrow a => a b c -> a (d, b) (d, c) それぞれ、受け取った関数をタプルの最初の要素と次の要素に作用させる。 import Control.Arrow main :: IO () main = do print $ first (+3) (1, 2) print $ second (+3) (1, 2) (4,2) (1,5)次に (***)。 (***) :: Arrow a => a b
この記事はVim Advent Calendar 2012 : ATNDの66日目の記事になります。 65日目はおしょーさんのそうだ Vim で画像を表示させよう - C++でゲームプログラミングでした。 さて、Vimで突然の死というと Unite.vimで突然の死に備える | かなりすごいブログ mattn/ctrlp-sudden-death · GitHub はじめてVimプラグインを書いた話 - metropolis 突然の死 - Memo CtrlPプラグインでの「突然の死」作ったった - 29th Sta. こんな感じにいろんな人が作っています。たくさんありますね。 ちなみに突然の死ってのは _人人人人人_ > 突然の死 <  ̄^Y^Y^Y^Y^Y ̄こんなやつです。 この記事ではこの枠を作るオペレータを作りましょう。 完成品はyomi322/vim-operator-sudde
あけましておめでとうございます。 この記事はVim Advent Calendar 2012 : ATND 44日目の記事になります。 43日目はフォルダ間の移動を高速に「どこでもどあゔぃむー」 - honbin logでした。 この記事ではvimshellからツイットするtweetコマンドを作ってみます。 完成版はhttps://github.com/yomi322/vimshell-tweetにあります。 vimshellのコマンドを作るには autoload/vimshell/commands/ というディレクトリの中に コマンド名.vim というファイルをつくります。 中身はとりあえずこんな感じです。 " autoload/vimshell/commands/tweet.vim let s:save_cpo = &cpo set cpo&vim let s:command = {
配列を引数にとる関数にstd::vectorを渡すときは &v[0] &v.front() のどちらかを使えばよい。サンプルコード #include <iostream> #include <vector> void Show(const int* array, int size) { for(int i = 0; i < size; ++i) { std::cout << array[i] << ' '; } std::cout << std::endl; } int main() { std::vector<int> v(10); for(size_t i = 0, size = v.size(); i < size; ++i) { v[i] = i * i; } Show(&v.front(), v.size()); } 追記 5/24 id:bolerosさん、id:rhysdさん
arch linux をインストールして mikutter が動くまで。 Beginners' Guide - ArchWiki と Installation Guide - ArchWiki をみながらやる。 Arch Linux - Downloads からインストーラーをダウンロードする。 archlinux-2012.11.01-dual.iso が今の最新版。 パーティションの設定。この辺よく分かってないので適当。 # fdisk /dev/sdaしてからがんばる。結果はこんな感じになってる。 # fdisk -l /dev/sda Disk /dev/sda: 500.1 GB, 500107862016 bytes, 976773168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/ph
tweetvimのunite sourceを作った。 https://github.com/yomi322/unite-tweetvim tweetvim/name キャッシュしてあるユーザー名が対象。アクションは tweet: ユーザー名を含んだ状態でtweetvim_say(デフォルトアクション) search: ユーザー名でTL検索 user_timeline: ユーザータイムラインを表示 など。 tweetvim/tag, tweetvim/tag_new, tweetvim/tag_buffer それぞれ、キャッシュしてあるハッシュタグ、新しいハッシュタグ、tweetvimバッファ内のハッシュタグが対象。 tweet: ハッシュタグを含んだ状態でtweetvim_say(デフォルトアクション) search: ハッシュタグでTL検索 cache: 選択したタグをキャッシュに追加す
このページを最初にブックマークしてみませんか?
『yomi322.hateblo.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く