tag:crieit.net,2005:https://crieit.net/tags/OSS/feed 「OSS」の記事 - Crieit Crieitでタグ「OSS」に投稿された最近の記事 2021-04-20T17:51:05+09:00 https://crieit.net/tags/OSS/feed tag:crieit.net,2005:PublicArticle/16863 2021-04-20T16:55:41+09:00 2021-04-20T17:51:05+09:00 https://crieit.net/posts/LINE-LINE LINE風LINEトーク履歴ビュアーを作った話 <p>LINEで「トーク履歴を送信」で取得できる味気ないトーク履歴をLINEのトーク画面風の見た目に変換するWebアプリケーションをだいぶ前に作りました。<br /> せっかくなのでどこかで披露したいと思いポストします。</p> <p>hidao80/LINEBackupViewer: LINE風LINEバックアップテキストデータビュアー - github.com<br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/hidao80/LINEBackupViewer">https://github.com/hidao80/LINEBackupViewer</a></p> <h2 id="てんまつ"><a href="#%E3%81%A6%E3%82%93%E3%81%BE%E3%81%A4">てんまつ</a></h2> <p>Qiitadonにて発生したつぶやきにリアクションがあったのが発端。</p> <p>curatiodon - キュレーショドン | Mastodonまとめwebアプリ<br /> <a target="_blank" rel="nofollow noopener" href="https://git.io/Jk196">https://git.io/Jk196</a></p> <h2 id="つかいかた"><a href="#%E3%81%A4%E3%81%8B%E3%81%84%E3%81%8B%E3%81%9F">つかいかた</a></h2> <p><a target="_blank" rel="nofollow noopener" href="http://hidao80.github.io/LINEBackupViewer/">http://hidao80.github.io/LINEBackupViewer/</a>にアクセスしてトーク履歴のテキストファイルをアップロードするとプレビューされます。<br /> 「ダウンロード」ボタンを押すとプレビューされた内容をそのまま単一のHTMLファイルにして保存することができます。</p> <p>また、アップロードされるのはご利用のブラウザまでで、サーバにトーク履歴が保存されることはありません。</p> <p><a href="https://crieit.now.sh/upload_images/32a700cc3edd68f7966b36d5be199c41607e88b2c7ab3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/32a700cc3edd68f7966b36d5be199c41607e88b2c7ab3.png?mw=700" alt="スクリーンショット" /></a></p> <p>※画面は開発中のものです</p> <p>今のところ1対1のトーク履歴しか再現できず、複数人トークのユーザ切り替えは宿題になっています…</p> hidao tag:crieit.net,2005:PublicArticle/15767 2020-03-14T23:37:05+09:00 2020-03-14T23:37:05+09:00 https://crieit.net/posts/free-creative-free-speech フリーソフトウェアの布教活動の動機;創作行為の大衆化と湾曲的自己表現による批評合戦の活性化 <p>仕事も大分落ち着いたので、大衆には無益有害だが、ごく個人としては心にとどめておきたい、<br /> 「私が生存するに当たっての目的」<br /> みたいなものをここに書き留めておく。</p> <h1 id="フリーソフトウェアはロマンがある"><a href="#%E3%83%95%E3%83%AA%E3%83%BC%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AF%E3%83%AD%E3%83%9E%E3%83%B3%E3%81%8C%E3%81%82%E3%82%8B">フリーソフトウェアはロマンがある</a></h1> <p>ここでいう <em>フリーソフトウェア</em> とは、ほぼ「オープンソースソフトウェア」と同意味ではあるものの、厳密には <strong>自由ソフトウェア</strong> の事を指している事には留意していただきたい。<br /> 「Free Beer」ではない。「Free Speech」である<a id="fnr.1" class="footref" href="#fn.1">1</a>。</p> <p>とはいえ、筆者は純粋な GNU/Linux を使っている訳でもなく、<a target="_blank" rel="nofollow noopener" href="https://ubuntu.com">Ubuntu</a> 上の<a target="_blank" rel="nofollow noopener" href="https://store.steampowered.com">Steam</a>で<a target="_blank" rel="nofollow noopener" href="https://undertale.jp">Undertale</a>を普通に遊んでいる Not Pure Free Software Fanatic なので、そんな肩ひじ張らずに読んでいただいて問題ない。</p> <h2 id="インターネットに繋がっていれば問題なく手に入る"><a href="#%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%AB%E7%B9%8B%E3%81%8C%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8C%E3%81%B0%E5%95%8F%E9%A1%8C%E3%81%AA%E3%81%8F%E6%89%8B%E3%81%AB%E5%85%A5%E3%82%8B">インターネットに繋がっていれば問題なく手に入る</a></h2> <p>今日、比較的田舎の町でも 4GLTE 回線であれば 20Mbps 程のデータのダウンロードは行える時代となった。なのでフリーソフトウェアに限らず、無償のソフトウェアは気軽に入手できると言っていいと思う。</p> <p>そのため、最悪キーボードのみ、できればマウスも、必要があればペンタブレットや MIDIキーボードがあれば、パソコンを利用して部屋を散らかさずに創作活動ができるものだと考えている。</p> <h2 id="知識があれば拡張もできる"><a href="#%E7%9F%A5%E8%AD%98%E3%81%8C%E3%81%82%E3%82%8C%E3%81%B0%E6%8B%A1%E5%BC%B5%E3%82%82%E3%81%A7%E3%81%8D%E3%82%8B">知識があれば拡張もできる</a></h2> <p>ソースコードの改変が許されるソフトウェアであれば、その利用者が機能拡張することだって許されるのである。</p> <p>これにより、ソフトのユーザーが独自に拡張を行って効率を飛躍させることもでき、さらにはその機能を共有すると助かる人が居ることもよくある話である。</p> <h2 id="フリーソフトウェアそのものが興味深く楽しい"><a href="#%E3%83%95%E3%83%AA%E3%83%BC%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%9D%E3%81%AE%E3%82%82%E3%81%AE%E3%81%8C%E8%88%88%E5%91%B3%E6%B7%B1%E3%81%8F%E6%A5%BD%E3%81%97%E3%81%84">フリーソフトウェアそのものが興味深く楽しい</a></h2> <p>フリーソフトウェアそのもの自体もとても興味深いものである。</p> <p>なぜかと言えば、そのフトウェアのソースコードは、コンピューターの扱い方のレシピブックでもあると捉えられるだろう。</p> <p>さらに言えば、そのソフトウェアを取り巻くコミュニティもまた興味深い。</p> <p>たまに悪意を持ってプログラムを改変する人もいるが、比較的善意や純粋な知的好奇心でそのプログラムを改変し、共有している人々もいる事実がある。</p> <h1 id="自由に創作できるという事"><a href="#%E8%87%AA%E7%94%B1%E3%81%AB%E5%89%B5%E4%BD%9C%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%A8%E3%81%84%E3%81%86%E4%BA%8B">自由に創作できるという事</a></h1> <p>良い時代になったものである。しかしそんな環境下に居るにも関わらず、創作活動をしない人が居るのも事実である。</p> <p>強制はしない。しかしもったいないと思ってしまうのが筆者の心情である。</p> <p>せっかく道具は(質は置いておく。各個人の肌感覚もあるし)気軽に入手できるのだから、やればいいのにとつい思う。</p> <p>ましてや共有できる環境も比較的増えたわけだし、感情や考えを分かち合う……というのも大げさなのではあるが、そういう事をしたいと思うのであれば、晒してみるのもまた一興、うるさいガヤの小言を聞きたくないなら、ベタなHTMLとCSSと少々のJavaScriptで構成したWebページを自分で作り、どこかにアップロードすると良いと思う。</p> <p>ましてや今日、Web上に転がっているコンテンツなら8割は収集しているであろうサーチエンジンや、どうしても一言申し上げたい輩が居るのならSNSにリンクを貼って共有したらいい話だと個人的には思う。</p> <p>とはいえ、いわゆる <em>神絵師</em> とかの作品を見ると、そりゃあ意欲もなくなるものである。<br /> 無くなるが、ずっとくすぶってばかり居て行動しないのが筆者である。</p> <h1 id="創作は思考の道具であり、伝達手段でもある"><a href="#%E5%89%B5%E4%BD%9C%E3%81%AF%E6%80%9D%E8%80%83%E3%81%AE%E9%81%93%E5%85%B7%E3%81%A7%E3%81%82%E3%82%8A%E3%80%81%E4%BC%9D%E9%81%94%E6%89%8B%E6%AE%B5%E3%81%A7%E3%82%82%E3%81%82%E3%82%8B">創作は思考の道具であり、伝達手段でもある</a></h1> <p>この章のタイトルの元ネタは、<a target="_blank" rel="nofollow noopener" href="https://www.shunjusha.co.jp/book/9784393333631.html">川崎昌平氏の「労働者のための漫画の描き方教室」</a> の50ページの、</p> <blockquote> <p>表現とは思考のための道具である</p> </blockquote> <p>その一文ほぼそのままである。</p> <p>後は気が向いた時に度々読む、<a target="_blank" rel="nofollow noopener" href="https://cruel.org/freeware/hacker.html">Eric S.Laymond 氏の「ハッカーになろう」</a> だろうか。</p> <blockquote> <ul> <li>母語できちんと文が書けるようになること(わたしが知っている最高の連中を含め、ハッカーの驚くほど多くは物書きとしても有能です)。</li> <li>SF を読むこと。SF 大会に参加すること(ハッカーやハッカーの卵たちに出会ういい方法です)。</li> </ul> </blockquote> <p>ハッカーになろうを引用はしたが、私はハッカーではない。いいとこコーダーである。</p> <p>また、もっと「まんがそのものの描き方」に関しては、ありがたいことに<br /> <a target="_blank" rel="nofollow noopener" href="https://comic-walker.com/contents/detail/KDCW_KS02000054010000_68/">KADOKAWAのComic Walkerで「まんがでわかるまんがの描き方」</a><br /> という漫画が公開されているので、これの10話くらいを読むと書ける気分になれる。</p> <p>「まんがでわかるまんがの描き方」では、まず <strong>字コンテ</strong> の書き方から解説しているの<br /> で、個人的にはかなり良いと感じた。</p> <p>さらに、「物語そのものの書き方」というところであれば、<br /> <a target="_blank" rel="nofollow noopener" href="https://readingmonkey.blog.fc2.com/blog-category-10.html">読書猿氏のブログの創作の道具箱</a><br /> を眺めてみると良いだろう。</p> <p>これらの資料を並べた理由としては、マンガに限らず物語は「説明できてなんぼ」のものであり、また物語のテーマ、テーゼ、アンチテーゼ的なものがある程度持っているものであれば、そのテーマやテーゼそのものについて直接語るより物語にした方が、読み手は案外物語の著者自身に対しての反感を比較的抱かずに著者の訴えたい主張を聞き入れ易いと思っている。</p> <p>また、小説やマンガだと比較的書き手自身が考えをまとめながら描くことがしやすい。いや、筆者がそこまでものを考えて時たま創作活動しているかというとそうでもないし、ましてや熟練した個人のアニメーターやゲーム作家なら、絵コンテやゲームデザインしている時点でまとめているとは思うが。</p> <p>最後にあえてマンガを薦める理由としては「労働者のための漫画の描き方教室」にも書かれていると記憶しているが、やはり絵図の方が肩肘張らずに読みやすい。もっとも、これは今日までのマンガという表現媒体に対する印象が、比較的「幼稚」と取られている節もあるため、もしかすると数十年後には書籍のマンガを読むことさえ知的な行為になるかもしれないし、マンガの読み方が分からないという青少年もいるとかいないとか噂に聞いた<br /> りする。</p> <p>と書くと、「オブラートに包みつつも主張をしっかり使える媒体」としては動画や演劇になるのかもしれないが、今の筆者には動画を描く労力が途方に思えるので、とりあえずマンガ。</p> <p><a target="_blank" rel="nofollow noopener" href="https://www.blender.org">Blender</a> や<a target="_blank" rel="nofollow noopener" href="https://unity.com">Unity</a> や<a target="_blank" rel="nofollow noopener" href="https://www.unrealengine.com">Unreal Engine</a>,<a target="_blank" rel="nofollow noopener" href="https://godotengine.org">Godot Engine</a> でも <a target="_blank" rel="nofollow noopener" href="https://armory3d.org">Armory Engine</a> でも<a target="_blank" rel="nofollow noopener" href="https://upbge.org">UPBGE</a> でも、<a target="_blank" rel="nofollow noopener" href="https://www.synfig.org">Synfig Studio</a> や<a target="_blank" rel="nofollow noopener" href="https://opentoonz.github.io/">OpenToonz</a><br /> でも何でも良いが、それらの使い方を一つでも熟知している方なら、筆者のこんな御託に付き合っている暇もなく、とっくに動画やゲームの制作に取り掛かっているだろうけど。</p> <h1 id="雇われプログラマ・ソフトウェアエンジニアよ、"><a href="#%E9%9B%87%E3%82%8F%E3%82%8C%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BB%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%82%88%E3%80%81">雇われプログラマ・ソフトウェアエンジニアよ、</a></h1> <p>ここまで長ったらしく書いたが、筆者が述べたいことは以下。</p> <h2 id="妄想してくれ"><a href="#%E5%A6%84%E6%83%B3%E3%81%97%E3%81%A6%E3%81%8F%E3%82%8C">妄想してくれ</a></h2> <p>病気による妄想ではなく。楽観的で漠然とした希望を妄想すると、割と幸せだと筆者は思<br /> う。</p> <h2 id="筆を握ってくれ"><a href="#%E7%AD%86%E3%82%92%E6%8F%A1%E3%81%A3%E3%81%A6%E3%81%8F%E3%82%8C">筆を握ってくれ</a></h2> <p>そこでせっかくなのでその妄想を共有していただきたく、筆を握っていただきたい。<br /> できるならばそういう希望を抱くまでの過程になるような物語を添えて。</p> <hr /> <p>そして書いた(描いた)ものを共有するかしないかは任せる。でも共有していただいたほうが、筆者限らず、誰かの考え方の幅が広がるきっかけになると思う。</p> <p>とはいえ、肌感覚や感性の違いという「解せん」という感情が発生することもままあると思うので、そのときは「解せん」で片付けてしまって良い。筆者も「口では大層な事を宣いているが、自身は全くそれに準じて行動していない」やつに対しては、「解せん」で絶交したし。</p> <p>以上が「論文・弁論に限らない自己主張の提案」という弁論である。</p> <h1 id="オチ"><a href="#%E3%82%AA%E3%83%81">オチ</a></h1> <p>と戯けてみたものの、私は特別これと言えた作品は何も出さずに、人間年齢 30 歳になるので、筆者を反面教師として蔑み、この文章を読んだ方には創作活動に励んでいただきたい。御託を並べるのが大好きな下等知的生命体なもので。</p> <h1 id="参考資料・影響を受けた資料"><a href="#%E5%8F%82%E8%80%83%E8%B3%87%E6%96%99%E3%83%BB%E5%BD%B1%E9%9F%BF%E3%82%92%E5%8F%97%E3%81%91%E3%81%9F%E8%B3%87%E6%96%99">参考資料・影響を受けた資料</a></h1> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://www.shunjusha.co.jp/book/9784393333631.html">川崎昌平「労働者のための漫画の描き方教室」</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://cruel.org/freeware/hacker.html">ハッカーになろう(How to Became A Hacker)</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://comic-walker.com/contents/detail/KDCW_KS02000054010000_68/">まんがでわかるまんがの描き方 - KADOKAWA</a></li> </ul> <h1 id="脚注"><a href="#%E8%84%9A%E6%B3%A8">脚注</a></h1> <p><a id="fn.1" href="#fnr.1">1</a> <a target="_blank" rel="nofollow noopener" href="https://www.gnu.org/philosophy/free-sw.html">自由ソフトウェアとは? - gnu.org</a></p> まんじゅ(´ん`) tag:crieit.net,2005:PublicArticle/15130 2019-06-19T23:27:01+09:00 2019-06-19T23:30:43+09:00 https://crieit.net/posts/208f56095ca8e483481917ef0354ccf9 【禅Do】利用しているライブラリについて <h2 id="導入したライブラリについて"><a href="#%E5%B0%8E%E5%85%A5%E3%81%97%E3%81%9F%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6">導入したライブラリについて</a></h2> <p>とりあえず当時、Carthageの情報が結構出ていて使いやすそうだったので<br /> 基本的にCarthageを利用してインストールする方針でやっていた。<br /> その中で対応していないものはCocoaPodsを利用するか、直接ソースを入れる形にした。</p> <h3 id="Carthageで入れたもの"><a href="#Carthage%E3%81%A7%E5%85%A5%E3%82%8C%E3%81%9F%E3%82%82%E3%81%AE">Carthageで入れたもの</a></h3> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://github.com/malcommac/SwiftDate">SwiftDate</a> <ul> <li>リマインド機能の日付操作の為に導入</li> </ul></li> <li><a target="_blank" rel="nofollow noopener" href="https://github.com/DeclarativeHub/Bond">Bond</a> <ul> <li>リアクティブプログラミング的なものを使ってみたかった為</li> <li>全体設計の見通しの良さ向上の為など</li> </ul></li> <li><a target="_blank" rel="nofollow noopener" href="https://github.com/xmartlabs/Eureka">Eureka</a> <ul> <li>設定画面でリスト型テーブルやForm作成を簡単にするための導入</li> </ul></li> <li><a target="_blank" rel="nofollow noopener" href="https://github.com/delba/Log">Log</a> <ul> <li>開発用途。デバッグのしやすさ向上の為</li> </ul></li> <li><a target="_blank" rel="nofollow noopener" href="https://github.com/Quick/Quick">Quick</a> <ul> <li>開発用途。テストコードを書く為(なおちゃんとテストコード書いてない模様)</li> </ul></li> <li><a target="_blank" rel="nofollow noopener" href="https://github.com/Quick/Nimble">Nimble</a> <ul> <li>開発用途。テストコードを書く為(なおちゃんとテストコード書いてない模様)</li> </ul></li> </ul> <h3 id="CocoaPodsで入れたもの"><a href="#CocoaPods%E3%81%A7%E5%85%A5%E3%82%8C%E3%81%9F%E3%82%82%E3%81%AE">CocoaPodsで入れたもの</a></h3> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://github.com/firebase/firebase-ios-sdk">firebase-ios-sdk</a> <ul> <li>(今もかもだけど)当時モバイルのアナリティクスとしてイケてる感じだった為導入</li> <li>ユーザ動向を知るため</li> </ul></li> </ul> <h3 id="直接入れたもの"><a href="#%E7%9B%B4%E6%8E%A5%E5%85%A5%E3%82%8C%E3%81%9F%E3%82%82%E3%81%AE">直接入れたもの</a></h3> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://github.com/thii/FontAwesome.swift">FontAwesome</a> <ul> <li>各種アイコンに利用</li> </ul></li> <li><a target="_blank" rel="nofollow noopener" href="https://github.com/DylanVann/DatePickerCell">DatePickerCell</a> <ul> <li>設定画面でのCell操作の為に導入</li> </ul></li> </ul> <h2 id="導入ライブラリのアップデート"><a href="#%E5%B0%8E%E5%85%A5%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88">導入ライブラリのアップデート</a></h2> <p>とりあえず当然ビルドが通らなくなってため、各ライブラリの最新版を利用するように<br /> Cartfileを書き換えてアップデートしてみた。<br /> ただそもそも、Carthageの使い方を忘れていたので、思い出すために下記記事などを参考にした。</p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/s-harada/items/47295d653ef0cf34d540">Carthage について</a><br /> <a target="_blank" rel="nofollow noopener" href="https://www.raywenderlich.com/416-carthage-tutorial-getting-started">Carthage Tutorial: Getting Started</a></p> <p>さらに元々、Carthageディレクトリ以下のBuild/Checkoutsもgit管理下においていたが、<br /> ライブラリアップデートを何回も試してる時に、いちいち削除が面倒になったのと<br /> 下記の記事を読んだので、git管理化から外すことにした。</p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/mono0926/items/636819c42e96a8c4e12d">CocoaPods・Carthageでインストールした成果物はバージョン管理に含めるべきか?</a></p> <h3 id="アップデート方法"><a href="#%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E6%96%B9%E6%B3%95">アップデート方法</a></h3> <p>利用しているライブラリのうちほとんどは、Swift3へのアップデート対応等がされていたが<br /> Logライブラリだけはメンテが止まっていたので、forkして対応することにした。<br /> (代替のものを探したが方が良いが、とりあえずビルドを通すのが第一目標なのでそのまま利用)</p> <p>直接ソースを入れるタイプのものも、Carthage対応されるようになっていたので<br /> Carthageを利用してインストールする方式に変更した。</p> <p>メンテナンスされているライブラリはバージョン指定を外して<br /> 最新版をインストールするようにした。</p> <p>下記はSwiftのバージョンを3にして <code>carthage update --platform iOS</code> が<br /> 問題なく実行できるようになった時点でのCartfile。</p> <pre><code># Use libraries github "malcommac/SwiftDate" github "SwiftBond/Bond" github "xmartlabs/Eureka" github "Quick/Quick" github "Quick/Nimble" github "thii/FontAwesome.swift" github "DylanVann/DatePickerCell" ~> 1.0 # Own repos. github "stlwolf/Log" </code></pre> <h3 id="備考"><a href="#%E5%82%99%E8%80%83">備考</a></h3> <ul> <li>carthageでのインストールが成功するところまで行き、Xcode上でライブラリを<br /> 利用しているコードでErrorになってる箇所を修正することができる状態にはなった。</li> <li>Bondライブラリがアプリに入れた時期から大きな変更が入っているので、利用方法を含めて<br /> 再度使い方を調べないと最新版のコードを利用できそうにないことが判明。(ReactiveKitに組み込まれてる?)<br /> 公式Docと下記あたりを参考に別途キャッチアップする。<br /> <a target="_blank" rel="nofollow noopener" href="https://www.raywenderlich.com/667-bond-tutorial-bindings-in-swift">Bond Tutorial: Bindings in Swift | raywenderlich.com</a><br /> <a target="_blank" rel="nofollow noopener" href="http://grandbig.github.io/blog/2017/07/31/swiftbond-1/">Bond, SwiftBondを使ってみよう! - Takahiro Octopress Blog</a></li> </ul> stlwolf tag:crieit.net,2005:PublicArticle/14517 2018-08-25T22:49:40+09:00 2018-10-29T11:23:13+09:00 https://crieit.net/posts/Docker-dev-to Dockerでdev.toのローカル環境構築を試した(途中止め) <p>先日dev.toがGitHubに公開され、オープンソース化されました。ローカル環境の構築方法も公開されていたため、実際に試してみました。あまりPCを汚したくないので今回はdocker-composeを利用して、Dockerで環境を構築してみました。</p> <h2 id="設定"><a href="#%E8%A8%AD%E5%AE%9A">設定</a></h2> <h3 id="docker-compose.yml"><a href="#docker-compose.yml">docker-compose.yml</a></h3> <ul> <li>gemとDBのデータはvolumeに保存して永続化</li> <li>DockerHubにあったyarnが入っているrubyの適当なDockerイメージを使った</li> <li>Algolia関連の環境変数は適当に入れておく</li> </ul> <pre><code class="yaml">version: '2' volumes: bundle: driver: local db_data: driver: local services: db: image: postgres volumes: - db_data:/var/lib/postgresql/data expose: - 5432 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres app: image: electrotumbao/ruby-yarn:2.5.1 volumes: - bundle:/usr/local/bundle - .:/app working_dir: /app ports: - 3000:3000 depends_on: - db environment: RAILS_ENV: development GITHUB_KEY: aaaa GITHUB_SECRET: bbbb ALGOLIASEARCH_APPLICATION_ID: 1111 ALGOLIASEARCH_SEARCH_ONLY_KEY: awefawf ALGOLIASEARCH_API_KEY: awefawfe tty: true stdin_open: true </code></pre> <h3 id="database.yml"><a href="#database.yml">database.yml</a></h3> <p>うまいやり方があるのかちょっと分からなかったので、とりあえず直接書き換えておきます。セットアップ時にtestもマイグレーションしているっぽいのでtestも同様の設定をしておく必要があります。</p> <pre><code>host: db username: postgres password: postgres </code></pre> <h2 id="手順"><a href="#%E6%89%8B%E9%A0%86">手順</a></h2> <h3 id="Dockerコンテナを起動"><a href="#Docker%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%82%92%E8%B5%B7%E5%8B%95">Dockerコンテナを起動</a></h3> <p>docker-composeしてDockerコンテナを起動し、中に入ります。</p> <pre><code class="sh">docker-compose up -d docker-compose exec app bash </code></pre> <h3 id="色々インストール"><a href="#%E8%89%B2%E3%80%85%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">色々インストール</a></h3> <pre><code class="sh">gem install bundler gem install foreman bundle install bin/yarn bin/setup </code></pre> <p>Algoliaは有料なので、設定に適当な値を入れているのですが、<code>bin/setup</code>の際のSeedの実行でエラーになるっぽいです。ただ、マイグレーションは完了するっぽいので、無視しています。</p> <h2 id="起動"><a href="#%E8%B5%B7%E5%8B%95">起動</a></h2> <p>とりあえずここまでで一応最低限の設定は一通り行っていると思いますので、試しに起動してみます。専用の起動スクリプトがあるようなのでそれを使います。</p> <pre><code class="sh">bin/startup </code></pre> <p>動いたっぽいので<code>localhost:3000</code>にアクセスしてみます。</p> <p><a href="https://crieit.now.sh/upload_images/7a7d50be68a8eb69c831c96d6775355a5b815ce0ec5d2.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7a7d50be68a8eb69c831c96d6775355a5b815ce0ec5d2.png?mw=700" alt="You are not connected to the Internet.png" /></a></p> <p>なんか変な画面が出てきました。</p> <blockquote> <p>良いニュースと悪いニュースがあるんだ。悪いニュースはあんたがオフラインってことさ。いいニュースはここでは絵を書けるんだぜ</p> </blockquote> <p>というよく分からないメッセージが出てきます。原因はよく分からないのですが、どうもserviceworkerあたりが関係あるかも知れません。</p> <p>仕方がないので、とりあえずはrailsのサーバーで起動してみます。</p> <pre><code class="sh">bin/rails s </code></pre> <p><a href="https://crieit.now.sh/upload_images/2ce6dc072405904fa7fca453cc7f7c085b815c70a1e5a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2ce6dc072405904fa7fca453cc7f7c085b815c70a1e5a.png?mw=700" alt="ダウンロード.png" /></a></p> <p>初回は表示までに時間がかかる(?)ようですが一応dev.toっぽい画面が表示されるっぽいです。</p> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>とりあえずなんとなくdev.toの画面が表示されるところまで試してみました。是非色々な方法でローカル環境を構築してdev.toのcontributeまで試してみてください!</p> だら@Crieit開発者