Seiichi Yonezawa — How creativity is helped by failure

Ruby技術者認定試験制度(シルバー)をエア受験してみました

今年で2017年ですか、私もそろそろRubyを使い始めてもう何年経つでしょうか。ひょんなきっかけからRubyという言語を第一言語としてここまで来ましたが、一体私はどれだけこの言語を知っているのか、客観的にそろそろ評価しても良い頃合いなのかなと思いました。もったいぶっていますが、経費というか資格を受ける費用を補助してもらえるようなので、それがおそらく大きなきっかけでもあります。

Continue Reading

開発日記 #41

今週もほとんど何もせずいたのですが、先週取り上げたampを試してみました。サンプルが非常に多く掲載されていて、新しいことを学ぶにはこれほど充実したものはないように見えます。しかし!いざ扉をひらいてみると、大きな制約として「フォント読み込みを除くすべての外部CSSが禁止」という非常に厄介な壁がありました。つまり、Railsのasset pipelineがほぼ無力化してしまいます。とはいえキャッシュにしてFile.readすれば案外すんなりいくかもしれないので、若干面倒ですが試してみる価値はありそうです。

Continue Reading

開発日記 #40

今日は久しぶりに夜更かししてしまいました。そんな今回の表題はTurbolinks 5です。Rails 5のTurbolinksはプログレスバーが表示されるようになって、なんとなく使い勝手がよくない気がして避けて来ました。このサイトも以前はTurbolinks Classicを利用していましたが現在は使っていません。せっかくRailsを利用しているのにどうしてTurbolinksを使わないのでしょうか。Turbolinksに関する情報がろくに見つからないのも原因ではありますが、最近またJavaScriptを遊んでいる一環としてそろそろTurbolinksにも挑戦することにしました。

Continue Reading

パスワードを看破したい

とあるメールの添付ファイルのzipファイルにパスワードがかけられていました。パスワードは暗証番号と同じというメッセージが添えられていました。そこでふと思いついたのですが、単純なパスワードを破るにはどうすればよいだろうかと。まずは非常に単純なbashスクリプトを書きました。

Continue Reading

会員情報の移行

現在の案件では、某求人サイトの会員情報をRailsに移行するために、データベースの中身を見る機会がありました。そのシステムは現在も稼働中なのですが、これから移行するのはDeviseで書かれたシステムで、旧サイトはphpで構築されていたのですがパスワードは暗号化せずにテキストのまま保存してありました。パスワードのハッシュ化はDeviseの関数を利用したかったので単純なSQLでの移行をせずに、1件ずつインスタンスを作成し、save!していくことになりました。今回は実際に私が作業したというよりは、半ばペアプログラミングで横から作業の様子を眺めていたのですが、そうある経験ではありませんので残しておこうと思います。

Continue Reading

開発日記 #39

今週は更新するネタもなく、それどころかやる気というか根本的なモチベーションが全くありませんでした。しかし、2日も休んだ罪悪感からか、平日にやる気が戻ってきました。何かやろうと予定するとうまくいかないものですが、適当な作業ならそこそこ続く不思議。今に始まった話ではありませんが。さて、今週はサイトを何か作るのに仮の画像を用意しようと思ったのですが、毎回適当な画像をどこから拾ってこようか悩みます。単一色の画像や、Placehold.itの画像もいいのですが、やはりそれっぽい画像がいい。かといって、画像をいちいちダウンロードするのも面倒です。

Continue Reading

n進数を求める方法

最近リニューアルしてからというものの、ログインに失敗するようになりました。原因は幸いすぐ突き止めることができたのですが、キャッシュの中にcsrf_meta_tagsを入れてしまっていたようで、しかもキャッシュは開発環境では通常動かないのでデプロイしてからしばらく気づきませんでした。headタグはあまりキャッシュに適さないのかもしれませんね。

Continue Reading

ログを見る習慣

今日はいわゆるステージング環境というサーバーで、Railsのログを見る方法について考えてみました。
サーバーのログというと、Apacheのようなまさしくアクセスログのような情報がまとまっているものだと思っていました。しかし、Railsのログはまさしく普段見ているログと何ら変わりなく、SQLに色がついていたりします。問題はこの色、いわゆるEscape文字ですが、lessのようなコマンドでは文字がエスケープされてしまうため、一時期はログからエスケープを除去する方法を考えていました。ですが、それはさすがに時間がかかりすぎるため、重い腰を上げて調べました。

Continue Reading

自分を鑑みるとき

少々大げさなタイトルですが、今日は自分の力を過信しすぎているかもなという出来事がありました。それはデプロイ時のことなのですが、普段開発ではあまり気にかけないアセットのことです。現に、このサイトもbootstrap等のライブラリはgemを利用していました。つまり、外部のライブラリは使い方がわかっているようで、そんなにわかっていないのでした。

Continue Reading

リニューアルしました

Rails 5に移行してからしばらくの間はデザインをそのまま引き継いでいていたのですが、今日ようやくリニューアルの第一歩を踏むことができました。以前の開発日記にも残していたのですが、本当はSTIでPostから様々なクラスを派生させる予定でした。でも結局Journalクラスしか使っていないため、思い切ってまたよくある1カラムのブログレイアウトに変更しました。リニューアル前は2カラムで作りたいと思っていたのですが、無駄な空白のままだったので、2カラムを採用するのはもう少し後でもいいかなと。

Continue Reading

読書がしたい

先週は代休で3連休だったのですが、あまり開発自体は進みませんでした。やりたいことはある程度固まってきてるはずなのですが、なかなかうまくいかないうちにモチベーションも下がってきて、結局時間を無駄にしてしまうという負の連鎖に陥ってしまいました。

Continue Reading

開発日記 #38

今週は忙しかったうえに、休日も1日潰れてしまい、今日はその回復に充てていたため特に何もできませんでした。こうした趣味以外ではWindows環境でVagrantの仮想マシンでRailsサイトの開発をしているのですがVirtualboxのファイルをWindowsにマウントしているので、Railsのヘルパを保存更新してもブラウザの画面は更新されていない、ということがありました。テストを満足に書けないのも悪いのですが、毎回サーバーを再起動させるのでは効率が悪い。

Continue Reading

AMPが熱い(かも)

今週の頭にリニューアル計画を発表したつもりですが、また急に飽き性が発作してしまい、モチベーションを失いつつあります。まあ、今はWebよりも実がありそうなコードとかプロジェクトを始めようと思っています。今となっては年末年始にそういった方針に舵を切ったつもりでした。しかし、また最近AMPというものを知り、今度こそこのサイトのリニューアルを果たしてみようかと思いました。ただし、今回は表面的な変化よりは内部の変化にあたりそうなので、勉強する内容も増えそうです。結局ただの日記を書き残す場所になりつつありますが、また更新するネタが増えるかもしれません。しかし、今はWebよりも別のことを始めたいんですけれども。

Continue Reading

開発日記 #37

今週は1週間が長かった……。そんな気さえしてくるほど、前回更新から時間が経ったように感じていたのですが、作業そのものは特に進捗しませんでした。今週はおそらくあまり作業そのものをしていなかったようにも思えますが、グラフの方は少々詰まってきたのでまたほぼ0から書き直しみたいに始めました。まあ、いつかはやりたいと思ってたんですが、今まで整数ベースだったものを小数点で扱うようにするのに、ソースを修正するのはやや面倒だったのです。なかなか思うように自分の時間を過ごせていませんが、この調子でぼちぼち進めていく予定です。

Continue Reading

開発日記 #36

今週はグラフ生成の続き……をやるはずだったんですが、また思いつきでnanocとsinatra、そしてsequelのコンビネーションを試してみました。そして、テンプレートはネットで配布されているかなり古めの(euc-jpなんて単語久しぶりにみました)ものを適用しようとしたため、思った以上に時間がかかった上失敗に終わりました。結局今は単にnanocだけをデプロイしました。

Continue Reading

開発日記 #35

座標を表示する方向性で、未だうまくいっていません。やはりwhileのループはデバッグが厄介で、ある程度ビジュアル化はして2件ほどバグっぽい挙動を直しましたけれど、根本の原因を特定できませんでした。

Continue Reading

開発日記 #34

今日は昨日に引き続き座標を重複しないように分離するコードに挑戦していました。物理エンジンのライブラリを利用することも考えたのですが、操作が煩雑でわかりにくかったことと、ライブラリのメンテナが既にリタイア宣言をしていたのでエンジンを使わない方向性でいく予定でした。操作自体は一見そこまで複雑そうでもありません。傾斜や円などの形状を使うわけではないので、二つの面のデルタを比べて、座標に対してそれぞれ反対方向に広げるだけ……のはずなのですが、おそらく比較対象の座標がそれぞれ遠すぎたのか、遠く離れすぎてしまうようでした。こちらに関しては、今週中にはうまく動けるようにしたいですね。

Continue Reading

開発日記 #33

この数日間、webではなく座標を生成する方法を模索していました。まだまだ目指している完成形にはほど遠い状況ですが、この画像はChunkyPNGを使用し、giflossyでサイズを減らしました。元のサイズは216KBでしたが、現在は31KB。素晴らしいですね。

Continue Reading

開発日記 #32

今日は振替休日ですが、作業内容的には昨日に引き続き自宅サーバをそろそろ本格的に活用し始めるための準備を行なっています。現状は昔Sinatraを使い始める前に遡りますが、Nanocを使っていました。今回は久しぶりにまたNanocを使いたくなり、Sinatraで動的なページを、Nanocで静的なページをそれぞれ生成しようと思いました。また、デプロイにはおなじみのCapistranoを使用します。無事、これらを使ったオーケストレーションには成功したものの、合間に利用しようとしたGitLabのインストールにどうしても失敗してしまう……というか、インストールが進まないという現象に悩まされています。

Continue Reading

開発日記 #31

今日はこの公開サーバとは別に、自宅で稼働させているサーバも公開してみようと思いました。しかし、LANで保護されているネットワークにわざわざ穴を開けるわけですので、セキュリティ上の懸念がありますがこのあたりの設定をちゃんと理解していれば問題はないでしょう。それこそ、昔は本を読んでもきちんと理解できなかったものですが、今ならなんとかわかる気がします。

Continue Reading

今すぐngrokを使い始める理由

ngrokをご存知ですか?私は知りませんでした。1.x系はオープンソースだったのですが、2.x系からプロプライエタリに変更されたようです。ですが、こんなに便利なものならば、もっと早く知りたかったくらいです。使い方は至極簡単で、解放するポートを指定してやればBOOM、これでngrokドメイン経由で安全に接続できてしまうようです。素晴らしいですね。しかしngrokを使わなくてもlocalhostを使い続ける方が早いし、わざわざ導入する必要はないと思われます。

Continue Reading

開発日記 #30

今年の個人的にやりたいと思っていることのひとつは「家計簿をつける」です。去年まで貯金をしようと思っていたのが、旅行や自作PC等でなかなかうまく貯まりませんでした。経済などの分野にはあまり興味がないのですが、金銭のフローを可視化することによって、無駄な出費を抑えられるようになるそうです。

Continue Reading

あけましておめでとうございます

2017年最初の投稿です。あっという間に迎えた正月ですが、大晦日も含めて5連休でした。年末に組み立てていた自作PCのトラブルがあり、企画倒れになりつつも正月を満喫していたのですが、今日は腰を据えて作業をしました。もはや深夜ですけれども。

Continue Reading

独自発行したSSL証明書を信頼する方法(macOS)

以前も同じような投稿をした記憶がありますが、自宅サーバでRailsを運用しているとHTTP接続は何かと不安です。Let's Encryptを使う方法もあるのですが、公開サーバではないので必要ありません。しかし、独自発行したSSLはやはり出自が不明なのでブラウザは警告を発します。毎回警告を無視することもできますが、それは面倒なのでどうやって証明書を承認できるかというのが今回の目標です。

Continue Reading

メリークリスマス!

今年のクリスマスは3連休でした。今日はその最終日で、YouTubeのクリスマスソングを流しながらゆっくり過ごしています。暖炉があればもっとそれっぽいクリスマスを過ごせるんですが、寒くなければ問題はないでしょう。このサイトも未だにRails 5に移行できずにいるので、相変わらず更新も滞りがちな今日この頃。そんな中、昨日ダイキャストの車の模型を買いました。車種はシボレー・シェベルというそうです。同じシボレーならコルベットとかカマロにすれば良かったような気もしましたが、なんとなくこの外観のほうがよく見えたのです。あんまり技術的ではありませんが、それもクリスマスならではでしょうか。

Continue Reading

開発日記 #29

最近モチベーションが低下しつつあって、まだRails 5の移行が完了できそうにありません。どうも休日はRails 5の移行作業を完成させるよりも、違うことをやりたいと思うのですが、そうこうしているうちに日が暮れてしまうようです。

Continue Reading

開発日記 #28

今日は朝の更新です。平日は夜遅くまで起きてしまうリスクを回避しようと思ったのですが、今日は比較的功を奏していると思います。また、今週は何かとGitHub上のコミットも少ないので何もしていないように見えて、実はこのブログのRails 5以降を着々と進めています。主に新機能を追加するよりも、主にリファクタリングをしています。たとえば現行サイトではJournal, Article, Noteという3つのクラスが主に存在しているのですが、予定ではこれにResourceを追加して、それぞれに権限を振り分けようと思っています。Noteは完全にプライベートなので公開されず、Journalは個人的なものなので公開のみ、Articleはコメントを追加できて、Resourceは誰でも編集可能ないわゆるBlikiみたいなものを目指そうかと思っています。なぜ単一のクラスでやらないかというと、ifがたくさん必要になるのと、オブジェクト指向っぽくないからです。

Continue Reading

開発日記 #27

今週は旅行があったので、比較的早く休みを迎えることができてラッキーと思っていたのですが、残念ながら肝心のやる気が出ませんでした。唯一やったことといえば、ファイル管理しているRailsのアップローダー方式を間接的に変更したことでしょうか。Tusそのものはそこまで悪いとは思わないのですが、やはりNginxの設定等もあるので、いざ容量の大きいファイルをアップロードしても、OSがスタンバイする等のトラブルで失敗してしまったりするようです。なので、アップロードはSCPを使うことにして、ローカルでファイルを追加できるようにしました。なんというか、せっかくTusを実装したのに意味がなくなってしまって悲しい限りです。

Continue Reading

開発日記 #26

12月4日に1泊2日の観光旅行に行きました。初めて伊勢神宮で「お伊勢参り」を果たしてきたのですが、開発日記の趣旨にあまりそぐわないけれどこういった公開サーバーにもアップロード機能をつけてみることにしました。現段階ではAmazon S3のようなサービスを使わずに、そのままpublicディレクトリに保存してあります。ユーザー毎にパーミッションをつける必要もないですし、というよりもユーザーは私一人なのでこれがもっとも妥当でしょう。

Continue Reading

開発日記 #25

先ほどShrineで大容量のアップロードする方法という投稿を終えたばかりですが、では実際にルーターで共有しているサーバーにデプロイしてアップロードを試してみました。開発環境ではそんなに問題らしき問題は起こらなかったのに、いざデプロイしてみると問題が起こるのは世の定めなのでしょうか。実際のファイルはやれヘッダが違うだとか、サイズが大きすぎるなどといった問題が出てきました。Railsの時に起こっていない問題は基本的にNginxの問題なのですが、正直Nginxはポートフォワーディングだけしてくれればいいので、あまりこういったトラブルには巻き込まれたくなかったです。それからファイルサイズの上限を変更してみたりしたのですが想像以上にWiFiネットワークが遅いということも相まって、SFTPでファイル送信する方が速いような気がしてきました。

Continue Reading