zshで今日の日付ファイル名でmarkdownを開く

特定のプロジェクトであったり特定のカテゴリの調査の場合, 対応するディレクトリを用意しておいて日付ファイル名の markdown でメモを取ることが多いです。 例えば ~/path/to/dir/2018-01-10.md のようなファイル名になります。 この時 Markdown の 1 行目, つまり見出しも日付にしています。 # 2018-01-10 都度日付を思い出すのは面倒なので .zshrc に関数を定義して簡単に呼び出されるようにしています。 .zshrc に追加するコード function todaymd() { filename=`date "+%Y%m%d.md"` if [ ! -f $filename ];then date "+# %Y-%m-%d" > $filename fi vi $filename } 使い方 次のコマンドを実行することで markdown ファイルを vim で開きます。 $ todaymd vim で開いた時点で見出し(#) に日付が記述されるようになっています。例えば今日の $ todaymd を実行すると次のように。 # 2018-01-10 地味だけど便利。

2018/01/10 · Yuya MATSUSHIMA

LazySearch のドキュメントを改善した

ドキュメント 改善したところ 適当に, とりあえず, それっぽく作っていたドキュメントを書き直した ページ構成の変更 紛らわしい複雑な説明を排除 簡単な機能部分についてのみ説明 ページ間リンクを整備した できていないページは「できてない」で現状はいいか, という対応 アニメーション gif の撮影方法 どういった方法がスタンダードなのか分からなかったので, 適当にググって App Store で見つけた GIPHY を使って撮影してみました。 アニメーション gif で実行されている検索処理は LazySearch が使われています。 開発状況 LazySearch は 5 月にひっそりとリリースされてから着実に機能を増やしながら改善を続けています。 特に外部からの資金等はなく人員も用意できていないため, 私が 1 人で受託開発や SES の合間に作業を進めています。Ruby on Rails + Golang を組み合せてサービスを構成している都合上, 群馬では人材が確保しづらい事情もあります。 まだドキュメントを含めたユーザーサポート体制が十分にとれておらず, なかなか実利用に結びつかない状態です。そんな中でも積極的にご利用いただいている方もいらっしゃり大変感謝しています。 年内に当初考えていた基本機能の実装目処がつく予定です。年明け, 遅くとも 2 月中には課金機能を含めて正式リリースできる予定です。 最後に まずロゴを発注するところから…

2017/12/11 · Yuya MATSUSHIMA

会社の 1 期目が終わって

弊社は 8 月末決算なので本日が法人税まわりの支払い期日でした。無事に支払いが完了したのでいろいろとまとめておこう, という記事です。 どんな仕事を結局しているのか 大きくは 2 つに分かれます。 自社サービスの開発 他社様への技術提供や協力 自社サービスはあまり開発の進捗も芳しくないのが実態です。…あまり個人事業していた時と変わっていないとも言えます。ただし, 法人があるからこそのご相談やお問い合わせもあるので法人化自体は「正直しんどいけど作った分の価値はあったかな?」という塩梅です。 2 期目はどうするのか お金を稼ぐ 自社サービスをどうにかする 人材は今のタイミングでは難しい, というのが正直なところです。来年の 8 月末で入居しているシェアオフィスから撤退しなければいけないので, そのタイミングで検討することになると思います。 人を雇用するっていうのは, 日本の法律ベースでは相当難しいので悩ましいところです。 1 期目の感想 前半厳しかったが, 後半で 2 期目以降の見通しがついてきたので助かった 1 人で会社はきついので 2 人以上でやりましょう どうなることかと思ったこともありましたが今日も元気にやっています

2017/10/31 · Yuya MATSUSHIMA

新しい眼鏡を購入しました

JINS 高崎モントレー店(高崎駅内) で購入しました。 以前使っていたビジネス用眼鏡は経年劣化でツルが折れてしまいました。予備用のプライベート眼鏡で我慢していましたが交渉事が多くなりそうな気配があるので改めてキリッと見える眼鏡を購入しました。 私にとって眼鏡は顔の一部で大事なものですが, 大事に扱う習慣がないので長くて2年程度で壊れてしまいます。消耗品ですね。

2017/10/06 · Yuya MATSUSHIMA

座ってコードを書き続けること

「エラーが起こっても継続的に取り組めること」の言い換えでしかありませんが, その時グッと我慢してコードを書けることがプログラマとして成長できるタイプの人材ではないか? ということをよく考えています。

2017/09/23 · Yuya MATSUSHIMA

middleman-s3_sync で Cache-Control ヘッダを設定する

会社の Web サイト の内容を少し見直し, ついでに諸々調整をしました。具体的には事業内容を整理, 子ページができたのでデザインの一部修正等々です。 見直し完了後に PageSpeed Insights の指摘事項を修正する過程で Cache-Control ヘッダを付与する必要がでてきました。そのあたりの話です。 PageSpeed Insights の指摘事項 このブログでも同様の問題が指摘されています。アセット類のファイルに対して “キャッシュの設定が行われていない” ために発生する問題でした。 middleman-s3_sync を使って Cache-Control ヘッダを設定する方法 会社 Web サイトは AWS S3 + CloudFront 環境で運用されています。S3 の管理画面に入って個別または一括でヘッダ情報を追加することができます。ただし, 管理画面からの設定を行う場合, Middleman でサイトを更新する度に管理画面から設定を変更する必要があります。これは流石に不便です。 そこで middleman-s3_sync から Cache-Control ヘッダを設定する方法をとります。 具体的には config.rb に対して次の設定を追加します。 # middleman-s3_sync の設定 activate :s3_sync do |s3| s3.region = 'ap-northeast-1' s3.index_document = 'index.html' s3.error_document = '404/index.html' end default_caching_policy max_age: (60 * 60 * 24 * 365), public: true, must_revalidate: true caching_policy 'text/html', max_age: 60 * 10, public: true, must_revalidate: true caching_policy 'text/plain', max_age: 60 * 10, public: true, must_revalidate: true caching_policy 'application/xml', max_age: 60 * 10, public: true, must_revalidate: true default_caching_policy ですべてのファイルに対して cache の設定を行い, html, txt, xml の場合のみ max_age を変更するように設定しています。 ...

2017/08/19 · Yuya MATSUSHIMA

vim 上で RuboCop を実行する

Ruby で書捨てのコードを書く場合に, とりあえずいつもの感じで RuboCop を実行したい場合の設定を .vimrc に追加しました。 .vimrc への追加 function! RuboCop() echo system( 'RuboCop --config ~/.rubocop.yml ' . bufname("%")) endfunction 当然のことですが global 環境に RuboCop のインストールと ~/.rubocop.yml の用意が必要です。 vim 上で実行 vim 上で次のコマンドを実行すると RuboCop が走ります。 :call RuboCop() 適当にローカルにあったコードで実行してみます。 とりあえず動きました。

2017/08/05 · Yuya MATSUSHIMA

GitHub の会社アカウントで OSS の公開を始めました

会社アカウント(Organization): https://github.com/fillin-inc なぜ公開するのか こういうことをしている会社で群馬の会社はあまり見当たらないようだから 売上に直結しない, 特に価値があるわけではないが使うものをまとめておきたかった プロダクト/サービスのコードの中に含まれていなくても問題ないものを排除したい気持ちがあった なにを公開したのか Golang のパッケージをとりあえず 2 つ公開しています。LazySearch の中でも使われています。 https://github.com/fillin-inc/timeins time.Time 型の構造体を JSON にするとミリ秒まで表示されてしまう問題へ対応するための型を提供 API の仕様上の問題で採用している https://github.com/fillin-inc/pingpong API の導通確認用ハンドラ アクセスすると “Pong” が返る 著作者を法人とするか個人とするか fillin-inc の中の人は現状私 1 人なので, 著作者については個人名義でも問題ないのですが次の基準で分けていこうと考えています。 会社のプロダクト/サービスに積極的に採用されているものは会社 見栄え上プロダクト/サービスの一部と考えられるもの ex. 公開していないが JS のライブラリ, API 用のライブラリとか その他は個人 職務著作の観点からは仕事の時間中に開発したものは法人に帰属しますが, 将来にわたって柔軟に運用できればいいなぁと思っています。

2017/07/29 · Yuya MATSUSHIMA

Gunma.web#28 に参加しました

Gunma.web#28 に参加しました。 LT の内容 LazySearch の現状のデプロイの仕組みについて紹介しました。GitHub のリリース機能を利用した方法です。 感想 「やってみた」系の入門に近い話が多かった みんなコードそんなに書いてないのかな?みたいな気持ち 5 分の LT で話すには物量が多かったので気をつけたい

2017/07/19 · Yuya MATSUSHIMA

NO_CONTRACTS で Middleman のビルドを高速化する

$ middleman build 実行時に NO_CONTRACTS=true を付与すると contracts のチェックをスキップしてビルドが速くなる?らしいドキュメントが追加されたのでチェックする。 how to disable contracts in jp (#714) 検証 middleman/middlemanapp.com のビルドで検証する。 いつもどおり $ bundle exec middleman build を実行。 bundle exec middleman build 38.93s user 6.62s system 144% cpu 31.414 total NO_CONTRACTS=true を追加 $ NO_CONTRACTS=true bundle exec middleman build を実行。 NO_CONTRACTS=true bundle exec middleman build 33.19s user 5.73s system 206% cpu 18.863 total 結果 ローカルで適当に実行しているのでブレがあるけれど, とりあえず早くなるらしいことがわかった。 NO_CONTRACTS については Contracts のドキュメント に書いてありました。

2017/06/04 · Yuya MATSUSHIMA