udon's blog

思いついたことを、思いついた時に。忘れないように。

れっつ Arduino !

買いました!

Arduino uno + Ether Shield
f:id:datsuns:20120907195038j:plain

# 画像のサイズ調整わからん・・・

つなぐ

まずはここからですね。手持ちのMac Book AirとUSBケーブルでつないでみます。



以上。

すげーー! *1

開発環境

とりあえず公式ダウンロードサイトからMac向けのzipを落として、解凍します。


以上。

すげーーー。

やきこむ

落としてきたIDE(?)にサンプルがあったので開いて「書き込む」ボタンを押してみました。


以上。

すげーーーー。それだけで動く。

で、

一応動かすこと自体は箱開けて数分でできます。ほんと。
Ethernet系のサンプルもあったので、動きはアレですが、簡易なweb serverもスグ動く。
そうそう、もちろん入れておきました。
Arduino syntax file - Syntax file for Arduino .PDE files : vim online

これから

幾つか難点が。

  1. IDEが使いにくい(特にエディタ)
  2. Etherだけだとさびしい

前者についてはどうやら「ファイル更新の監視」はできるらしいと。
後者についてはそうですね、、なんか安めのLCDでも買おうかなーとか。

ひとまずの感想

やっぱりとっかかりのハードルを可能な限り下げるってのは大事やなーと。
昔ADTを触った時もはじめやすさに感動したのを思い出しました。*2

あと、このIDEも内部的にavrっていうCPU向けのgcc叩いてるとからしいので、その辺含めてvimから制御できたら楽しいかもなーとか思いました。

とにかくいろいろ触ってみようかと!

*1:一般的なCDCクラスドライバとして振る舞うみたいなので別途ドライバすら不要と

*2:入ってから地獄とかは置いておいて

TAとしての反省点

読むまで全く発想から抜け落ちてしまってました

#TDDBC 岡山 参加者のプログラムを見て - 水まんじゅう

例えばC++でTDDを行なっていたペアはすべてのコードをヘッダーファイルに記載していましたが、それを修正することはありませんでした。

ぎぇぇーーー、完全にそうです。弁解の余地もない。
ていうか指摘されるまでそのことすら忘れ去ってしまってた。。。

まぁ、、、もうコメントに言い訳してしまってるので、言い訳ついでに当時の開始までの状況を列挙してみときます。恥は一回かいてしまうと慣れるもんよ!

  1. ペアの方の片方の方は以前から知り合いで、さらにその方はPCを持参できないことがわかっていた。
  2. よって私のPC(mac)を貸し出す前提に、Eclipseをセットアップしていた。が、その方がvimはもちろんEclipseに不慣れなのも分かっていた。といっても慣れている環境を整備する事は難しかった *1
  3. その方とは事前にワタシのPCを少しは触ってもらったりして、雰囲気は見てもらっていた(ワタシとペアする前提だった)
  4. 当日予想していない第二のC++参加者がいた。さらにmacを持ってきていた
  5. ワーク開始時に、その第二の方のmacを使おう!となったが、いざ触ってみると、IDE(xcode)は入っていたものの、テストフレームワークは入っていなかった。さらにその第二の方もEclipe + CDTは触ったこともない環境であった

という感じです。。うん。結局私がもっとEclipseに明るければ、もっとちゃんとできていたのかもです。
またはあとでちゃんと「あ、ヘッダに書いてもうとるがな」を指摘できてれば、ですね。

何を重視したか。またはし過ぎたか。

ペアの方の二人ともペアプロも含めて「TDD初体験」な感じでした。ということで私が当日一番重要視したのは

  • サイクルを回すというリズムを感じもらう

ということでした。
なので、ツールの使い方やアレヤコレヤにとにかく手を取られないように、「回す」という事をいかに繰り返してもらうか。そればっかりだった気がしています。
まぁ結果的にその「アレヤコレヤ」に「ヘッダに実装してしまえ!」が入ってしまい、挙句「そもそもヘッダに実装書いていたことすら忘れてた」なーんて阿呆丸出しな結果になっていたと。

さらに「回してもらう」事にフォーカスしすぎたために、最初に「"第二の方"の環境が駄目だ」と分かった時に少なからず焦ってしまってたんですね。このままじゃ回してもらえない!と。

で、結局はその後にペアが回りだせたので、そのことに慢心しすぎてしまいました。

ということで

いやーもう。むずい。
vim使ってちょw

*1:組み込みとかのアレです

TDDBC岡山でTAしました #tddbc

しました。はい。

8月25日 TDDBC岡山 1.0

TDDBCは大阪1.0が初参加。
で、気づいたら大都会でTAすることに。いろふこわい

当日

@Posaune さんの車に同乗させてもらったんですけど、待ち合わせからいきなりミス。
一番最初に家を出たはずやのに遅刻って・・・ orz
連絡手段は統一しましょう *1

ついてから〜和田さん講演

綺麗でした、とにかく。そして喫煙者晒し者 *2

で、和田さんの講演を聞くのは二回目。。。
前回のメモをブラッシュアップする感じで聞いていました。

act as TA

で、ワークですよ、奥さん。
元々C/C++枠は「参加者が一人だけ」と聞いていて、ワシとペアプロかな?と思とったんですが、いざ蓋を開けてみるとなんともうお一方参加者が。よかった〜!

how teaching ?

まぁ以前のパッチでも話題になったやつですけど、今回はペアの方に

  • TDD自体は余り経験ないけど、含蓄のある方

がいらっしゃってて、テスト項目の出し方とかは特に言及が不要でした。
ハナから「マインドマップで項目出したいので書けるツールはインストールしてないか?」とか聞かれましたし *3

ということで、細かい部分とか、実装の話とかに少しだけ口を出す程度でした。てかこのペアTAいらんくね?w って。

ほんとに最初の少しだけ、開発環境に手間取らなくなった辺りからは手を離れてましたね。
えぇ。TAとしてこんなんでええんだろうかと。

適度な間合いと匂い

で、ペアが一旦波に乗り出した後は「余計な口出しをしない」を心がけてました。
また、診るべき対象となるペアが一組だけだったのも助かりましたね。集中できるし。

なので「ん?なんか詰まってそうやな?」って感じがしたときにチラッと話を聞くとかですかね、やっとったのは。
いきなりプロダクトコード書きかかってたりしたら「まずテストですね」とか、変数名をちょっと変えただけのリファクタリングの時も「なにか手を入れたら動かしましょう」とか。ほんと最低限。
方針とか聞かれても「〜な考え方もありますね」位の言い方で留めて、極力ペアに決定してもらってました。

あと前回の自分の反省点「問題を解き進めることに注力しすぎた」を踏まえて、なるべく「TDDの勉強」を強調できるように、も心がけてた気がします。
リファクタリングも、中途半端にペアが切り上げそうになってたら「本当に重複はないですか?」とか敢えて聞いたりして、意図的に「次のステップに進みたい欲求」を阻害してました。

how faster ?

んで、真逆のことを言うみたいやけど、「速度自体は上げるべき」かなと。
いろいろで開発環境がEclipse + CDTになってしまったんですが、いかんせんこの。なんというかね。ペアの方もワシも使い慣れていない環境、という。

なので昼休みに「手書きのキーボードショートカット一覧」とか作ったりとかしてました。
ツールの扱いとかで時間を食うのは避けたかったんですね。より「TDDそのもの」に注力して欲しかったわけです。

vim

でね、やっぱりこれですわw
懇親会で「酔っ払った挙句のLTというかなんというか」をやったんですな。
で、本当は

  • TDDと相性の良いプラグイン := quickrun

という話に持って行きたかったんですが、まぁ、アルコールの怖いこと。
ただのvim狂いの酔っぱらいになっとりました。。。

感想

やっぱり勉強になりますね。うん。
ちゃんとTAできとったか?はまだぜんぜん疑問符付きやけど、面白いです。純粋に。

そういやぁ、グリーンバンドを買ってしまったんですけど。。。。
もう少し落ち着いた色にならんかったんかなぁ。。。

*1:Twitter vs facebook

*2:吸う人?と聞かれて手を上げたのがワシ一人

*3:使用するPCはワタシのを貸し出してました

偶数と奇数

ま、まぁ。あれです。

偶数/奇数の判定(1/2) | Visual BasicのQ&A【OKWave】

で、disるのはええんだけど、多少擁護みたいなのを考えてみた。*1

嗅覚

本当を言うと、この質問者自体にはそこまで悲観的な感情は抱いてない感じです。
あ、プログラミングの初心者なら、ですけど。*2

上記のようなプログラムを途中まで書いたところなのですが、コードの行数が長く、どうも効率が悪いような気がしています。

この「気がしています」っていう一言。これだけで自分的にはだいぶ印象が変わりました。
なんとなく「なんかダメな気がする」っていう感覚というか嗅覚というか、そういうのって、無い人はホント無いんですよね。

「え?これやってて疑問に思わんかったんか?!」ってシーンは結構ある感じやし、自分でも「ん〜〜なんかこれ、違うぞー」ってなって調べたりするともっと効率的なちゃんとした方法があったりとか、何度もありましたし。

今の自分を否定できる

まぁ言葉にすると大仰やけど、多分これができんとイロイロしんどくなるんじゃないのかと思っています。
今の自分を否定して上を向かないと成長とか無いですよね。

同族擁護

そんなプログラマにシンパシー抱いているならお前そんな程度なんだろ!は言わない約束ですよ。。。

*1:別に関係者とかじゃないです

*2:そんな段階の人間を現場に配置するな!とかそういう議論は一応おいといて

TABOK勉強会 関西 #1

英語嫌い。
英語撲滅推進委員会。

一応「1.1.2を読んで感想を言う」担当だったのですが、当日のギリギリまで作業が終わらず。。。
結局前半の1.1.1の議論をほぼマトモに聞けずじまい。あーあ。

Business Case ?

そういえばTABOKって「よく出てくるけどなんて訳そう?」って単語が幾つかあるっぽいぞと。
「Script」なんかもそう。「いわゆるスクリプト」と「手順とか段取りとか」みたいな二つの意味がありそうで。

で、このBusiness Caseってのは一番「なんじゃこいつ」な単語ではないかという感じでした。

で、とりあえずぐぐってみた。
Business case - Wikipedia, the free encyclopedia
英語はパス。

で、これはと。
部下をキレさせてでも、IT予算を削減するボス − @IT情報マネジメント

 “Business Case”とは「投資対効果の検討書」のことです。企業が何かに投資をする際、それが適切かどうかを判断するために、そのプロジェクトの“ROI (Return On Investment”=「投資対効果」を調べたレポートのことを指します。

おーなんかそれっぽいけど、TABOKにどんな感じで出てきとったか忘れたので判断つかん

とりあえず英語のほうでも頑張って読んでみますか。。。

次回こそは

ちゃんと議論に参加する!
会議室を予約するのも!

TDDは hogehoge するもの・・・?

何なんでしょうか?
ボンヤリと思ってたことやけど、少し言葉にできそうだったので。

hogehoge = 導入?

よく聞く「TDDを導入したいけど難しい」という話。これ、どうなんでしょう?

確かに、いわゆる管理職な方から見ると「導入したい」ってことになるとは思います。が、今はワタシのようなプログラマにとっての話でして。

で、そもそもTDDって"導入"の対象になるの?と思ったりします。
もっと言ってしまうと「"導入!"って思ってる時点でできなくね?」です。

hogehoge = 装備?

なんかまだしっくり着てないけれど、何となくこんなイメージですね。*1

とにかくやりゃァええんです。
少なくともやりたいと思ってるんですよね?じゃぁ、やればいい。

余程の状況でもない限り、TDDへのハードルは「皆無」と思っています。いやもちろん、どれくらい上手くやるかとかはありますけれど、「はじめる事」に対してのハードルは皆無じゃないでしょうか。「はじめる」は一人でもスグできるわけです。


半泣きでテストフレームワークにパッチ当てたりしなくても、動きますよね?malloc()が無い!とかじゃないでしょ?(あ、業務系方面はちょっとわかりませんが。。)

じゃあ、スグにでも始めればいい。結果やら何とかやらは後からなんぼでもついて来るはず。

ウルトラレガシー

と、ここまで書いて気づきました。。。
試行錯誤したけど上手くいかなくて力尽きたパターン。。。
コレはまぁ、うん。なんというか。お疲れ様です。。。*2
きっとその努力は今後の何かに活きてきますので自分を信じて!(くらいしか言えません orz)

small start, small success

んでまぁやっぱり、コレに尽きると思います。
慌てず騒がず。すこしずつ積み重ねて行きましょうや!

*1:グリーンバンドの話じゃないよ

*2:レベルを上げて転職すればいい

まずはvundleから

ナニを隠そう、メイン(で唯一)のエディタはvimなのであります。

んで、元々あんまりvimrcを弄るのは避けてた*1んですが、最近もう少しがんばろうかなーと。
ていうか、しばらくvimレベル上がってないなと思っとんです最近。

こんな構成

一応今ん所の設定はgithubに挙げておるんですね。
datsuns/vim-settings · GitHub
単に"上げただけ"ですサーセン


一応構成的には「エントリとなるファイルを作っておいて、vimrcからはそいつだけ取り込む」な感じにしてました。

  • vimrc
    • entry.vim
      • setting.vim
      • hoge.vim
      • つづく・・・

まぁこれで特に困りもせんかーー、とか思ってたんですが。
やっぱり「これでええか」と思ってしまうとそこで止まってしまうわけで。

かっこいいやつ

とあるブログbundleなる単語を見かけてですね。なんじゃこれはと。
調べてみたらVim-users.jp - Hack #215: Vundle で plugin をモダンに管理するとか見つかったわけですが。。。「おお〜〜」と思ったものの、しばらく「ぐぬぬ」でした。*2

でもまぁ、ものは試しでやってみようかと。なんかかっこよさそうだし。

導入

サイトの通りgit clone一発!ってことらしいんですが、cloneした後でvimを起動して、:scriptnamesしても取り込まれてないんですよね。はて?と。

まぁ、vimrcにruntime path追加する記載をしないといけなかっただけです。ちゃんとサイトとか読めばスグに分かることでした。。。。

で、相変わらずの階層構造に・・

  • vimrc

ただしちょっと注意

@vimrc


set nocompatible
filetype off " (1)
set rtp+=~/.vim/vundle.git/ " (2)
call vundle#rc() " (3)
" original repos on github
Bundle 'tpope/vim-fugitive'

(2)のところのパスは自分がcloneしたパスにちゃんと置き換えないとダメですね。
(ちなみにrtp := runtime path)

ためす。

あとはまぁ、ちまちまbundleのエントリを追加するだけだろう。
ひとまずquickrunででもやってみます。

以下を追加

" quickrun
Bundle 'thinca/vim-quickrun'

:BundleInstall
。。。。「done」ってでるけど既に入れてるやつだとあんまり嬉しくない・・・

ってか、

:Bundles hoge

でhogeプラグインを検索してインストールできるんですね。。。

なんかもう、もうこれだけでよくね?

ということで、思った以上に簡単だったのでこれからはvundlerで頑張ってみます。
(って言うほどプラグイン入れてないですけど)

*1:特に理由はないです。が、スパルタンvimの影響もあるかも。

*2:これも特に理由無いです