プロフィールページ的なの変えた
変えた.
を変えた.
前はここのテンプレート使ってやってた.
けど,そんなお洒落なのよく考えたらいらないし,でかい画像とか必要のないCSSとか読んでて微妙に遅かったのでやめてシンプルにしたかった.
結果的には1つのawsm.cssっていうCSSのライブラリをCDNで読み込んでいるだけのhtmlファイルだけになった.このCSSのライブラリも排除したいけど良い感じになるので入れている...(CSSパワーがマジでない) Twitter Card, OpenGraph系も一応この際だし適当に設定しておいた.
配信はGitHub Pagesでやってるものだと思っていたけどなぜか,S3 + CloudFrontだった.AWS Certificate Managerを知らなくてLambdaで証明書の自動更新書いてたの思い出してきた...
今回もGitHub Pagesじゃなくて別の使ってみることにした.
HTTPS,カスタムドメインで配信しているだけなので完全にGitHub Pages使ったほうが良い... こんなペラのやつじゃなくてもっと複雑なページで利用すると良さそう.ビルドが発生するやつとか.でも,色んな機能を利用しようとすると有料プランにアップグレードしなけれなならないので,うーん.まぁ今回のようなただのHTMLファイル配信だったら完全にGitHub Pagesで良い.
SuffixArrayをCrystalで実装してみた
この記事を見て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でも簡単に実装できそうで良さそう.