Seiichi Yonezawa — How creativity is helped by failure

開発日記 #25

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

Continue Reading

Shrineで大容量のアップロードする方法

Shrineはファイルをアップロードするためのライブラリです。似たようなgemであるCarrierWaveやPaperclipとは異なり、アップロードしたファイルをJSON形式にシリアライズします。また、いずれのライブラリを用いても大抵は100MB以上のファイルをそのままアップロードすると、モデルを保存する時にRailsのインスタンスはクラッシュしてしまいます。Railsで大容量のファイルをアップロードするには、持続可能な(resumable)プロトコルであるTusを利用しましょう。

Continue Reading

開発日記 #24

昨日の開発日記を書き終えてすぐにAmazon LightSailの契約をしてみました。例えばこのサーバーはDigitalOceanでデプロイされていますが、料金体系やサービス内容はほとんど同じです。ワンクリックでWordPressがインストールできるという強みがあるのですが、これもいずれDigitalOceanが似たようなサービスを展開するかもしれません。というよりも、WordPressそのものだったら他のサービスもすぐにWordPressが使えることをウリにしていたりしますよね。例えば、Media TempleもWordPress専用のプランならば月額20ドルです。こちらはストレージが30GBなので、ストレージだけで見るならLightSailのほうがお得かもしれません。(ただ問題はよほどWordPressで30GBも使いきれるのかとは思いますが)

Continue Reading

開発日記 #23

今年もいつのまにやら12月になっていて、今年も相変わらず早かったなぁと思うところであります。さて、GameOffは何度か話題に出していますが、今回はいわゆる企画倒れになってしまいました。(実力不足で書けてないわけではないと言い聞かせつつ)それで、代わりにまた今月は挑戦というほどでもないですが、12月にはアドベントカレンダーというものがありますね。今年はいつにも増して外との交流がなさ過ぎるので世の動向がどうなっているのかはわかりません。確か一昨年あたりに一人アドベントカレンダー企画として毎日記事を投稿するみたいな挑戦をしたのですが、結果は最後の最後で力尽きてしまいました。

Continue Reading

開発日記 #22

SinatraのTusサーバーがある程度うまく出来てきたので、改めてRailsでアップローダーを書き直しています。そのままSinatraを使っても良かったのですが、やはりpassenger等のデプロイが便利なので実用するのであればRailsを採用したいのです。

Continue Reading

開発日記 #21

昨日は調子が悪く、一日中横になっていました。深夜に復活したのですが、さすがにそのまま寝られるわけもないので、気づいたらすっかり朝の7時でした。決まって夜は集中できるのですが、これから1日が始まるんだと思うと憂鬱です。それで、今回の題材は以前取り組もうと思っていたtusサーバーのRuby版がありました。また、ShrineとRodaを組み合わせたShrine Tus Demoは同じくShrineのJanko Marohnićさんにより公開されています。S3のアカウントが必要だったので、これを参考に私はSinatra版を作りました。

Continue Reading

開発日記 #20

今日はこのサイトのマイナーチェンジに取り掛かってみました。

Continue Reading

開発日記 #19

昨日は感謝祭、そして今日はBlack Fridayですね。セールなので欲しいものがいろいろあるのですが、本命はグラフィックボードなのでどうしようかなと悩んでいたりします。

Continue Reading

開発日記 #18

まだ計画段階ですが、今日は開発日記部分を公開としてログイン等の管理機能を分けようと思いました。これ自体は以前もやっていたのですが、モノリスが良い時もあれば、細かく分割したい時もあります。そして、現状はやっぱりわざわざ一括りにするほどのものでもないのかなと思えています。少なからずログインが公開側にある、すなわち検索エンジンにヒットすることは不毛に思えます。一番不満だったのはBootswatchのテーマは気に入ってるのですが、レイアウトがいまいち満足できないので、また別のテーマを拾うことにしました。何を採用したかはまた改めて公開したときにでも。それではまた明日。

Continue Reading

開発日記 #17

昨日と今日は主に自宅サーバに使うRailsを書いていました。開発日記#15でも触れていますが、今までSambaやGitLabなどファイルサーバくらいしか用途がなかったのですが、これを少し拡張してRailsでサーバ管理できるようにすればいいんだと思いつきました。非常にシンプルなサイトなのでこれもまだしばらくオープンにする予定は現在ありません。そこで、ファイルのやりとりを簡略化するためにShrineというGemを使うことにしました。今まではPaperclipを利用していましたが、単に利用するだけならImageMagickをインストールしなくても依存関係はなさそうなので、軽快です。ただし、ShrineはRodaにインスピレーションを得ているようで、モジュラー化していて使いやすそうですがその反面自分でいろいろと定義しなければならないのでこれも習得には少々時間が必要かもしれません。なんだかこういうプロジェクトが面白くなってきて、GameOffはやっぱり今週もできませんでした。さすがに残りの日数でできるものも限られてくるので、事実上のリタイア宣言をここに残しておきます。敗因はやはり、この文章を書いていてもインスピレーションが湧かなかったからかも。また来年にあれば今度はもう少しJavaScriptを身近にしてから再挑戦したいですね。

Continue Reading

開発日記 #16

以前マイクロサービスに関して考えたのですが、あまり記憶にとどまらないうちに忘れてしまいました。というのも、何が必要で何が不要かとか、具体的なイメージが湧きませんでした。今日もまだそんな感じなのは変わらないのですが、また再び昨日書いたRailsやSinatraを考えるとそろそろマイクロとモノリスについて考えてもいいのかなと思えてきました。

Continue Reading

開発日記 #15

最近になってSinatraの楽しさを再発見しつつある私ですが、Railsも書いています。というより、今日はRailsを書きました。GameOffではモチベーションが全くわかないのとは対照的に、Railsだったら10コミットも余裕です。やっぱり慣れなんでしょうかねぇ。

Continue Reading

開発日記 #14

今日の開発日記は残念ながらあまり書きたいほどの内容はなかったのですが、ぼちぼちGameOffを書き始めました。ただ、JavaScriptもゲーム書くのも嫌いではないはずなのに、なぜか書いていて楽しくないという。せめて今日明日のうちにゲームの骨組みだけでも完成しておきたかったのですが、骨組みはおろか、まだろくにプレイできそうな環境ですらありません。うーん、今回は気持ちばかりが先行してしまって本当に書きたい内容がわからないのかもしれません。このブログに注力する前はそこそこJavaScriptも書けていたはずなのですが、なかなか難しいものです。

Continue Reading

開発日記 #13

昨日は早めに就寝し、今朝は謎のテンションでクイズを進めていました。それで、なんとか第一段階としては完成といえると思うのですが、相変わらずGameOff関連は何もできておらず。試験の勉強しなければならないのに部屋の掃除が捗るような、そんな中学生の心境です。それで、第二段階として考えているのは、もともとクイズを作ることが目的ではなく、「クイズを作り出すファイル」を作るのが目的だったりするのです。いわゆるDSLです。

Continue Reading

開発日記 #12

今日はGameOffの言及をしておきながら、まずはこのブログに報告されていたセキュリティの不具合を修正しました。というのも、開発日記 #9で作った変換機能で以下のようなコードがあったためです。

Continue Reading

開発日記 #11

昨日はGameOffからフォークしたリポジトリを進めようと思ったのですが、何故かあまり捗りませんでした。どうも、webに関わる内容なら何時間でも書ける気がする反面、何か新しいことに挑戦しきれていない気がします。とはいえ、JavaScriptでゲームというのもwebに関わっていることには代わりないはずなのですが……。

Continue Reading

開発日記 #10

今日巷ではハロウィンでした。例えばGitHubでもグラフの色がハロウィン仕様になったり、この時期は世間で騒がれていることと関わらずに、何か小ネタのようなものを披露できたらと思い、また今年のハロウィンを過ごしてしまいました。いえ、厳密に言うとこの時期に向けて何かをするよりも、常に動いているせいか、今日も通常通りだったのが正しいです。

Continue Reading

開発日記 #9

昨日はしばらく眠っていたRaspberry Piを掘り出して、一日中インストールに費やしていました。その傍らでRailsも書いていたのですが、前回の「GhostからJSONを取り込む」機能に続いて、「既に登録してある投稿用のモデルを変換する」機能を追加しました。といっても、STIなのでデータベースのtypeを書き換えるだけです。フォームオブジェクトやリダイレクトが若干手こずりましたが、結果的には上手くいきました。片手間で進めていただけあって、特にもう書くことがなくなってしまいました。現状はビューのテストがほとんど手付かずなので、その辺りを直していこうと思っています。

Continue Reading

開発日記 #8

今日とある案件にて、某サイトの「フォーム入力支援スクリプト」なるものに取り組んでいたのですが、言い換えるとほぼXSSな感じで大丈夫なのかなーと思いつつ、ブラウザバーにjavascript:というプレフィックスを加えるとURLがJavaScriptとして実行されることを知ったそんな今日この頃。

Continue Reading

開発日記 #7

今日はついにGhostで編集していた投稿を、このサイトに引っ張ってくることに成功しました。また、いくつか投稿を見直していましたが、最初はエディターを作ると意気込んでいましたね。エディターを作るはずが、Railsの挙動を見直しているうちに、結局また遠のいてしまいました。エディター自体はやはり実用レベルにしようと思うと、結構な労力が必要です。しばらくはGhostで投稿して、投稿をインポートし、このサイトで編集して、それから公開というような形にしていく予定です。他のサイトもその形式でならやりやすいでしょうか。

Continue Reading

開発日記 #6

先週から引き続き今週も同じようにRailsの開発を進めていました。しかし、進めていてどうもおかしい部分があって、ソートしているのにソートできなかったり、WillPaginateのページ分割が1ページ目に全て表示され、2ページ目以降が空になってしまったりと、なかなか不可解な現象が発生してしまいました。

Continue Reading

開発日記 #5

現在Railsで構築しているサイトはこのサイトを含めてそれぞれ専用のテーブルがあって、それぞれが独立したサイトとして運用しています。とはいえ、まだPVはおろか、投稿そのものもほぼない状況なので、まだ本格的な運用とは程遠い状況ですけどね。

Continue Reading

開発日記 #3

三連休最終日。結局3日間Railsを書き続けていました。今日はずっと先延ばしにしていたデプロイをすべてのサイトでようやく完了させることができました。私自身にとって、非常に達成感にあふれる出来事だったのですが、残念ながら外向きにアピールできるほどのものはありません。強いて言うなら、こうしてブログに記録として残しているくらい。

Continue Reading

開発日記 #4

今日はRails以外のことをやろうと思ったのですが、ついつい手を出して気がついたらもう夜になってしまいました。今日はPaperclipを導入しようとしたのですが、このライブラリのデザインはすでにあるモデルに対してファイル名や種類などのカラムを追加します。

Continue Reading

開発日記 #2

Railsサーバーをデプロイし始めておよそ3ヶ月経過しました。ただ、当初計画していたほど開発を進められていません。夏は開発そっちのけで遊んでばかりいたので、最近はバリバリ開発の気力がみなぎっている気がします。そしてこの土日はRailsの開発に注力するついでに、このサイトをもう一度デプロイしなおすことにしました。

Continue Reading

開発日記 #1

またしてもブログの更新が滞ってしまいました。公開した当初は出来に満足していたはずなのに、次第に更新が遠のいてしまったのはログインするまでが長かったからなのかもしれません。Lingrは接続障害が起こっていた頃も使い続けていたので、使い勝手が変われば更新できるはず。そうして導き出した答えは、ずっと作ろうと思っていたエディタをもう一度作ってみたいという思いでした。

Continue Reading

ActiveSupportのアクセサたち

RailsではArrayに#secondというメソッドが定義されているので、例えば次のようなコードを書くことができます。

Continue Reading