2011年12月16日金曜日

MTMと電子工作コンテストに出展してきた

めっきり更新の途絶えていたこのブログ。
何をしていたかというと、これです。

http://elecontest.com/prize

このリンクは電子工作コンテスト2011の受賞作品を紹介するページです。
その中の新人賞とwhite-screen.jp賞に挙げられている「わっとボトル」。
これが自分の所属するチーム「どうしてこうなった」の作品なのです。

いろいろ大変でしたが、賞が頂けて嬉しい限りです。
それで、これを機にチームの中の何人かでモノづくり系のサークルを作ろうかと思っています。
新メンバーも見付かりそうで、いろいろ頑張ってみようと思います。

2011年12月14日水曜日

vimでhtmlの改行タグの挿入

vimでhtml書いてて改行タグをすんなり入れたかったので、
C-CRに割り当てようと思い、これで動くのか軽く調べてみたが、
Ctrl+改行をキーマップしようとしてわからなかったっていう記事が出てきただけだった。
しかし、物は試しとやってみたら普通にできた。
inoremap <C-CR> <br /><CR>
inoremap <C-Return> <br /><Return>
のどちらでも動きました。

2011年11月20日日曜日

ujihisa.vim#2に行ってきました

長らく放置されていたブログですが、ujihisa.vim#2に参加してきたので更新します。

今回の会場はmixi社様が提供してくれたとのことで、つくばからはるばる渋谷まで行ってきました。

会場には@Kaoriya氏、@ujihisa氏、@ShougoMatsu氏、@thinca氏などVim界の有名人が多くいらっしゃっており、ホントに自分のような未熟者が参加していいのかと、キョドってました。

最初の基調講演は@Kaoriya氏の「Vimのソースコードをdisる」でした。 big switchには笑いましたが、あのソースで動いてるっていうのが何よりすごい。 自分はCで書かれたあんな大規模なソースを読む気にならないのでホント尊敬です。

その次は@basyura氏による自作プラグインの紹介。 最近までrailsで開発してたのでunite-railsはもう少し早く知りたかったですね。 Vimの新しいtwitterクライアントを早く作られることを期待しています。

その他にもVim scriptについての発表や@sora_hくんのsimplenoteのuniteプラグインの紹介などがありました。
@thinca氏のライブコーディングと@ujihisa氏の喋りはなかなか見応えのある内容でした。
また、@ShougoMatsu氏のVim愛は基調講演でもとどまるところを知りませんでしたねw
ujihisa氏の基調講演はVimレベルについての話がありましたが、
自分はどんなもんでしょうかね?
プラグインはいろいろ試しに使ってみたりしてますが、自分ではほとんどVim scriptも書いてませんし……
と、まぁ、ためになるお話がたくさんありました。
その後の懇親会も皆さんVimもといオレオレエディタについて熱く語っており非常に楽しかったです。


@ShougoMatsu氏のサインをVimテクニックバイブルに書いていただくという今回の目的の一つも達成できました。

2011年8月30日火曜日

sassを導入するまでの流れ

sassはcssをもっと簡潔に構造的に書くためのものです。
今回はsassを導入するまでの流れを紹介します。
sassはrubyで実装されているため同時にrubyのインストールも必要です。
以前、構築した仮想マシン上に環境を構築してみましょう。
まずは、rubyのインストールです。
sudo yum install ruby
次にrubyのライブラリ管理ツールであるRubyGemsをインストールします。
sudo yum install rubygems
rubygemsを使ってrubygemsをアップデートしておきましょう。
sudo gem install rubygems-update
では、さっそくsassのインストール
sudo gem install sass
これでsassり放題!
sass input.sass output.css
みたいな感じでsassをcssに出力しちゃいましょう。
sass --watch input.sass:output.css
で自動で変換するように監視させることもできます。
次は、sassの書き方を書こうかと思います。

2011年8月20日土曜日

VirtualBoxの導入、フォルダの共有

久しぶりの更新です。
実家に帰省中でlinuxのほうのノートPCを置いてきたので、
いろいろできずに困っていたのですが、
これを機に仮想マシンを使ってみようかと思ったのでそれらのメモを残します。
まず、使ったのはVirtualBoxというソフトです。
今回はWindows7 64bit上のVirtulaBoxにLinuxを構成します。
公式サイトからWindows用のインストーラーをダウンロードしてきてインストールします。
起動すると、以下のような画面が出てきます。
左の画面は既に構成済みですが、インストール直後は左の欄は空だと思います。
それでは上の新規ボタンを押して仮想マシンを構成していきます。
まず、仮想マシンの名前と種類を決めます。自分は今までにCentOSとUbuntuぐらいしかLinuxを触ったことがなかったので、今回はFedoraを使ってみることにしました。
次の画面では割り当てるメモリの量を決めます。自分の好きな量を指定しましょう。
HDDは新規で次へ、特に気にせずどんどん次へいきましょう。
HDDの割り当てるサイズを聞かれるので好きに設定しましょう。デフォルトは8GBです。
最後にCreateで設定完了です。
さっそく作成された仮想マシンを起動してみましょう。
初回起動ウィザードが表示され、インストールメディアを要求されます。
今の状態はまだ中身のない空っぽの状態なので先ほど指定した仮想マシンの種類(OS)のイメージを入れる必要があります。
自分の場合はFedoraの公式サイトからliveCDのイメージを落としてきました。
メディアソースの右にあるフォルダアイコンからファイルを指定します。
指定したら次へ、起動と進み、起動しましょう。
デスクトップ上にインストールディスクが表示されるらしいのですが、
自分の場合は表示されませんでした。
とりあえず、自分のFedora15 32bitの場合では、
左上のApplications→System Tools→Install to Hard Driveでインストールを行いました。
これで仮想マシンの構築は完了です。

ここからは実OS(ホストOS)と仮想マシン(ゲストOS)とのフォルダの共有を行っていきます。
作成した仮想マシンの設定から共有フォルダを選び、新規で共有したいフォルダのパスと名前を設定します。
しかし、これだけでは実際に動作しません。
共有フォルダの欄の注意書きにも書いてあるようにGuest AdditionsというものをゲストOS側にインストールする必要があります。
そのためには以下の処理が必要となります(Fedoraの場合です、自分のOSにあったパッケージ管理を使いましょう)。
yum update
yum install dkms
yum install gcc
いずれもroot権限が必要です。suを使うか毎回sudoをしましょう。
これで必要なパッケージがそろったのでいよいよGuest Additionsのインストールです。
まず、Guest Additionsのイメージを載せる仮想ドライブを追加する必要があります。
一度、仮想マシンを終了し設定ボタンを押しましょう。
ストレージを選び、IDEコントローラーからCD/DVDドライブの追加を選びましょう。
追加するものは空で大丈夫です。
再び仮想マシンを起動します。
仮想マシン上のツールバーからデバイス→Guest Additionsのインストールを選びましょう。
ツールバーが非表示の場合は右のCtrlとHomeキーで(デフォルトの場合)メニューを表示できます。
インストールが終わったら再び仮想マシンを終了し、起動します。
共有フォルダの設定で自動マウントにしていれば/media/sf_フォルダ名に共有フォルダがマウントされています。
自動マウントでない場合は、
mount -t vboxsf 共有フォルダ名 ゲストOS上でのマウント先
といったコマンドでマウント可能です。
マウント先は
mkdir ~/share
あたりに適当に作ればよいでしょう。
自分でマウント先を選びかつ自動化したい場合は
/etc/rc.localに上記のコマンドを追記しましょう。
自分の場合は別PCのDropboxと共有したい設定ファイルがあるので~/Dropboxをマウント先にしました。
もう一つ忘れそうでしたが、共有フォルダのアクセス権限に気を付けてください。
設定で自動マウントにした場合はrootが所有者でvboxsfがグループになっています。
また、コマンドで追加した場合は共にrootです。
実際にファイルを編集するにはアカウントのグループを追加する必要があります。
id -a アカウント名
で所属しているグループを確認後、
usermod 元から所属しているグループ,root,vboxsf アカウント名
というコマンドでグループを追加しましょう。
元から所属しているグループも指定しないとグループから消えてしまうので注意してください。
とりあえず、これで作業は終わりだと思います。

仮想マシンを導入したのでこれからは時間のある時にいろいろなOSを試してみたいですね。
では、今回はここまでです。

2011年8月5日金曜日

snippets

neocomplcacheのsnippets機能を使い始めたのですが、
これすごい便利ですね!
snippets自体初めて使うので、他はどうなのか知りませんが
確実にコーディング速度の向上につながる機能だと思います。
これからは積極的にsnippetsファイルも更新していきたいですねー

あとは、行末にセミコロンを打つマッピングとか追加しました。
最初<C-;>にマッピングしようとしたんですが、これできないみたいですね。
結局<Space>;にしました。

マッピングに<Space>使ってなかったんですが、これ使いやすいです。
そもそもスペースキー自体いい位置にあるんだから使わなきゃ損ですよね。

2011年8月2日火曜日

uniteの設定

今日はuniteの設定を少しだけしました。
.vimrcにこんな感じに増やしました。
autocmd FileType unite call s:unite_my_settings()
function! s:unite_my_settings()
    imap <buffer> <C-w> <Plug>(unite_delete_backward_path)
    nnoremap <silent><buffer><expr> t unite#do_action('tabopen')
endfunction
内容としては、ファイルパスの入力時にファイル単位でパスの削除をするマッピングと
候補が並んでいるときにtでtabopenするようにしました。

これからもプラグインに限らず気になる点は直していく癖をつけるようにしないと。
最近はタイピングの癖も修正していたりします。
アルファベットのタッチタイプはできるのですが、
記号が入ってくるとホームポジションが崩れることが多いので
それを直しています。
思ったより早く慣れそうでよかったです。

2011年8月1日月曜日

ランニング

以前より買おうと思っていたランニングシューズを買いました。
最近は二日に一回ペースで筋トレをしていたのでランニングと一日おきという
生活サイクルにもっていけたらいいなと考えてたりします。
一日中パソコンの前に座ってるなんていうのはざらなので
意識的に運動するようにします。

後、図書館で借りてちょっと読んで放置してた「入門git」も再び読み始めました。
VCSの重要性は最近認識するようになってきたんですが、
自然と使えるようになるまでがネックですよね。
近いうちに作れたらいいなと思ってるものがあるので、
それを作るときにはgitを実戦投入したいですね。

2011年7月31日日曜日

プラグインの導入

今日はunite.vimとvundleを導入しました。
uniteは使い始めたばかりですが、かなり便利そうです。
uniteは何ができるかというといろいろできるっぽいんですが、
とりあえず、いろいろなソースから検索やら表示やら何やらできるっぽいです。
vundleはgitを使ってプラグインのバージョン管理を行ってくれます。
プラグインの管理はpathogenを使ってたのですが、
これからはいちいち更新を確認しに行かないで済むので助かりますね。

導入にあたってマッピングの設定をしていると、
今まで知らなかったデフォルトの機能とかを知ったりして、
まだまだ修行が足りないなぁという感じです。

2011年7月29日金曜日

うざいアレを消す

最近は雨が続いて困ります。
基本、自転車での移動ですし洗濯もできません。

今日の本題はこれです。

よくあるフォームの登録画面ですね。
これを送信した後、更新するとこのうざいヤツが出ます。
今日はこれを出ないようにしました。
<html>
    <body>
    <head>
<script type="text/javascript" src="js/jquery-1.6.2.min.js" charset="utf-8"></script>
<script type="text/javascript" src="js/jquery.form.js" charset="utf-8"></script>
<script>
$(document).ready(function() {
    $("#form1").submit(function(){
        if($("input:text[name='name']").val() == ""){
            alert("名前を入力してください");
        }
        else if(!$("input:radio[name='gender']").is(":checked")){
            alert("種類を選択してください");
        }
        else{
            var options = {
                success: function(response){
                    if(response == "success"){
                        $("#registMsg").empty().append("登録を完了しました。")
                    }
                    else{
                        $("#registMsg").empty().append("登録済みのアカウント名です。")
                    }
                }
            }
            $(this).ajaxSubmit(options);
        }
        return false;
    });
});
</script>
</head>
        <form action="" method="post" id="form1">
            <p>名前<input type="text" name="name"/></p>
            <p><input type="radio" name="gender" value="male"/>男性
            <input type="radio" name="gender" value="female"/>女性</p>
            <input type="submit" value="登録">
        </form>
        <p id="registMsg"></p>
    </body>
</html> 

使ったのはjQuery Form Pluginです。
これのajaxSubmit()を使いました。
jQueryでformのsubmit時の動作を定義します。
例では値の空チェックとかやってます。
ajaxSubmitがちゃんと行われた後の動作をオプションで指定し、
呼び出します。
登録用のphpにprintとかでレスポンス用のメッセージを出力します。
それで判定に応じた結果を返します。
最後はreturn false;です。
これをしないと通常のsubmitを行ってしまいますので気を付けてください。

2011年7月28日木曜日

初VimScript

今日もバイトに行ってきました。
最近はバイトに行く前と帰ってきてからが自由時間というわけでいろいろやってます。
バイトでもプライベートでも最近はよくコーディングしているのですが、
そのときに煩わしいことがありました。
phpのソースをネットから拾ってくると、やたら「"」を使っているのです。
自分はこれが気に食わないので、「"」と「'」を正しい使い分けに直すのですが、
混在してると置換もしづらいので一つ一つ直したりします。
そこで、簡単に書き換えられるスクリプトを書いてみました。
以前、VimScriptに一度挑戦しましたが入門ページみたいなのを読んでもさっぱりわからなかったのでやる気を喪失していました。
しかし、数日前に調べていたらもっとわかりやすいページがあって何となく雰囲気も掴めたので実際に書いてみることにしました。
初ということで今回のは短いです。
function ExUpLower()
    let a:currentChar = getline(".")[col(".")-1]
    if(match(a:currentChar,'[a-z]') == 0)
        execute "normal r".toupper(a:currentChar)."l"
    elseif(match(a:currentChar,'[A-Z]')==0)
        execute "normal r".tolower(a:currentChar)."l"
    elseif(match(a:currentChar,'\"')==0)
        execute "normal r'l"
    elseif(match(a:currentChar,"\'")==0)
        execute 'normal r"l'
    else
        execute 'normal l'
    endif
endfunction

nnoremap ~ :call ExUpLower()

Vimには~を押すと大文字小文字を相互変換してくれる機能があるのですが、
それを「'」と「"」にも機能するようにしました。
executeを見つけるまでにやたら時間がかかりました。
もっとスマートなやり方があると思います。
そもそもこんなの欲しがる人は自分以外には居なさそう。
マッピングの方法もよくわかってません。
勉強あるのみですね。
monday.vim : Ctrl-a、Ctrl-xで曜日、月をループ (+他の用途への応用)のソースを参考にしました。

2011年7月27日水曜日

今までブログを始めなかった3つの理由

これからの予定

これからはこのブログにて拙い技術メモやらとりとめもない意見などを綴っていく予定です。そもそも、前々からブログを始めようと思っていたのですが、いろいろ理由があって始めるのをためらっていました。

1.ブログを借りるか悩んでいた

技術者らしく自分でサーバーを用意してサイトを作ってとかも考えていました。しかし、家にサーバーなんか置いた日にはそのサーバー熱暴走で即死です。無料のレンサバ借りるぐらいならブログで十分です。

2.どこのブログを借りるか悩んでいた

自分が知っていたブログサービスは、FC2、livedoor、Yahoo、Ameba、はてな、Bloggerなどでした。ここからはてなかBloggerで悩んでいました。FC2は何かアダルトのイメージなので却下です。YahooとAmebaは一般人向けなイメージなので気に食いません。livedoorは何となく除外です、特に理由はありません。見て分かるように結局、Bloggerにしました。理由は「次のブログ」が好きだからです。あと、はてなは皆使ってる感があるからです。

3.そもそも必要なのか

メモを書くだけならローカルでいいのではという気持ちがあったからです。しかし、基本的に情報はオープンであるべきだという考えなので、自分のカスみたいな情報でも少しは世の中に還元できるかもしれないということで始めることにしました。