nDiki : ビルド

ビルド - build

ビルドの種類

  • first build
  • weekly build
    • biweekly build
  • daily build
    • nightly build
    • morningly build
  • private build
  • milestone build
  • latest build
  • stable build
  • candidate build
  • freeze build
  • release build
    • final build
    • gold build

スポンサード リンク

2015年8月22日 (土)

YAPC::Asia Tokyo 2015 2日目

rimage:/nDiki/Flickr/20794290452.jpg

今日も朝から YAPC::Asia Tokyo 2015 の2日目です。まずは一杯の無限オレンジジュースからスタート。最初はトラックCから。 C の部屋に入れたのはこれが初めてです。なるほど狭め。

「Mackerel開発におけるScalaとGo、そしてPerl」 songmu @songmu 氏 #yapcasiaC

言語の特性にあわせて様々なプログラミング言語を活用しているというトーク。サーバサイドで使われているということでちょっと Scala が気になりますが、やはりここでもコンパイルが遅いという話が出ていました。

Go は小さなシングルバイナリを作れるというところがやはり大きな利点。あとはやっぱり Perlビルドなどのためのツールを作るのに便利だよねという話でした。

Perl 5.22 and You」 Ricardo Signes @rjbs 氏 #yapcasiaA

Ricardo Signes 氏のトークを聞くのは YAPC::Asia Tokyo 2013 1日目の時(記事)以来です。

前回同様 Perl の機能追加・削除についての話が中心。直観に反するような挙動が修正されるというところは言語としての完成度があがって良いなと。一方、さらに experimental として追加される文法は、ますます変態的になっていくなという印象もありました。

ランチ

今日は一人でぶらりとTFTビルへ。

「Adventures in Refactoring」 Ben Lavender @bhuga 氏 #yapcasiaA

リファクタリングを行う理由の中で「Developer Education」という話があって、理解のためにリファクタリングをしてもらうのも良いと言っていて、ああそうだよなと思いました。リファクタリングの素養はあるけれども、チームのコードは知らないという状態の時にはいいなと思います。

あとは、基本的には Martin Fowler の「リファクタリング」を読んでいれば OK な感じです。

ちょっとうつらうつらしてました。あと「カレのヒゲ」はマイクにこすれるので通訳的に要注意のようでした。

「Parallelism, Concurrency, and Asynchrony in Perl 6」 Jonathan Worthington @jnthnwrthngtn 氏 #yapcasiaA

Perl 6 における 並列・並行・非同期処理の話。 Perl 6 では言語レベルでこのあたりのサポートがしっかり入ってくるという印象でした。昨日聞いたトークといい、やはり Perl 6 が気になってきました。

Go Debugging, Profiling, and Optimization」 Brad Fitzpatrick @bradfitz 氏 #yapcasiaA

Go の各種ツールを使って時間やメモリを消費している部分を見つけてどんどん削っていく様子をライブで実演してくれました。なるほど、ちょっとしたコードでも工夫すると劇的に最適化できるみたいです。

実演中アセンブラコードをチェックしているところや、データが 1 word から 3 words で管理されているという説明などをみて、ああやっぱり Go は C/C++ 的なマシンへの近さやコンパクトさがあるよなとあらためて感じました。

「Lightning Talks Day 2」 #yapcasiaA

YAPC::Asia Tokyo 最後のトーク(になるかもしれない)となった LT は Kuniwak (@orga_chem) 氏の「Vim script性的解析の光と闇」でした。

CONBU さんが LT の時間内で設営・撤収デモまで実演していて、その素早さに驚嘆でした。まさに神業のレベルです。会期中お世話になりました。

「Wrap Up!」 Daisuke Maki @lestrrat 氏 #yapcasiaA

今年はキーノートが無いので LT が終わるとクロージングです。

今年の参加者はなんと約2,130人。今の形での開催は最後と言われている YAPC::Asia は今後どうなっていくのでしょうか。 YAPC::Asia Tokyo 2015 は「The End.」のスライドで幕を閉じました。皆さんお疲れさまでした。

YAPC::Asia Tokyo 2015 を終えて

去年の YAPC::Asia Tokyo 2014 では Go 言語の勢いを感じ、その後ちょっとした規模ですが業務ツール開発に使ってみたりしました。

YAPC::Asia Tokyo 2015 では近年になく Perl のトークを見た気がします。しかも今回は Perl 6 のコードををよく見た気がするのは気のせいでしょうか。今回はこれを機に Perl 6 にチャレンジしていきたいと思います。

スポンサード リンク
[ 8月22日全て ]

2016年10月19日 (水)

チームのワーキングアグリーメントを作るの楽しい

スクラムマスターから「ワーキングアグリーメント(working agreements)を作ってみませんか?」と言われたのでチームでトライしてみました。これ、作るプロセス自体が楽しいですね。チームの一体感が高まるし、チームの自己組織化につながるなと感じました。

ワーキングアグリーメント

  • ワーキングアグリーメントはチームメンバで「合意した」ルールを書き出したもの。チームで合意したものであればどんな事を書いても OK。ミーティングの時刻だったり、ビルドのルールだったり。
  • ワーキングアグリーメントはチームメンバ全員で作る。上がってきたルール案に対して、例えば親指サイン(親指を上・横・下のどちらかに向ける)を使って全員に意思表明してもらい、全員が合意したものを採用する。
  • ワーキングアグリーメントは定期的に見るようにする。ふりかえりなどの際にアップデートしていく。

組織におけるルールは「誰かが作ってみんなが守るもの」というものが多いのですが、チームで合意して作るというのが自己組織化チームでは重要なんですね。

チームで作ったルールを書き出して明文化することでチームメンバ間の思い違いを無くすことができます。また暗黙的なルールは改善しにくいけれど、見える化すると改善の対象とすることができるというメリットもあるとのことです。なるほど。

アジャイルサムライでは「チームの約束」

ちなみにアジャイルサムライにワーキングアグリーメントなんてあったっけかなと思って調べてみたら、同書では「チームの約束 (working agreements)」として「チームが大事にすること (shared values)」とともに書かれていました。

[ スクラム ]

[ 10月19日全て ]

2017年3月10日 (金)

今日のさえずり: 知らない人の知らない息子さんの大学合格情報が流れてくる Facebook

2017年03月10日

[ 3月10日全て ]

2017年12月11日 (月)

ターミナルや Alfred から Slack に投稿するのに slackcat を入れた

ぼっち Slack ワークスペースに思い浮かんだことをつぶやいておくことにしたのでターミナルや Alfred for Mac からもさくっと投稿できるように、slackcat を入れてみました。

slack は Go で書かれているのでさくっとビルドできますが Homebrew でもインストールできます。

 brew install slackcat

あとは最初に

 slackcat --configure

と --configure オプション付きで slaccat を1回実行し認証を済ませます。認証が済めば以下のように標準入力から slackcat にテキストを渡すことで Slack に投稿できます。

 echo 'hello' | slackcat --channel timeline --stream

便利。

[ 12月11日全て ]

2018年8月5日 (日)

macOS High Sierra にアップグレード

今日プリンタ印刷をしようとしたらプリンタとうまく通信できていなくて、そういえば SSH も数日前から接続できないことがあって、あれっと思ったら App Store にもうまくつながらなかったり。考えられるのはノートン セキュリティを再インストールしたことぐらい。ファイアウォールの設定も見てみたけれど問題なさそうなので、このタイミングで macOS High Sierra に上げておくことにしました。

macOS Sierra 10.12.6 から macOS High Sierra 10.13.6 へのアップグレードになります。アップグレードした結果、印刷できるようになったし SSH 問題も解決したので良しとします。

ScanSnap Manager は要アップデート

それから iTerm2 で新しいウィンドウを開くと

 failed MSpanList_Insert 0x2d4000 0x3abc7c6fbf83 0x0
 fatal error: MSpanList_Insert

 runtime stack:
 runtime.throw(0x277a4b)
 	/usr/local/go/src/runtime/panic.go:491 +0xad fp=0x7ffeefbff550 sp=0x7ffeefbff520
 runtime.MSpanList_Insert(0x296e48, 0x2d4000)
 	/usr/local/go/src/runtime/mheap.c:692 +0x8f fp=0x7ffeefbff578 sp=0x7ffeefbff550
 以下続く

エラーを吐くようになりました。.bashrc の中で読んでいる direnv が出していたので自前でビルドしていたのを捨てて Homebrew で再インストール。

 brew install direnv

途中

 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
 Error: Failure while executing; `git config --local --replace-all homebrew.private true` exited with 1.

と出て git が動かなくなってしまっていることに気がついたので、こちらは

 xcode-select --install

で対応。

[ 8月5日全て ]

2019年3月1日 (金)

一気に MacBook Pro リプレース作業をやり切った

MacBook Pro (Retina, 15-inch, Mid 2014) から MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports) にリプレース。

今はデータをほぼ Google ドライブDropbox に置いているので、やるのは macOS の設定と Mac アプリケーションのインストール & 設定がほとんど。今は自分でビルドしていれているものもほとんど無いので楽だ。

Mac アプリケーションは先に入れた方が捗るもの (Google ChromeGoogle 日本語入力DropboxGoogle ドライブや Karabiner-Eements・Alfred など)があるので、入れたい順序のグラフを Graphviz で書きながら進めていった。

プリンタと Chrome 拡張機能の個別設定以外は概ね移行完了。数日に分けてやる感じかなと思っていたけれど、夕方に仕事の気分切り替え的に始めたら一気にやってしまった。

Emacs まだ入れてないなー。

メモ: rumember のインストール

 $ cd ~/local
 $ git clone https://github.com/tpope/rumember.git
 $ GEM_HOME=$HOME/local/rumember gem install launchy

~/.rtm.yml は前のものをコピー。

[ 3月1日全て ]

2020年9月26日 (土)

静的サイトジェネレータとして Gatsby をちょっと触ってみる

個人サイトの長期運用を考えると静的にページを作った方が楽そうとか、手元の Markdown ファイルをレンダリングして共有したいことがあるとか、そういう理由で静的サイトジェネレータについて興味を持ち続けている。

今だと Web サイトやアプリケーションを作るための React ベースのオープンソースフレームワーク Gatsby が勢いがあるようなのでちょっと触ってみた。 Gatsby の Quick Start をやってみるところまで。

結構大きく複雑なフレームワークに成長しているのかな。もうちょっとシンプルなのでもいいのかなあ。

Quick Start

https://www.gatsbyjs.com/docs/quick-start/

 $ npm install -g gatsby-cli
 $ cd ~/tmp
 $ gatsby new gatsby-site https://github.com/gatsbyjs/gatsby-starter-hello-world
 $ cd gatsby-site
 $ gatsby develop

http://localhost:8000/ にアクセスして Hello world! を確認。src/pages/index.js を編集してすぐに反映されることをチェック。

 $ gatsby build
 $ gatsby serve

http://localhost:9000/ にアクセスしビルドしたものも確認。

[ 9月26日全て ]

2020年12月26日 (土)

『𝄇』を前に『ヱヴァンゲリヲン新劇場版:序』を【映画鑑賞

ヱヴァンゲリヲン新劇場版:序 (EVANGELION:1.11)

今日から年末年始の10連休

来年1月の『シン・エヴァンゲリオン劇場版𝄇』公開を前に『ヱヴァンゲリヲン新劇場版』3作品を観直しておく。いまAmazonプライム・ビデオで配信しているので今月購入した Chromecast with Google TV で。

今夜は『ヱヴァンゲリヲン新劇場版:序』を。2014年DVD で2度観て以来3回目。序はテレビシリーズの第壱話から第六話部分のリビルドなので、さすがにだいたい覚えてた。

ヱヴァンゲリヲン新劇場版:序 (EVANGELION:1.11) [DVD]

[ 12月26日全て ]

2021年1月5日 (火)

最近の Unisonビルドする

双方向ファイル同期化ツール Unison File Synchronizer、 Mac で使っているのが Unison 2.48.6 の GUI 版なのだけれど、古いせいか macOS Catalina だと「Install command-line tool」 が機能しない(/usr/bin にインストールしようとしているからかな)。

macOS 上で text UI 版がちょっと使いたい & GUI 版も新しいのにしたいなと思ってビルドとかした。

現在の Unison のバージョン

2021年01月05日時点での安定版は 2.51.3

Homebrew で入れる

 $ brew install unison

で text UI 版の「unison version 2.51.3 (ocaml 4.10.0)」が入る。GUI 版は入らない。

macOS Catalina 上でビルドする

Unison 最新版のバイナリ配布が見当たらないのでビルドしてみる。 Xcode が必要。

 $ xcode-select --install

で入る Command Line Tools だけだと text UI 版の Unison しかビルドできないので App Store から Xcode をインストールした。

OCaml は Homebrew ので済ます。

 $ brew install ocaml

今日時点で入るのは OCaml 4.10.0 だ。次に Unison 2.51.3 をビルドする。

 $ cd ~/tmp
 $ curl -OL https://github.com/bcpierce00/unison/archive/v2.51.3.tar.gz
 $ tar zxvf v2.51.3.tar.gz
 $ cd unison-2.51.3
 $ make all

make だけだと text UI 版しかビルドされないので make all してみた。が残念 GUI 版はエラーで途中で止まった。今はうまくビルドできないのかもしれない。

諦めて make で text UI 版だけバイナリを得ることにした。 make 後

 $ ./src/unison -version

で実行できることを確認。 ./src/unison を適当なところにコピーしておく(これなら brew install unison で十分だった)。

FreeBSD 上でビルド

ローカルホストの Unison とリモートホストの Unison のバージョンが合っていないと同期できないのでリモートホスト側 (FreeBSD 9.1-RELEASE-p24) でも同じバージョンのものをビルドする。さくらのレンタルサーバ プレミアムで root 権限はないのでユーザー権限にて。

まずは OCaml。最近の OCaml は opam というのでインストールして使うのが流儀らしい。 opam をインストール。

 $ cd ~/tmp
 $ mkdir bin
 $ curl -OL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh
 $ BINDIR=$HOME/tmp/bin sh install.sh

リモートホストの環境に合ったプレビルドが無いとエラーが出て install.sh ではインストールできず。

OCaml の前に遡って opam のビルドをする。

 $ cd ~/tmp
 $ curl -OL https://github.com/ocaml/opam/archive/2.0.7.tar.gz
 $ tar zxvf 2.0.7
 $ cd opam-2.0.7
 $ gmake cold CONFIGURE_ARGS="--prefix ~/tmp/opam"
 $ gmake cold-install

ビルドできた。opam を初期化する。

 $ PATH=$HOME/tmp/opam/bin:$PATH
 $ opam init

gpatch が無いとエラーで止まった。 patch へのシンボリックリンクで gpatch を作ってイケるかなと思ったけど今度は別のエラーで止まる。うーん。 opam で OCaml をインストールするのは断念。

OCaml のドキュメントを読んだら今まで通り configure して make も普通にできるじゃない。

 $ curl -OL https://github.com/ocaml/ocaml/archive/4.10.0.tar.gz
 $ tar zxvf 4.10.0.tar.gz
 $ cd ocaml-4.10.0
 $ ./configure --prefix $HOME/tmp
 $ gmake
 $ gmake install

次に Unison 2.51.3 をビルドする。出来上がったバイナリは今使っている Unison 2.48.3 と併用できるように別のディレクトリへ。

 $ cd ~/tmp
 $ curl -OL https://github.com/bcpierce00/unison/archive/v2.51.3.tar.gz
 $ tar zxvf v2.51.3.tar.gz
 $ cd unison-2.51.3
 $ PATH=$PATH:$HOME/tmp/bin
 $ gmake
 $ ./unison -version
 $ mkdir -p $HOME/local/unison-2.51.3/bin
 $ cp -a src/unison $HOME/local/unison-2.51.3/bin

サイト

[ 1月5日全て ]

2021年1月19日 (火)

Zettlr はテキストファイルノートアプリに適した Markdown エディタ

Zettelkasten メソッドのための機能を備えた Markdown エディタに Zettlr がある。ローカルディレクトリ上に通常の Markdown ファイルとしてデータを保存するタイプで、ロックインの心配が無く他のツールと併用できる好みのアプリだ。インストールして1日使ってみた。

インストール (macOS )

Homebrew では以下で。

 $ brew install --cask Zettlr

今日時点でインストールされるのが 1.8.3 でちょっと古かったので

からバイナリビルドされた 1.8.6 をダウンロードしてインストールした。

Markdown エディタとして

ヘッダを大きめに表示したりリンクの URL を隠したりと一部プリレンダリングされるタイプ。日本語も問題無さそう。

ファイル末のあたりで文字入力するとエディタがガクガク揺れるは今後改善されると嬉しい。

見出し単位で折り畳む機能やサイドバーで目次を表示する機能があり、長めの文章を書くための支援が揃っている。

ファイル管理

ファイルツリー上にディレクトリとファイルの両方を表示する Combined モード以外に、ファイルツリー(ディレクトリツリー)とファイルリストの両方を表示する Expanded モード、ファイルツリーとファイルリストのどちらかを表示する Thin モードがある。

Expanded モードを選ぶと iA WriterUlysses などでもお馴染みのスタイルになりノートアプリとして使いやすくなる。

ファイルシステム上のディレクトリをルートディレクトリとしたワークスペースを複数同時に開いておける。用途別にディレクトリを分けている場合に便利だ。

全文検索はワークスペース単位。内部リンクもワークスペース単位で機能する。 自分は複数のワークスペースを横断的に全文検索したいので、本格的に使うなら1つのディレクトリの下にまとめる必要があるな。

ファイルの拡張子は md ではなく txt でも OK なので、ファイルを同期した Google ドライブ上で全文検索させられるのが嬉しい(Markdown ファイルの拡張子を md にすると Google ドライブで不便)。 md 固定の Obsidian より柔軟だ。

Zettelkasten メソッドと内部リンク

Makrdown ファイルから Markdown ファイルへファイルベース名を指定して 「[[ファイルベース名]]」の形で内部リンクできる(パス名は不要)。

また Markdown ファイル内にユニークな ID を書いておき、その ID を指定して「[[ID]]」としてリンクもできる。後者を使えばファイル名変更が気軽にできる。 ID の形式やリンクの開始文字列 [[ ・終了文字列 ]] もカスタマイズできて柔軟なのも良い。

iA Writer では

 ia-writer://open?path=/Locations/path/to/file.txt

のような URL を発行して擬似的にリンクするさせるしかないので比べると圧倒的に便利。

1日使ってみて

今メインで使っている Mac アプリケーションiA Writer に比べると Electron ベースの Zettlr は美しさで負けるのは仕方ないところかな。

Zettlr をテキストファイルノートアプリとして内部リンクを活用しながらパーソナルナレッジベースを作っていくのありだな。

[ ノート・日記はテキストファイルに ] [ Mac アプリケーション ]

[ 1月19日全て ]

About Me

Naney Naney

Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

About nDiki

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。

#nNote タグがついている記事は他の記事に比べて、より断片的・未整理・不完全なちょっとしたノートです。まだ結論に至っていない考えなども含まれます。頻繁/大幅に更新したり削除したりすることがあります。

※本サイトの内容は個人的見解であり所属組織とは関係ありません。

Other Notes

ナレッジベースアプリケーション Obsidian で書いているノートの一部を notes.naney.org で 公開しています。

月別インデックス
Process Time: 0.069704s / load averages: 0.35, 0.29, 0.30
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker