タグ

ブックマーク / masutaka.net (22)

  • 『論理が伝わる 世界標準の「書く技術」』を読んだ

    職場の同僚が勧めていたので遅ればせながら読みました。私が 20 年近くかけてたどり着いた技術(未だに不完全です)を、こので習得出来る人が羨ましいです。 仕事で少しでも文章を書く人全てにオススメします。ブログを書く人にもオススメできます。反対に、物語を書くための技術ではありません。 欧米では論理的な文章はパラグラフを使って書くそうです。パラグラフで書けば各パラグラフの先頭文をつまみいする、流し読みが出来ます。副次効果として、速読出来る文章になります。もちろんじっくり読むことも出来ます。論理的な文章は物語などと違って、関係者以外は流し読みしたいことが多いですからね。 特筆すべきことは、この自体がパラグラフで書かれていることです。流し読みできます。しました。 パラグラフを適切に使っていれば、文字どおり見た目が良くなると感じてきました。良いメールやブログを書けた時は、見た目に惚れ惚れして何度

  • Dependabot の Terraform 0.15 対応が進んでいる件

    最近この Issue が活発になってきました。 Terraform 0.15 support · Issue #1176 · dependabot/dependabot-core 実はプロバイダーバージョンのアップデートだけならもう使えます。 ・プロバイダーバージョンのアップデートはもう動く ・↑の後に必要な .terraform.lock.hcl の更新は実装中とのこと。現在は手動で “$ terraform init -upgrade” が必要 ・terraform バージョンのアップデートはロードマップに含まれていない ↓プライベートリポジトリで動いている様子。 dependabot.yml のドキュメントはここにある ので、試してみるのも良いかもしれません。 ↓このブログが置いてあるリポジトリの .github/dependabot.yml です。daily はやり過ぎなのであとで

  • esa の記事を Emacs から素早く開ける helm-esa.el を作った

    会社で使っている Qiita:Team が esa に移行されることになったので、早速作ってみました。 こんな感じに esa の記事を Helm Interface 上で絞り込んで、ブラウザで開くことが出来ます。 デフォルトでは絞り込み対象は “watched:true kind:stock” で検索された記事です。よく参照または編集するであろう記事を、Web ブラウザで素早く開く使い方を想定しています。 MELPAにも取り込まれた ので、M-x package-install helm-esa でインストールできます。 作りながら考えたこと# 今回の helm-esa.el は helm-qiita.el [2016-05-06-1] の後継ツールのような気持ちで作り始めました。 最初、Qiita:Team の Stock は、esa だと Watch なのかなーくらいの考えで作っていま

  • 『Pragmatic Terraform on AWS』を読んだ

    【ダウンロード版】Pragmatic Terraform on AWS - KOS-MOS - BOOTH これも職場の同僚氏がオススメしていた。 普段から Terraform の設計に課題を感じていたので、ざーっと斜め読みして、第17章からしっかり読んだ。 その中での設計のやり方が モノリス → モジュールの利用 → 環境(ステージ)の分離 → コンポーネント分離 と段階を踏んでおりとても良いと思った。そう、これなんですよ。最初は main.tf だけで十分。 Terraform の設計はアプリケーション設計とよく似ており、初めから抽象化すると難しくなると思う。 基は宣言的に書いていき、設定ファイルのような読めるコードにする。3回くらい重複し始めたくらいで、変数やモジュールに落とし込むのが良いはず。 17.4.1 の “安定度の高いコンポーネントは、変動を想定したコンポーネントに依存

  • 自作の GitHub Action を GitHub Marketplace に公開してみた

    追記(2019-09-23): ⚠️ この記事の GitHub Actions は HCL 記法を使う古い方法です。現在は YAML 記法に変わりました。参考にしないで下さい。 先日 [2019-02-03-1] 作った GitHub Action のリポジトリページにこんな表示が出てました。 https://github.com/masutaka/github-actions-all-in-one-project こちらのドキュメント によると、リポジトリの Release ページ から公開できるとのこと。 全部グリーンになるように、Icon や Color などを直しました 。あとは普通にリリース。 あっさりとリリースできました! https://github.com/marketplace/actions/all-in-one-project Marketplace の目立つところに

  • S3 の public バケットで特定パス以下を IP アドレス制限する

    全体を Allow したあとに、制限したいパスに対して Deny を追加すれば 可能。 例えば以下の場合。 https://s3-ap-northeast-1.amazonaws.com/masutaka-hoge/aaa/ * → インターネットに全公開 https://s3-ap-northeast-1.amazonaws.com/masutaka-hoge/bbb/ * → IP アドレス AAA.BBB.CCC.DDD からのアクセスのみ許可 このようなポリシーになる。 { "Id": "Policy1234567890", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt0123456789", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": "a

  • 『スターティングGo言語』を読んだ

    1 年前に買って積んでいたのは勿体なかったですが、最近ようやく golang と向き合うようになったので、致し方なしか。 対応バージョンは 1.6 で最新の 1.9 より古いですが、golang は後方互 換性は保たれているので、あまり問題ないかと。 型や構文、よく使われるパッケージの説明など、網羅的に書いてあります。 ネット上の情報をつまむくらいなら、こので学んだほうが良いと思いま すよ…。> 過去の自分 一番良かったところ# 私は元々組み込みエンジニアで、clang に馴染みがあります。そういう意 味では、golang は馴染みやすくはあるのですが、ポインタまわりがどう もしっくり来ませんでした。 このを読んで、その辺りを理解できて大変良かったです。 ・(*p)[i] の省略が p[i] であるなど、ポインタ記法を省略できる ・参照型(スライス、マップ、チャネル)はポインタを取り扱

  • golang の並列処理を Ruby と比較しながら学ぶ

    一ヶ月ほど前に社内のインフラ共有会でタイトルの話をしました。記録の ために記事を書いておきます。 Gist に置いてある ので、コードは git clone で取得可能です。 $ git clone https://gist.github.com/c0a4234a5264c89655c40adcf7c27cb2.git Ruby# 例えば Ruby で 30 個の処理をするコードがあったとします。こんな素朴 なコードです。それぞれ 3 秒かかる処理が 30 あるので、とても遅いです。 Thread を使って 5 並列にしました。明らかに速くなりました。 ついでにそれぞれの結果(というほどのものではありませんが)を results に代入し、最後にまとめて表示しました。 results は共有リソースになるので、Thread::Mutex#synchronize でロッ クをかけて安全に書き

  • WEB+DB PRESS Vol.99の「実践Kubernetes」の第4章でつまづいたメモ #wdpress

    先月からなぜか Kubernetes の素振りをしています。 職場の若者が先日発売された『WEB+DB PRESS Vol.99』の牧さんの記事、 「実践Kubernetes」をオススメしていたので、流れで実際に動かしてみま した。 この記事は先週の『Kubernetes Meetup Tokyo #5』[2017-06-29-1] でも オススメされていました。 第4章で実際に GKE を使うことになるのですが、記事に書いてあるコマ ンドや設定はそのままでは動かず、大変難儀しました。誰かの役に立つか もしれないので、人知れずメモしておきます。 注意点# 私は Kubernetes(以下 k8s)を使い始めたばかりです。 今回の件が、記事で使われているバージョン(1.6.1)と、現在 GKE で使 えるバージョン(1.6.6)の違いによるものなのか、当に記事が間違っ ているのか分かってい

  • CircleCI 2.0 をローカルで実行できる circleci コマンドとは何者か

    先日の [2017-04-13-1] で気になったので調べてみました。 初めに結論から。 circleci コマンド(シェルスクリプト。macOS 等で実行可能) └ docker run circleci/picard └ /usr/bin/circleci (https://github.com/circleci/build-agent ) ・circleci コマンドは build-agent というコマンドを Dockerize した シェルスクリプト。 ・build-agent は golang 製のツールで、/usr/bin/circleci としてコン テナ内に存在する。おそらく private repository https://github.com/circleci/build-agent で開発されている。 ・Docker Image は https://hub.do

  • ローカル環境を出来るだけ Dockerize した

    ローカルに nginxmysql が起動していたり、gem install のためだけ に cmake や icu4c を brew install するのは嫌になったので、三連休で 出来るだけ Dockerize しました。仕事の素振りも兼ねています。 nginx# このブログの記事を書く時のプレビューや、雑多な html ファイルの表示 に使っています。 今まで $ brew install nginx して、nginx.conf も別途管理していまし たが、以下のような雑な docker-compose.yml で、雑にマウントするだけ で良くなりました。 version: '3' services: nginx: image: nginx:alpine ports: - 8080:80 volumes: - /Users/masutaka/Sites:/usr/share/n

  • 『みんなのGo言語』を読んだ

    [2015-02-11-1] で Go を学んだ私ですが、その後あまり使っていなかったので、情報をアップデートできて良かったです。 特に第1章の開発環境のあたり。goimports の import 自動挿入は良いですね。早速 go get して init.el に以下を設定しました(go-mode.el は導入済み)。 第6章のテストも即戦力になりそうです。 以下は読んでメモった箇所を中心にしたまとめです。 全体を通して感じたこと# Go の文法が多少分かる方向けのだと思います。P.19 にも書いてある「A Tour of Go 」などをやった後に読むと効果的だと思います。 ただ、世間でオススメされている「A Tour of Go」ですが、私はチュートリアルとしては難しいと思います。半分くらいから Go よりアルゴリズムのチュートリアルっぽくなってくるので。 個人的には [2015-0

  • このサイトを http2 対応した

    今まで http だったこのサイトを http2 対応しました。 静的ファイルもそうですが、このサイトで動いている kibana が体感で速くなった気がします(計測すればよかった)。 SSL 証明書は最近流行りの Let’s Encrypt ではなくて、温かみのある StartSSL で取得しました。パスワードではなく、証明書でのログインがいいですね。 どちらも無料で取得できます。前者はコマンドラインから取得できるが構成管理難しめ、後者はサイト上から手作業で取得が必要だが構成管理は容易、というおおざっぱな違いがあります。 今回学んだことは 「出来るだけ https 対応してから http2 対応すべし」 でした。雑に http2 にしたら 403 Forbidden や、ChromeERR_SPDY_INADEQUATE_TRANSPORT_SECURITY が発生しハマりました。

  • 結局 package.el に戻ってきた

    [2014-11-03-1] に package.el から Cask に乗り換え、 [2015-06-17-1] に Cask から El-Get に乗り換えましたが、 結局 package.el に戻ってきました。 理由は M-x el-get-update(-all) の更新がうまくいかず、エラーにな り、~/.emacs.d/el-get や ~/.emacs.d/elpa を全削除して入れなおすこ とがよくあったからです。最近は面倒になりアップデートもしなくなりま した…。 package.el でインストールするパッケージも init.el に書いてしまえば、 何をインストールしたか分かります。なにより Emacs デフォルトの機能 なので安心感があります(私はライトなデフォルト厨)。 バージョンロック出来ない問題は、アップデート前に ~/.emacs.d/elpa をバックア

  • GitHubのPrivateリポジトリをChef経由でcloneしようとしたらハマった

    自分のinit.elや.zshenvはGitHubのPrivateリポジトリで管理しています。 masutaka.netでも同じ設定を使いたかったので、Chef経由(実際はKnife Solo経由)でgit cloneしようとしたら結構ハマったので、メモしておきます。 ぶっちゃけmasutaka.netに秘密鍵をおけば、ハマることはないです。でも セキュリティ的にあんまりなので、sshのforward agent機能を使い、ロー カルの公開鍵をリモートでも使うようにします。 (1) sshのforward agentを設定する# やり方は簡単で、ローカルの~/.ssh/configに以下を追加し、ローカルで ssh-addコマンドを実行するだけ。 Host masutaka.net ForwardAgent yes この状態でmasutaka.netにsshログインし、git cloneす

    fumikony
    fumikony 2015/06/19
  • El-Get を多少理解できた気がする

    Cask から El-Get に移行したのが先月。 (ちなみに Homebrew の Cask は Emacs の Cask を参考にしたらしいです。) 遅ればせながらCaskから移行した。私のinit.elは http://t.co/6EptUvzKPH から辿れるよ。elpa: を付けたほうが良いのかが判断つかない。 / “Caskはもう古い、これからはEl-Get - いま…” http://t.co/suiPgzXdXP — マスタカ (@masutaka) May 17, 2015 el-get-update とかで頻繁にエラーになるので、調べ始めて文句を言って いるところ(愚かな奴めw)。 el-getもCaskとは違った面倒くささがあって、考えるのも面倒になってきた。MELPAがあるのにVCSでの指定をオススメするって、意味がわからない。el-get-bundleが言うelp

  • masutaka.net のファイルを直接編集

    Emacs には、リモートホストにあるファイルをあたかもローカルにあるよ うに扱える Tramp という機構がある。例えば remotehost の $HOME を開 きたい場合は、以下のように find-file する。 C-x C-f /remotehost: パスワードを聞かれない設定は [2007-01-27-1] にまとめてある。 接続方式は、tramp-default-method の値が使われる。私の環境では初期値 として、“scp” が設定されていた。 ただ、masutaka.net に接続しようとすると、ミニバッファに以下のメッセー ジが出て接続できなかった。 Tramp: Waiting for prompts from remote shell ググってみたら、そのものズバリのページがあった。 TRAMPとZsh - ゴミ箱の中の雑記帳 私の場合も Emacs の T

    fumikony
    fumikony 2015/02/24
    "TRAMP の接続方法を scp から scpx に変更すると、標準のログインシェルではなく /bin/sh が使われる"
  • OSXのEmacsにインラインパッチなんていらなかったんや...

    今更ながら年末のEmacs Advent Calendarを読んでいたら、「Emacs Lispの汎変数(とその他) - Qiita 」にさらりとmac-auto-ascii-modeの紹介が。 また、新機能 mac-auto-ascii-mode を有効にすると、ミニバッファにカーソルを移動する際、自動的に英語モードになります。これで日本語入力モードでうっかり M-x shell と入力しようとして M-x しぇっl になるような悲惨な事故をなくすことができます。 2014-11-21のemacs-devel でアナウンスされていました。 *** New global minor mode `mac-auto-ascii-mode’ for Mac OS X 10.5 and later. If enabled, it automatically selects the most-rec

  • Emacs-24.4 on OSX Yosemiteのビルド手順詳細

    なんとかビルド出来ました。こりゃEmacs人口が減るわけだ。。 Emacs-24.3の頃からクラッシュする問題に悩まされていたんです。 Emacs-24.4-universal.dmgでインストールしても使ってて落ちた。(add-to-list 'helm-for-files-preferred-list 'helm-source-ghq)の設定で落ちる。やはり外部プロセス使うタイミングでひじょーによく落ちる。 — マスタカ (@masutaka) October 23, 2014 そんな中見つけたのがMew-jaのこの情報 。 素の Emacs は、Mac では不安定です。山さんのパッチを当てて使うと、ほ とんど落ちなくなります。 ftp://ftp.math.s.chiba-u.ac.jp/emacs/ –かず そこで今回からこのパッチ(experimental/hackers-on

  • Emacs auto-mode-alist の "\'" ってなんなの〜?

    昨晩の Emacs ミニミニ勉強会のネタ。 @tomoyaton 「auto-mode-alist って、("\.el\’" . emacs-lisp-mode) とかが設定されてるけど、なんで “$” じゃなくて “\’” なの〜?」 @masutaka 「言われてみれば確かにそうですね。でも Mule 時代は ("\.el$" . emacs-lisp-mode) って設定されてた気がしますよ。」 結論から言うと、改行にマッチさせないよう、より厳格にしているからだっ た。Mule 時代は “\’” がなかったのかな。 “$” は文字列の終端と改行にマッチする。 ;; hoge.el には当然マッチ (string-match "\\.el$" "hoge.el") => 4 ;; hoge.ell には当然マッチしない。 (string-match "\\.el$" "hoge.ell

    fumikony
    fumikony 2013/11/15
    へ~