HCL ( HashiCorp Configuration Language ) は他の言語の実装もあるんだな

先日初めて terraform import のために .tf を書いたが(このインキー感がすごく微妙)、当然何回かハマったのでその際に使ったものをメモとして残しておく。

まとめ

  • .tf というか HCL ( HashiCorp Configuration Language ) がカギ
    • HCL は JSON 完全互換で Terraform だけじゃなくて HashiCorp 製品を扱ううえで大事
  • HCL の仕様はオープンなので実装はいくつかある
  • repl が欲しければ gem も使える
  • もしかして独自のツールの設定文法を HCL にするのもアリかも?

使ったもの

  • terraform plan && validate

何はともあれコレ。

  • irb + rhcl

複雑な構造を持つ variable や resource を扱う場合、HCL の書き方がよく分からなくなるので、ムカついて調べたら HCL の Ruby 実装である rhcl を見つけた。Ruby の強力な repl と組み合わせればとりあえず parse できるかどうか、parse したらどうなるのかは分かる。repl に乗ってるだけで安心する人向け。

もしかして

今後何かのツールを書いたり使ったりする際に

  • JSONはコメントが書けない!
  • でも独自文法を実装するのもダルい!

みたいな場合に HCL を使ってみたりするのもいいのかもしんない。

参考

USB HUB を買った

昨日の話だけど。

今まで必要に迫られたことがなかったんだけど、夏にキーボードを買って以来、マウスとキーボード両方が USB になり、2つしかない USB ポートが埋まっている状態だった。

さすがにちょっと不便に感じることがたまに起きていて、USB HUB 買わんなんなーと思ってはいたのだけれど、いつも買い忘れていた。(都会の電車通勤じゃないからフラッと寄るってことはないのですよ。)

最近買い物モードになっていたのでやっとのことで電気屋で購入。そんなに大量にクチが必要なわけでもないし、見た目重視で OA タップ風デザイン。パッケージに「これはUSBハブです」って書いてあるのがちょっとお茶目。

使ってみた感想としては、横にポートが並んでいるタイプと違ってケーブルが縦に伸びる形になるので、人によっては非常にうざく感じるかもしれない。たぶんだけど。個人的にはモニタの脇にこれを置いて縦に刺さっている様子はちっとも邪魔じゃないし、ケーブルが地面(というか机)を這うことを強制されないので返って使いやすく感じる。実際、抜き差しもしやすい。

うむ。いい買い物をした。

M-1 2006

  • 決勝戦はチュートリアル
  • 最終決戦はフットボールアワー

が個人的な勝者かなぁ。最終決戦はなんか「一方的な(キャラのおかしい)ボケ×ガナり系のツッコミ」という対決になった(麒麟はここでは蚊帳の外)が、引き出しの多さでやはりフットボールアワーを上に置きたい。時間制限のせいなのか、どっちもオチが弱いがそこは引き分けということで。

しかしなんつーか、M-1 て今年はどういうデキレースなのか?的な見方をしてしまうのはなぜだろうか。個人的な裏読みとしては

  • 決勝戦の対抗馬として麒麟、笑い飯、千鳥が居る(居た)が、絵面のきれいさでやはり麒麟有利1
  • 決勝戦の対抗馬が毎回麒麟か笑い飯では盛り上がりに欠けるので、今年は優勝経験者でかつまだ出場資格のあるフットボールアワーに主催側からアプローチがあった。

てなことを勝手に想像して楽しんでいる。

トータルテンボスはハイライトやらなくてよかったのか?とか、やはりポイズンなどの変化球は頂点には立てんよなぁなどといったことを思いながら適当に楽しいクリスマスイブであった。

  1. でも好みとしては笑い飯が好き。序盤にもう一山作れるとサイコーなんだが。 

まぁあれだ

我々は教育を「語りたがる」とき、自身の過去を常識としてしまう傾向がある。そりゃそうだ。自分の過去以外の教育なんて知る機会がそもそもないのだから。普通は自分が親になったときに初めて自分の過去以外の教育を知る程度。

「偉いだけ」の門外漢で会議を構成しても自身の過去を美化し、自慢話に終止するのも半ば当然かと。ただまぁ、最初のうちはとりあえず吐き出す時間を作るのも必要だよね。いつまでもそこで止まってたら切ればいい。そしてそういう人を切るセンスのない政治家は、我々が切らなければいけない。

そうゆうことかな?

るびま12号の qwikWeb の記事からテストについて思う

全然ペースについていけない。

Rubyist Magazine - Rubyist Magazine 0012 号

今回はなんたってこれ。

qwikWeb の仕組み 【第 1 回】 コンテンツ・フレームワークとしての qwikWeb

  • わびさび方式は PHP で実現するのは難しそうだなぁ。
  • ジェームズ・クラーク式記法は、DocBook かなんかで生成した HTML もそういう形になってるんだけど、Namazu と相性悪いんだよね。
  • モジュールのファイルをそのまま実行するとテストになるのはよい。

モジュールがテストとして実行できるのは Perl モジュールでもそんなことできるやつがあるなーと思い出した。全部の .pm がそうなっているのかどうかは知らないけど。

最近、自分では元のディレクトリ構成を _test/ ディレクトリの中に再構成してテストを書くって方法を試しているんだけど、これは

  • あとでディレクトリ構成を変更するのが大変
  • システム全体のルートに当たるディレクトリを特定しないといけない

などの制約ができる反面、

  • リリースの際は _test/ を取り除けば動作に必要なものだけになる
  • _test/ の中に simpletest/ も用意して、Pear でインストールした simpletest でも同梱している simpletest/ でもテストできる

といった具合に、「テストとコードを一緒に持ち運べるけど分離もできる」という、ちょっとした自由を確保できていると思っている。このちょっとした自由を意識しているのは、

  • PHP にはテスティングフレームワークが付属していない
  • Pear ライブラリは pear コマンドを利用してインストールしたものでも、直接コピーしたものを require するのでも同じように使える
  • テストコードがそのまま動作環境でも生きているのは容量食うし、ちょっといや
  • 動作コードとテストコードは分離していた方が phpdoc でドキュメントを生成するときに見やすそう

などの理由による。

まだ改良の余地はたくさんあると思うけど、今のところソコソコ気に入っている。

※ simpletest の部分はちょっと前は PHPUnit だったんだけど、PHPUnit より simpletest の方が出力結果が派手で楽しかったので変更した。PHP4 でも 5 でも動くっていうのも、将来的には役に立つかも、という期待も少しある。(PHPUnit は PHP4 用で、PHP5 では PHPUnit2 になっちゃう。)

極薄 LAN ケーブル

NTT-AT|ニュースリリース (12月22日のもの)

素晴らしい! 50cm で 5000円。でもそれだけの価値はあるように思う。少なくともうちではこれで「閉まらずのドア」をなくせるぞ。

参考 耐久性に優れた極薄LANケーブル (/.-j)

考える。かく。組み立てる。

先日の日記で

図や表にならないものはどこかがおかしいとさえ思っている。

と書いたがこれはネタではなくマジである。

まぁこうしてだらだらと駄文を大量に書いているくせに何を言う、と思われるかもしれないが、私にとって思考と文章はベツモノである。文章は言いたいポイントとポイントを繋いで「検索性の高い形に外在化するための一つの道具」であって、実際の思考は誰にも見せることのできない「映像」になっている。私の頭の中では形も色もよく分からない何かがうごめくアニメーションで思考が形成されているのである。

だから逆に他者の言葉も、そういう「うごめく何か」になるまで、例え言葉として理解できても頭の中にすんなり入ってはこない。私は頭が悪いのでこの変換にけっこう時間と情報量と経験が必要なのだ。そのためにあれこれ試行錯誤を行い、数多くの言葉を飲み込み、対話し、「かき」、様々な角度と方法で変換を試みる。

かく。これ重要。以前はこれがスムーズにできなかった。

ずいぶん前(高校生くらい?)から考えることと「書く」ことに興味を持っていたんだけど、「書く」という行為を今のように「かく」と捉えられるようになるまでには8年くらいは掛かったように思う。「かく」。これは私の中で「書く」と「描く」の区別をしなくなった言葉である。私は頭の中で「書く」も「描く」も「かく」と読んでいる。その対象が文字であるか文章であるか図であるか、「かく」ときにはそんなに区別していない。そりゃまったく同じというわけにはいかないが、今はどちらも頭の中の「うごめく何か」を見える形にするための道具に変わりはないと思っている。

文章の方が言い回しなどで補足しやすい、小回りが効いてごまかしやすいかなとは思う。しかし同時に文章には言葉の持つリズムや繋がりに引っ張られてしまうという弊害もある。気をつけないと文章の持つ力に振り回されてしまうのだ。だから考えるときは文章で考えないようにする。まったく言葉を使わずに考えるのは不可能だけど、そのベースを文章というかフレーズかな、「できあがった言葉遣い」に求めるのはかなり危険だと思う。いい言い回しを思いつくことはある。でもそれが自分の思考にうまく使えるとは限らない。

もう一つ。「かく」という行為を「発表する」ことや「提出する」ことから切り離せること。これも大きい。自分のために書く。学校で作文を、大学でレポートを「書かされている」間はなかなか精神的な自由を獲得できない。課題として書くことが負担である間は、これを自分の道具や武器として活用するのは少し難しいと思う。(仕事で書くのもつらいはつらいだろうが。)

そして組み立て。考えを練るときにできた文章、図などのパーツを整理し、組み立てる。組み立てたものがこうして表に出てくる。(もっとも、この tDiary 上の文章の一つ一つはまだパーツのレベルのものがほとんどで、パーツのまま公開できてしまうところが Web 日記というものの持つ不思議な力だと勝手に感心している。)

完成品はツァラトゥストラの語りを書き写すようにいきなりは出てこない。

キーボードがきた

まだ来ないと思っていたキーボードがきてしまった。しまったってことはないけど。

今度は OKI MINI KEYBOARD Pro の日本語版。Space Saver よりもさらにノートパソコンに近い。モバイラーな自分はこの方が何かと都合がよい。

ただ、やっぱり IBM の TrackPoint はすげーんだな、と実感する結果となっている。キーのタッチにはまぁ大きな不満はないんだけど、このポインタだけはどうにも。

やっぱ IBM が本気で Space Saver の後継機を出すべきだなぁ。絶対売れるのに。

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm