人権真骨頂

とくがたかいことでゆうめい

プロフィールページ的なの変えた

変えた.

www.upamune.com

を変えた.

前はここのテンプレート使ってやってた.

html5up.net

けど,そんなお洒落なのよく考えたらいらないし,でかい画像とか必要のないCSSとか読んでて微妙に遅かったのでやめてシンプルにしたかった.

結果的には1つのawsm.cssっていうCSSのライブラリをCDNで読み込んでいるだけのhtmlファイルだけになった.このCSSのライブラリも排除したいけど良い感じになるので入れている...(CSSパワーがマジでない) Twitter Card, OpenGraph系も一応この際だし適当に設定しておいた.

github.com

配信はGitHub Pagesでやってるものだと思っていたけどなぜか,S3 + CloudFrontだった.AWS Certificate Managerを知らなくてLambdaで証明書の自動更新書いてたの思い出してきた...

今回もGitHub Pagesじゃなくて別の使ってみることにした.

www.netlify.com

HTTPS,カスタムドメインで配信しているだけなので完全にGitHub Pages使ったほうが良い... こんなペラのやつじゃなくてもっと複雑なページで利用すると良さそう.ビルドが発生するやつとか.でも,色んな機能を利用しようとすると有料プランにアップグレードしなけれなならないので,うーん.まぁ今回のようなただのHTMLファイル配信だったら完全にGitHub Pagesで良い.

SuffixArrayをCrystalで実装してみた

blog.shibayu36.org

この記事を見てCrystalでもやってみたくなったのでやってみた.

class SuffixArray
  def self.make(str : String) : Array(Int32)
    (0...str.size).map { |i| {str[i...str.size], i} }.sort_by { |p| p.first }.map(&.last)
  end
end

こんな感じになった.

require "spec"

describe SuffixArray do
  it "returns empty array" do
    SuffixArray.make("").should eq [] of Int32
  end

  it "returns suffix array" do
    SuffixArray.make("banana").should eq [5, 3, 1, 0, 4, 2]
  end
end

一応テストも書いてみた.

まとめ

文字列アルゴリズムの学びかた - Hatena Developer Blog

SuffixArray聞いたことはあったけど,どういうものかは知らなかったのでなるほど...という感じだった.自分もアルゴリズムの勉強をやっていきたいので,なんかRubyで学ぶアルゴリズム的なのがあればCrystalでも簡単に実装できそうで良さそう.