tag:crieit.net,2005:https://crieit.net/tags/%E6%97%A5%E8%A8%98/feed 「日記」の記事 - Crieit Crieitでタグ「日記」に投稿された最近の記事 2019-09-17T01:04:26+09:00 https://crieit.net/tags/%E6%97%A5%E8%A8%98/feed tag:crieit.net,2005:PublicArticle/15401 2019-09-17T01:00:01+09:00 2019-09-17T01:04:26+09:00 https://crieit.net/posts/2019-5d7fb18157f4f 初めて学生インターンを受け入れて感じたこと 2019夏 <h2 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h2> <p>先月、初めて学生インターンを受け入れた。会社としては随分前から受け入れていたのだけど、うちのチームでは初めてだった。今年は縁に恵まれて受け入れることになったのだけど、自身にとって初めてだったということもあり、気づきや反省をここに残しておこうと思う。</p> <h2 id="背景"><a href="#%E8%83%8C%E6%99%AF">背景</a></h2> <p>うちのチームの特徴は以下の通り。</p> <ul> <li>会社はいわゆるWeb系の会社</li> <li>筆者のチームはインフラサービスのためのソフトウェア開発をしている</li> <li>筆者のチームは福岡が拠点だが、東京のチームと協働してサービス開発をしている</li> <li>技術スタックはソフトウェアにPythonを、サービスのインフラにはKubernetesを使っている</li> <li>日本人は筆者だけで他のメンバーは外国籍で、コミュニケーションには英語を使っている</li> </ul> <h2 id="インターン生にしてもらったこと"><a href="#%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%B3%E7%94%9F%E3%81%AB%E3%81%97%E3%81%A6%E3%82%82%E3%82%89%E3%81%A3%E3%81%9F%E3%81%93%E3%81%A8">インターン生にしてもらったこと</a></h2> <p>簡単に言うと、Chaos engineeringをしてもらった。Chaos engineeringについては以下のQiitaの記事がエントリーポイントとして良さそう。</p> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://qiita.com/naokiiiii/items/de20997a70922c01f754">カオスエンジニアリングと聞いてカオスになった人必見</a></li> </ul> <p>早い話が「システムに対して、有り得そうな障害を意図的に起こして問題をあぶり出し対策を考える」手法と言える。細かいというか、正確に言うと、多少違うのだけど、実際的な視点で言えば、それほど的外れではないだろう。</p> <p>で、なぜインターン生にChaos engineeringをしてもらったかというと、以下の考えに基づいている。</p> <ol> <li>Chaos engieering(に限った話ではないけど)ではいわゆる"PDCA"サイクルを回しやすく、成果や進捗が把握しやすい</li> <li>チームとしてChaos engieeringに興味を持っていたが、誰も手を付けることができていなかった</li> <li>これまでに障害対策のための実装を行ってきたが、それらが本当に機能しているかどうかを確信できていなかった</li> </ol> <p>なお、今回はテスト環境での実施となったので、本格的なChaos engineeringとは違うが、利用したソフトウェアや手法は一般的なChaos engineeringと同じものを採用した。</p> <h2 id="狙い"><a href="#%E7%8B%99%E3%81%84">狙い</a></h2> <p>まず#1 <code>Chaos engieering(に限った話ではないけど)ではいわゆる"PDCA"サイクルを回しやすく、成果や進捗が把握しやすい</code> について。Chaos engieeringを行うにあたって、対象システムをある程度把握してもらってから、どこが問題になりそうかという仮説を立てて、どのように障害を起こすかということまでを最初に考えてもらった。これはChaos engieeringを行うにあたっては非常に重要だ。というのも、Chaos engieeringは意図的にシステムを不調にさせるため、何を行うかをチームでレビューして事前に作業内容を周知する必要がある。その後、作業をしてもらって、またレポートを書いてもらい、結果をチームでレビューした。これにより、自然とPDCAサイクルが出来上がってインターン生の状況が把握しやすくなった。また、副次的な効果として、技術文書の書き方の勉強をしたり、チームメンバーとの関わりを自然に増やすことが出来たと思う。</p> <p>2つ目 <code>チームとしてChaos engieeringに興味を持っていたが、誰も手を付けることができていなかった</code> は割と重要だと思っていて、チームの誰もChaos engineeringを経験していないのでインターン生がチームでの第一人者となる。よって、周りからマサカリが飛んでくる危険を可能な限り減らして、失敗を恐れずに取り組むための環境を用意できたと思う(希望的な推測)。たとえ失敗したとしても、未経験のチームメンバーにとって全ての結果が貴重な知見となる点も重要だ。</p> <p>3つ目<code>これまでに障害対策のための実装を行ってきたが、それらが本当に機能しているかどうかを確信できていなかった</code>はインターン生のためというか、プロダクトのためなんだけど、これまでに障害で発生した問題を解決するために色々な修正や機能開発を行ってきた。しかし、同じ問題には対応できているが、同じ"ような"問題に対応できているかどうか、ということまでは確認できていなかった。類似の状況でも、特にエッジケースで、問題なく動作するかという確信が持てるかどうかはインフラレイヤーのアプリケーションでは非常に重要で、Chaos engineeringが良い機会になるだろうと思っていた。</p> <p>これらの狙いは(筆者の視点では)概ね成功したと思う。結果的に、大きな問題は顕在しなかったが、それはチームメンバーに自信を、プロダクトには信頼をもたらすことになった。</p> <h2 id="その他に気を使ったこと"><a href="#%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AB%E6%B0%97%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%81%93%E3%81%A8">その他に気を使ったこと</a></h2> <ul> <li>週単位で取り組みや成果物を決めて共有した <ul> <li>途中で何をして良いのかわからなくのを防ぐため</li> </ul></li> <li>途中経過や成果を発表する機会を設けた <ul> <li>成果物を発表する機会を設けることで、成果物の品質にも気を使ってもらうようにした</li> </ul></li> <li>チームメンバー以外の社員と交流する機会を設けるようにした <ul> <li>会社の雰囲気を知ってもらうために、チームメンバー以外とコミュニケーションをしてもらった</li> </ul></li> </ul> <h2 id="反省点"><a href="#%E5%8F%8D%E7%9C%81%E7%82%B9">反省点</a></h2> <ul> <li>筆者がメンター役だったが、インターンの後半では放置気味になってしまった。 <ul> <li>筆者が色々あって多忙になってしまったが、もっと気を使うべきだった。</li> <li>筆者が成果物の完成度を上げるために出来ることは色々あったが、あまり貢献することが出来なかった</li> </ul></li> <li>もっと早くチームメンバーとのコミュニケーションの機会を持てるようにするべきだった。 <ul> <li>筆者以外のチームメンバーが英語話者であったため、意図的に筆者とのコミュニケーションを多めにしていたが、いくつかの事柄に対して筆者が上手く回答できず、チームメンバーに頼ることがあった。</li> <li>これが結果としてインターン生の進捗を妨げる要因の1つになっていた。</li> <li>インターン生のコミュニケーション能力を信じて早くからチームメンバーと直接コミュニケーションできるようにするべきだった。</li> </ul></li> <li>筆者も含めてChaos engieeringは(知ってはいたが)未経験だったために適切なフォローができなかった <ul> <li>今にして思えば、手当り次第にやってみるのではなく、ある程度こちらで想定される問題や事象を整理するなどして、道筋をつけてからやってもらえば良かった</li> </ul></li> </ul> <h2 id="次回に活かせそうなこと"><a href="#%E6%AC%A1%E5%9B%9E%E3%81%AB%E6%B4%BB%E3%81%8B%E3%81%9B%E3%81%9D%E3%81%86%E3%81%AA%E3%81%93%E3%81%A8">次回に活かせそうなこと</a></h2> <ul> <li>メンター役は業務上のメンター役と業務外のこと(社内の制度や社内でのコミュニケーションなど)を担当するメンター役などを分けたほうが良いかもしれない <ul> <li>メンターが1人だと業務の遂行に目が行きがちで、慣れない社内での過ごし方や社内手続きなどに関して疎かになりがち</li> <li>メンター役の負荷を分散するため</li> </ul></li> <li>任せる業務はある程度メンター役の社員が精通しているもののほうが良い <ul> <li>インターン生が詰まったときに的確にアドバイス出来るようにするため。</li> <li>とはいえ、Backlogとかをさせてもつまらないので業務の選定は熟慮しなければならない</li> </ul></li> <li>R&D的な業務にしたのは良かった。もし次回があるなら、お題を与えてProof Of Concept的なものをやってもらっても良いかもしれない。 <ul> <li>インターン生には挑戦的な業務をしてもらうのが良いと思う。インターンが会社のPRの一環だと捉えると、挑戦的な業務を行えるということは会社の良い面をアピールすることにもなるからだ。</li> <li>たとえ失敗したとしても、チームはその失敗から得た教訓を活かすことができるし、インターン生は趣味の範囲では経験できないような失敗をするという経験を得ることができる。</li> <li>余談だけど、許容される範囲で失敗をするというのは学習においてとても重要だ。なぜなら、成功した理由というものは説明が難しいことが多く、かならずしもパターン化できない。しかし、失敗した理由を説明することは(簡単ではないが)可能であり、理由がわかればパターン化できるからだ。よって、失敗したほうが成長機会に結びつけやすい。</li> </ul></li> </ul> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>インターンを受け入れたことで、より多くの学びを得ることができた。また、これまで手つかずだったChaos engineeringを導入するきっかけにもなったし、インターン生だけでなくチームにとっても実りのあるものに出来たと思う。とはいえ、まだまだ反省点は多いので、次回はちゃんと態勢を整えて、より良いインターンを提供できるようにしなければならない。</p> <p>おしまい。</p> shige tag:crieit.net,2005:PublicArticle/14673 2018-12-18T00:03:29+09:00 2018-12-28T19:15:32+09:00 https://crieit.net/posts/ea250a7a9a973687d32b329eebbc8132 長期化する個人サービス開発でモチベーションを維持する方法 〜unityroomができるまで〜 <p>こちらは<a href="https://crieit.net/">Crieit</a>で開催されている「<a href="https://crieit.net/advent-calendars/2018/crieit">アドベントカレンダー</a>」18日目の記事です。<br /> 何書いてもいいそうなんでちょっとポエミーな記事かきます。</p> <p>昨日は<a href="https://crieit.net/users/33hata33">Hata</a>さんの<a href="https://crieit.net/posts/40">今年スマホアプリを作ってプログラマーになった40代女性の話。</a>でした。<br /> ちょっと感動しました。何を始めるにも遅すぎるなんてことはないですね。</p> <h3 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h3> <p>まずはこちらの記事をご覧ください。<br /> 個人でサービスを作りきるために必要なことが分かりやすくまとめられています。とても有益〜。</p> <p><a target="_blank" rel="nofollow noopener" href="https://blog.nabettu.com/entry/single-develop" target="_blank" rel="noopener">個人開発のモチベーションが続かない、作り終わらない。原因と対策を考えてみた。 - フロントエンドの地獄</a></p> <p>さて、そこに書かれているような「小さめ」「短期間」「未経験技術は使わない」といったコツを思いっきり無視したらどうなるでしょうか?</p> <p>今振り返ると笑い話ですが、私の作ったゲーム投稿サイト「<a target="_blank" rel="nofollow noopener" href="https://unityroom.com">unityroom</a>」の開発がまさにそういうアンチパターンの塊でした。</p> <p>思い立ってから初期リリースまで1年半もかかりました。<br /> なぜそんなにかかったのか、どうやってモチベーションを維持したのか、そのあたりを思い出しながら書いてみたいと思います。</p> <blockquote> <p>今日の記事は初期リリースまでの思い出話です。初期リリースから2年経過した現在の構成について興味があれば下記記事もどうぞ。<br /> <a target="_blank" rel="nofollow noopener" href="https://blog.naichilab.com/entry/tech-of-unityroom" target="_blank" rel="noopener">ゲーム投稿サイト「unityroom」に使われている技術 - naichi&#39;s lab</a></p> </blockquote> <h3 id="実際どれくらいかかったのか"><a href="#%E5%AE%9F%E9%9A%9B%E3%81%A9%E3%82%8C%E3%81%8F%E3%82%89%E3%81%84%E3%81%8B%E3%81%8B%E3%81%A3%E3%81%9F%E3%81%AE%E3%81%8B">実際どれくらいかかったのか</a></h3> <p>リポジトリや過去ブログを漁ってみました。</p> <ul> <li>2014年 <ul> <li>12月 Rails Tutorial開始した(Railsの勉強)</li> </ul></li> <li>2015年 <ul> <li>4月 ConoHa VPSにChefでRails環境構築を自動化した(サーバー構築自動化の勉強)</li> <li>6月 ConoHa ObjectStorageを使う方法調べる(ファイルアップロード方法の模索)</li> <li>8月 テスト認定技術者試験(JTSQB)合格(テスト手法に興味を持ち勉強)</li> <li>10月 SASS(CSS)ちょっと学んだ(Webデザインも覚えたくて勉強)</li> <li>11月 ActionMailerと格闘する(このころがたぶんRailsTutorial3周目)</li> <li>12月 Capistrano3でデプロイを自動化した(デプロイ自動化の練習)</li> </ul></li> <li>2016年 <ul> <li>1月 本格的にunityroomのプロダクトコードを書き始める(やっと開発)</li> <li>2月 RSpec勉強しながらテストコード書く(開発)</li> <li>4月 最低限の機能完成(開発)</li> <li>4月末 一般公開!</li> </ul></li> </ul> <p>日付が分かるものだけを書き出してみたらこんな感じでした。</p> <p>全部で16ヶ月も...かかっている...</p> <p>前半1年は勉強しかしてないし本腰入れたのはラスト4ヶ月みたいですね。</p> <h3 id="どうしてこんなことになってしまったのか..."><a href="#%E3%81%A9%E3%81%86%E3%81%97%E3%81%A6%E3%81%93%E3%82%93%E3%81%AA%E3%81%93%E3%81%A8%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%A3%E3%81%9F%E3%81%AE%E3%81%8B...">どうしてこんなことになってしまったのか...</a></h3> <h4 id="やりたいことが多過ぎた!"><a href="#%E3%82%84%E3%82%8A%E3%81%9F%E3%81%84%E3%81%93%E3%81%A8%E3%81%8C%E5%A4%9A%E9%81%8E%E3%81%8E%E3%81%9F%EF%BC%81">やりたいことが多過ぎた!</a></h4> <p><a target="_blank" rel="nofollow noopener" href="https://blog.naichilab.com/entry/tech-of-unityroom">こちらの技術説明記事</a>にも書いたんですが、unityroomを作る前に似たようなサイトを運用していました。<br /> (アップロードするファイル形式が違うだけで、どちらも同じゲーム投稿サイトです)</p> <p>前身となるサイトがあったからこそ、ああしたい・こうしたいという夢が広がっていました。</p> <p>イケてるデザイン、超使いやすいアップローダ、ユーザー間の交流もしたい。<br /> ランキングもつけたいしスマホでも遊びたい、とか。</p> <p>運用面でも、FTPで更新するのもう嫌だからデプロイ自動化しよう。<br /> 開発者としてテストとか書けるようになりたいなやってみよう。とか出てくる出てくる。</p> <p>ここまで盛り込むとどう考えてもWeb開発初心者(PHPちょっとやっただけ、Rails未経験、CSSわからん)が1ヶ月で作れるボリュームではありません。</p> <p>まぁ初心者が作りたいって思ったらボリュームなんて気にしないですよねw</p> <h4 id="Rails舐めてた!"><a href="#Rails%E8%88%90%E3%82%81%E3%81%A6%E3%81%9F%EF%BC%81">Rails舐めてた!</a></h4> <p>Rails楽しそう!で勉強を始めましたが正直なめてました。<br /> Railsチュートリアル3周、入門書を2冊、Progateもやって、ブログ記事読み漁って...それぐらいしてやっと馴染んでくるレベル。</p> <p>Rubyいれるために <code>rbenv</code> ってのが出てきて、Rails入れるために <code>bundler</code> が出てきて、Rails自体にも <code>bundle exec rails xxx</code> とかってコマンドが無数にあります。</p> <p>さらにPHPと違って共用サーバーじゃ動かないからVPSが必要で、VPSはOSから入れないといけないからLinuxも勉強して、デプロイするために各種ツールが必要で...。(この辺りは後に全部捨ててHerokuに載せ換えることとなります)</p> <p>下記記事をみてもらうと分かるんですが、Railsにはとてもたくさんの技術・知識が使われています。</p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/jnchito/items/063e332cbe3023f52f93" target="_blank" rel="noopener">あなたがマスターしたのはいくつ? Railsを習得するために必要な技術要素の一覧 #Rails - Qiita</a></p> <p>ほんとRails恐ろしい子!</p> <p>無計画にRailsをやり始め、「これ何だろう?」って立ち止まるたびにググっては横道にそれ、面白いと感じたら本を読む。<br /> それを繰り返していった結果、非常に多くの時間を費やしてしまいました。</p> <p>当然ですが、<code>Railsを使う</code> ために全て理解・習得する必要はないです。</p> <p>行き詰まってもググれば先駆者の記事が見つかりますし、コピペでもどうにかなることがほとんどです。</p> <p>私の場合は技術習得に比重を置いたため、学ぶ分野が増えてしまいました。</p> <h4 id="未経験技術に触れ過ぎた!"><a href="#%E6%9C%AA%E7%B5%8C%E9%A8%93%E6%8A%80%E8%A1%93%E3%81%AB%E8%A7%A6%E3%82%8C%E9%81%8E%E3%81%8E%E3%81%9F%EF%BC%81">未経験技術に触れ過ぎた!</a></h4> <p>Railsでアプリをリリースするだけであれば、CI/CD(自動テストや自動デプロイ等)まで手を出す必要はなかったのですが楽しそうなので寄り道してしまいました。</p> <p>開発中に触れた未経験な技術を並べてみます。(現在使ってないものも含む)</p> <ul> <li>Ruby / rbenv / bundler</li> <li>Rails / rake / unicorn / puma / gem各種</li> <li>Sass(CSS)</li> <li>RSpec</li> <li>Jenkins / CircleCI</li> <li>Capistrano3</li> <li>ConoHa / VPS / ObjectStorage</li> <li>CentOS / Linuxコマンド各種</li> <li>Ansible / Chef</li> <li>Heroku / Heroku Pipeline</li> <li>Rubymine</li> </ul> <p>書籍が出てるものは買って読んだし、チュートリアルは手を動かしたし、どう使えば開発運用が楽になるか模索していました。</p> <p>そりゃ時間かかりますよね。</p> <h3 id="どうして続けられたのか"><a href="#%E3%81%A9%E3%81%86%E3%81%97%E3%81%A6%E7%B6%9A%E3%81%91%E3%82%89%E3%82%8C%E3%81%9F%E3%81%AE%E3%81%8B">どうして続けられたのか</a></h3> <p>ふらふらと寄り道しながらもリリースまで続けられた理由を考えてみます。</p> <h4 id="作りたい具体的なイメージを持ち続けた"><a href="#%E4%BD%9C%E3%82%8A%E3%81%9F%E3%81%84%E5%85%B7%E4%BD%93%E7%9A%84%E3%81%AA%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%82%92%E6%8C%81%E3%81%A1%E7%B6%9A%E3%81%91%E3%81%9F">作りたい具体的なイメージを持ち続けた</a></h4> <p>前身サイトもゲーム投稿サイトだったので、公開したらどんな感じで使ってもらえるかある程度想像がついていました。</p> <p>自分もゲームを作っているので、作ったゲームが遊ばれることがどれほど嬉しいか知っています。<br /> 気軽にゲームを公開してもらいたい。<br /> 可能ならはじめて公開する場として使ってもらいたい。</p> <p>開発期間が長期化してもそのイメージがずっとあったので、目標を見失わずに続けられました。</p> <p>普段飽きやすい私が1年半も作り続けられたのは、やはり自分自身が使いたいものを作っていたからかなと思います。</p> <h4 id="コツコツ続けた"><a href="#%E3%82%B3%E3%83%84%E3%82%B3%E3%83%84%E7%B6%9A%E3%81%91%E3%81%9F">コツコツ続けた</a></h4> <p>ちょうど作っていた時期、不幸にも往復5時間かかる職場に通勤していました。<br /> (バス+電車+地下鉄+徒歩)まぁ自分で選んだんですけど...</p> <p>不幸中の幸い(?)、安定して片道1時間電車に座れたのでその時間を開発に当てていました。</p> <p>1時間っていう時間が「今日はこれをやろう!」と決めてから「ある程度進捗が出はじめる」のにちょうどいいんですよね。</p> <p>朝進捗があると夜エンジンかかるのも早いです。これが毎日なので少しずつですが着実に進みます。</p> <p>こんな生活を1年続けたので勤務日だけでも2h*220日=440時間...元気があれば帰宅後や休日もやってたので結構な時間やってますね。</p> <blockquote> <p>フルタイムの業務に加えて残業60時間+通勤100時間かかってました。なのに電車で寝ないで開発するとか今考えると頭おかしいですね</p> </blockquote> <h4 id="GitHubに草生やすのも楽しい"><a href="#GitHub%E3%81%AB%E8%8D%89%E7%94%9F%E3%82%84%E3%81%99%E3%81%AE%E3%82%82%E6%A5%BD%E3%81%97%E3%81%84">GitHubに草生やすのも楽しい</a></h4> <p><a href="https://crieit.now.sh/upload_images/4fd0088157f327fd58dbcceade1ef2e75c17ba02a3da5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/4fd0088157f327fd58dbcceade1ef2e75c17ba02a3da5.png?mw=700" alt="20181217220022.png" /></a><br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/naichilab">naichilab | GitHub</a> (これは2018年のグラフ)</p> <p>GitHubにはコミットをグラフ化する機能があります。</p> <p>よーし1コミットだけやるぞ!って机に向かったらめっちゃ捗ったりとかありません??</p> <h4 id="小さな達成感のコントロール"><a href="#%E5%B0%8F%E3%81%95%E3%81%AA%E9%81%94%E6%88%90%E6%84%9F%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB">小さな達成感のコントロール</a></h4> <p>多くの未経験技術に触れたと書きましたが、どれも楽しみながら学びました。</p> <p>わかりやすく書かれた入門書を読むことは、比較的安価に達成感を味わえるのでオススメです。</p> <ul> <li>達成感①:スラスラ読めるので数日で1冊読み終わる</li> <li>達成感②:知らない技術を分かった気になれる</li> <li>達成感③:上記①②から、着実に進んだと思いこめる</li> </ul> <p>まぁ本読んだだけでは使いこなせないです。それは問題ではなくて、少なからず知識が増えたことを喜ぶことが重要。</p> <p>メインの開発が行き詰まったとき、しんどい思いしながら続けると病んでしまいます。<br /> そういう時はストレス解消だと思って気軽に別の技術に触れています。</p> <p>ストレス解消できて成長も感じられていい感じ。</p> <h4 id="焦らない"><a href="#%E7%84%A6%E3%82%89%E3%81%AA%E3%81%84">焦らない</a></h4> <p>誰でも無料でサービス開発ができる時代になりました。日々数多くのサービスがリリースされています。</p> <p>素晴らしい品質のサービスもたくさんあり、自分のサービスと比較すると着眼点・技術力の差に目眩がします。</p> <p>それでも今の自分に出来ないことは出来ないので焦っても仕方がないです。</p> <p>1つ1つの開発を急ぐより、多少時間がかかっても着実にリリースすることを重視したいです。出し続けられることの方が大事。</p> <p>千里の道も一歩から。</p> <p>楽しく開発して長く続けましょう!!!</p> <h3 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h3> <p><a target="_blank" rel="nofollow noopener" href="https://unityroom.com">unityroom</a>の開発が長期化した理由と、モチベーションを保ってリリースできた理由を思い出しながら書いてみました。</p> <p>人によってモチベーションのコントロール方法は違うと思います。<br /> どのような方法が合うのかもやってみないと分からないことが多いです。</p> <p>今日書いた内容が、1000人に1人でいいのでモチベーションが尽きかけてる人の一助になれば幸いです。</p> <p>一緒に開発を楽しみましょう〜!!</p> <p>明日は<a href="https://crieit.net/users/iju_miho">Porin</a>さんです!お楽しみに!</p> naichi tag:crieit.net,2005:PublicArticle/14604 2018-11-15T10:25:03+09:00 2018-11-16T16:55:42+09:00 https://crieit.net/posts/vim-tmux vimとかtmuxとかを使いこなそうとしない <p>Google Cloud Shellの中でやれることをやる。高価なPCやサーバーを用意しなくてもブラウザだけで従来の「プログラミング」をすることができる。評価の定まった本に書かれたコードを書いて実行できる。いま始める人のためにピッタリ。</p> <p>Google Cloud ShellにはWebエディターも用意されているけど複雑だから使わない。<br /> vimがインストール済みだからvimを使う。</p> <pre><code class="bash">$ vim index.html </code></pre> <p>ややこしいことは考えずに、<br /> <code>ESC</code>と<code>i</code>と<code>:q!</code>と<code>:qw</code>だけで十分使える。<br /> ESCキーの代わりに使える<code>ctrl + [</code> が便利。</p> <p>設定しなくても色が付いてるし、自動で閉じタグ書いてくれる。<br /> ただ、タブ幅が大きすぎるからvimrcファイルで設定する。</p> <p><code>~/.vim/vimrc</code>ファイルを置く、中身は3行。</p> <pre><code>source $VIMRUNTIME/defaults.vim </code></pre> <p>まずこれを書くこと。これがないとすっぴんで起動して、htmlのハイライトもされない。</p> <pre><code>set tabstop=4 set shiftwidth=0 </code></pre> <p>これでタブ1文字の表示がスペース4つ分になる。</p> <p>index.htmlを書いたら、プレビューする。</p> <p>Google Cloud Shellの「ウェブでプレビュー」は、インターネットからアクセスできるURLを用意してくれる。googleアカウントでログイン済みのアクセスだけをcloud shellの8080ポートへ通してくれる。<br /> ということで、8080ポートで待ち受けするWebサーバーを起動する。何を使ってもいいんだけど、インストールされててすぐ使えるからpython3。</p> <pre><code>$ python3 -m http.server 8080 </code></pre> <p>実行すると、画面から入力待ちのプロンプトが消えてWebサーバーのログが表示されるようになる。こうなるとvimが使えない。Webサーバーを起動したままで他のこともしたい。cloud shellの別のタブを使ってもいいけど、Google Cloud Shellはtmuxが導入済みで、こういう場面で役に立つ。</p> <p><code>ctrl + b, c</code>を押すと、「Wellcome to Cloud Shell」が表示される。さっきまでの画面は<code>ctrl + b, n</code>で戻れる。迷子になったときは<code>ctrl + b, w</code>で画面の一覧が出せる。</p> <p>これで、Webサーバーを起動させたままvimでhtmlファイルを編集できる。</p> <p>vimを終了させずにファイルを保存するには、<code>:w</code></p> あぜち(おばあちゃん) tag:crieit.net,2005:PublicArticle/14327 2015-11-26T16:11:10+09:00 2015-11-26T16:11:10+09:00 https://crieit.net/posts/Brackets-VS-Atom Brackets VS Atom <p>BracketsとAtomの比較だが、Atomの方が優勢だと思う。</p> <p>・Bracketsはホイールのスクロール量がおかしく、<br /> 上下分割をしている時にスクロールしすぎて使いものにならない。</p> <p>・Bracketsで1000行以上のファイルを編集しているとカクカクになる。<br /> Atomで同じファイルを編集してもかなり軽かった。</p> <p>・Atomは行番号クリックで行選択ができる。<br /> これができないBracketsは正直かなり使いづらい。</p> <p>・Gitがきちんと使えそう。<br /> Bracketsも拡張機能はあるがかなりしょぼい。</p> <p>・ファイルツリーの行間が広く扱いづらい。</p> <p>とりあえずBracketsはもっさりしすぎている。<br /> 小さいファイルばかり扱うのであれば全然困らないし快適だが。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14351 2015-01-21T16:01:26+09:00 2018-10-17T09:14:54+09:00 https://crieit.net/posts/98565505867eae86d866580e5482300a メーラーを卒業 <p>PCの調子が悪くなってきたので以前に元々ゲームで使用していたスペックの高いPCに乗り換えた。<br /> それに伴いthunderbirdを卒業した。</p> <p>元々、その前にPCを乗り換えた際に、thunderbirdの設定をimapのみにしていた<br /> (以前使っていたプロバイダのメールなどは全部gmailに傳送している)<br /> のでいつでもgmail通知に切り替えられる状態ではあった。</p> <p>ただ、切り替えられなかった理由としては、<br /> 一つのこだわりとして仕事の時間外に仕事のメールを通知されたくない、<br /> というところがあったため。</p> <p>今回色々調べてみると、checker plus for gmailというchromeの拡張機能は<br /> 複数のgmailアカウントの通知をできるのだが、<br /> オプションで各アカウントを無視することもできる、という機能があった。<br /> 試しに使ってみると、それほど面倒ではなく使えるように思った。</p> <p>1日と仕事はじめと終わりにこのオン・オフをしなければならないのだが、<br /> まあどうせメーラーでも起動、終了をしなければならないのだから<br /> それほど大きな違いはないかな、というような気がしている。<br /> それよりもPCを汚さないのとブラウザさえあればどこでも全く同じ操作ができてしまう<br /> メリットのほうがだいぶ大きいと感じた。<br /> gmailの操作性は現状だと全然悪くないし。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14360 2014-12-26T16:12:11+09:00 2018-08-28T12:33:28+09:00 https://crieit.net/posts/PHPExcel-setOffsetY PHPExcelで画像貼り付け時にsetOffsetYが効かない <p>PHPExcelでシート上に画像を貼り付けるサンプルがネット上で見つかる。<br /> そこではまず貼り付ける位置をD20等で指定し、<br /> その後setOffsetXを使ってX座標の微調整をするのをいくつか見つけたのだが、<br /> setOffsetYを使ってY座標の微調整ができない。</p> <p>setOffsetYというメソッド自体はあるのだが、位置が変わらない。<br /> 動作していないか、別の用途で使われるものだと思う。</p> <p>ではどうしたかというと、<br /> 例えばD20のちょっと下に貼り付けたい場合、<br /> D20の縦幅を狭くし、D21の幅をその分広げて、<br /> D21に画像を貼り付ければいいだけだった。<br /> ページ上を左右の段組とかのように作っていると難しいかもしれないが。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14374 2014-05-14T11:05:15+09:00 2014-05-14T11:05:15+09:00 https://crieit.net/posts/be631c783968b6918de5c6a0e27273d6 昨日のラジコンの配線図 <p>昨日のラジコンの配線図。<br /> <a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0241.jpg"><img class="alignnone size-medium wp-image-392" src="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0241-225x300.jpg" alt="DSC_0241" width="225" height="300" /></a></p> <p>まあ見にくいしぐちゃぐちゃにして書きなおしたりしてるので<br /> 何の参考にもなりません。</p> <p>この紙はサンハヤトの基板をネットで調べたら<br /> 印刷用のがあったのでそれ。<br /> ユニバーサル基板でぱぱっとちっちゃいもの作りたい場合は<br /> 便利かなと思う。<br /> かなり見にくいので蛍光ペンや複数色ボールペンがあると楽そう。</p> <p>Eagleはとても時間がかかって挫折中なので…。<br /> みんなはやっぱちゃんとそういうのでやってるんだろうか…。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14379 2014-05-10T19:05:59+09:00 2018-10-06T19:38:34+09:00 https://crieit.net/posts/332e3bcb31f834b3d944da76468913b8 秋葉原の電子部品関連店舗に行ってみた <p>秋葉原に行く機会ができたので色々行ってみた。</p> <p>・秋月</p> <p>店舗は狭く、しかし人が多いのですごいことになってた。<br /> とりあえずICソケットやモータードライバ等を頑張って探して、<br /> 必要な物だけ急いで探して買う、みたいな雰囲気でのんびりできなかった。<br /> 休日だからっていうのもあっただろうが…。<br /> のんびり色々見たい場合は平日か、埼玉の店舗に行ったほうがよさそうだ。</p> <p>・千石</p> <p>こっちはネットで見ると秋月ほど安くないんだけど、<br /> 店舗がいくつかに分かれていて(どれもそばに並んでいる)<br /> かなり商品数もおおくゆったりしていてだらだら見るのにも楽しそうだった。<br /> ここでは小型モーターがあったので4つくらい買った。<br /> タミヤのパーツがたくさんあったので<br /> モーターを使って色々やりたい人とかは楽しそうだ。</p> <p>・aitendo</p> <p>なんかへんてこりんなところにあり、<br /> 何故かネットやGPSもうまく機能しなかったので見つけるのに苦労した。<br /> かなりこじんまりとしている。<br /> ていうかこれ<br /> <a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0237-1.jpg"><img src="http://program.alphabrend.com/wp-content/uploads/2014/05/DSC_0237-1-225x300.jpg" alt="DSC_0237 (1)" width="225" height="300" class="alignnone size-medium wp-image-366" /></a><br /> なんかちょっと店舗のブログかなんかに掲載されていた、<br /> なんかのイベントの時に作られていた基板が2枚までFREEだったので笑ってもらってきた。<br /> 他にも、基板 in MINTIAとか、面白いちっちゃい基板がたくさんあったので<br /> 見るだけでも楽しめた。<br /> ここではその場で見た基板を適当にいくつか買った。<br /> オンラインショップのカテゴリだと<br /> 商品カテゴリ一覧: ★色々な電子部品 > PCB<br /> とかみたい。</p> <p>・ダイソー</p> <p>これは秋葉原ですらなくうちから数駅離れたところにある<br /> 超でかいダイソーなんだけど、<br /> ネットではんだ吸い取りポンプがあるという噂を聞いていて、<br /> 電話して聞いてみたら売られていたので行ってみた。<br /> 秋月では800円くらいなのにダイソーは200円。</p> <p>商品を見つけたのだが、なんとはんだごてまで500円とか売られていた。<br /> 日中に急にはんだごてが壊れた、なんてときに役立ちそうだ。<br /> ほかにも逆ピンセットや熱収縮チューブとかがあったので<br /> 適当に買った。<br /> すごいなダイソー…。</p> <p>ただ、はんだを溶かしてすぐに基板を振って叩くと<br /> 半田がするっと取れる、という情報も得たので<br /> そっちも試してみたい。職人技だな…。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14388 2014-04-30T18:04:26+09:00 2014-04-30T18:04:26+09:00 https://crieit.net/posts/Dealextreme-IC Dealextremeで買ったICソケットが… <p><a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/wp-content/uploads/2014/04/DSC_0230.jpg"><img src="http://program.alphabrend.com/wp-content/uploads/2014/04/DSC_0230-225x300.jpg" alt="" title="DSC_0230" width="225" height="300" class="alignnone size-medium wp-image-322" /></a></p> <p>曲がってる…。<br /> Dealextremeで購入したゼロプレッシャーICソケット。</p> <p>海外に品質なんて言葉は存在しなかった…。<br /> まあ8サイズセットで1000円の激安だからお得なんだけど。<br /> 壊れてないだけまだいいか。<br /> 壊れない物、壊れても良さそうなものを買おう…。</p> <p>ちなみに到着は2週間くらい。<br /> tracking numberは表示されていなかった。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14398 2014-04-15T13:04:01+09:00 2014-04-15T13:04:01+09:00 https://crieit.net/posts/d6a18ff64688e052b35cd92a2f3b8c00 電子部品の通販サイト感想 <p>今までに使った電子部品関連の通販サイトをまとめてみる。<br /> (使ってないのも混じっているが)</p> <p>・<a target="_blank" rel="nofollow noopener" href="http://akizukidenshi.com/catalog/default.aspx" target="_blank">秋月電子通商</a></p> <p>言うまでもないが安くて品揃えの良いメインでつかえるお店。<br /> 送料無料とかはないので計画をたてて必要な物は一気に買いたい。</p> <p>・<a target="_blank" rel="nofollow noopener" href="https://www.sengoku.co.jp/" target="_blank">千石電商</a></p> <p>店舗は一番品揃えが良いのでは、ということらしい。<br /> 凄く安い、ということはないので必要な物がある時に利用したい。</p> <p>・<a target="_blank" rel="nofollow noopener" href="http://it-densi.ocnk.net/" target="_blank">イトウ電子部品・通販</a></p> <p>意外と安いが、個人でほそぼそとやっている? ようでクレジット決済も無い。<br /> (いつのまにかクレジット使えるようになったみたい)<br /> ただ、1個だけ買っても送料が200円固定とものすごく安いので<br /> ちょっと何か買い忘れた物があるときとかに利用できそう。<br /> 振込手数料がかかると意味ないので楽天銀行とか持ってるとよい。</p> <p>・<a target="_blank" rel="nofollow noopener" href="http://www.aitendo.com/" target="_blank">aitendo</a></p> <p>ここはなんか品揃えが面白く他にないものとかがあったりする。<br /> USB-シリアル変換モジュールが500円で売ってたりしてすごい。</p> <p>・<a target="_blank" rel="nofollow noopener" href="http://www.switch-science.com/" target="_blank">スイッチサイエンス</a></p> <p>とりあえずarduino関連はここで買いたい感じ。<br /> 3000円以上で送料も無料だから欲しいものが気軽に買える。</p> <p>・<a target="_blank" rel="nofollow noopener" href="http://www.dx.com/" target="_blank">DealeXtreme</a></p> <p>海外のサイトだがまさかの送料無料。<br /> しかも異常なまでに商品が安い。<br /> 送られてくるまでにかなり時間がかかるみたいなので<br /> 急ぎでないものはここで買っちゃってみてもいいかも。</p> <p>以下はお店ではないが…</p> <p>・<a target="_blank" rel="nofollow noopener" href="http://tiisai.dip.jp/" target="_blank">ちっちゃいものくらぶ</a></p> <p>arduino関連等のオリジナルキットが売られている。<br /> 組み立てなどは必要な物が多いが、全てかなり安い。<br /> 完全個人なので届くまではのんびりで時間が掛かるが<br /> 計画的に注文していけばかなり費用を抑えて遊べる。</p> <p>・ヤフオク</p> <p>掘り出し物多数。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14403 2014-04-07T13:04:11+09:00 2014-04-07T13:04:11+09:00 https://crieit.net/posts/firefox firefoxがずっと応答なし <p>今日突然、<br /> firefox起動<br /> →しーん…<br /> →だいぶ経ってから真っ白なウィンドウ表示<br /> →そのままずっと応答なし<br /> という現象が起きた。</p> <p>なんかタブの復元ページが表示されたと思っても<br /> tabbrowser.xmlのスクリプトが動かないから<br /> 待機するか終了するか選べとか言われるし。<br /> 応答なしだからたまーにしかボタンをクリックできない。<br /> クリックしてもまた同じ確認ウィンドウが出てくる。</p> <p>プロファイル変更してもダメ<br /> セーフモードでも同じ<br /> firefoxふざけんなまじで仕事が出来ない</p> <p>結局プロファイルをバックアップして再インストールしたら<br /> 起動できるようになった。<br /> かんべんして欲しい。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14405 2014-04-05T09:00:00+09:00 2014-04-05T09:00:00+09:00 https://crieit.net/posts/a160ce78da406cefa83fede72458f663 モータードライバでモーター制御 <p>100円ショップのモーターで動く電車を<br /> リモコン操作出来ないかと思い回路を作っていたのだがようやく完成した。<br /> モーターはモータードライバをかませてある。</p> <p>とりあえず単三電池4本でやってみると想定通りに動いた。</p> <p>次にHT7750Aというステップアップコンバータの回路を作って<br /> 単三電池1個で試してみたのだが動かない。<br /> テスターで測ってみてもなぜか3Vちょいしか出てない…。</p> <p>その後試行錯誤してボタン電池に変えてみたり<br /> モータードライバへの電源入力を分けてみたり<br /> ボタン電池3V2個を重ねてみたりしたのだがそれもダメ。</p> <p>同じ6Vでも足りないのは電流不足だろうか…。<br /> ともかくちゃんと電力がないとだめっぽい。<br /> もともと電池1個で動いてたおもちゃなのに…。まいった。</p> <p>追記…<br /> <a target="_blank" rel="nofollow noopener" href="http://www.geocities.jp/plarailn700/page88.htm" target="_blank">http://www.geocities.jp/plarailn700/page88.htm</a><br /> はプラレールの改造を行っているサイト。<br /> 回路を見るとリレーというものを使っていた。<br /> これで電池1本でいけるじゃないか!!</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14433 2010-11-04T09:00:00+09:00 2018-09-27T16:52:58+09:00 https://crieit.net/posts/swfmill swfmillのインストール(追記) <p>さくらサーバー以外の専用サーバーなどにインストールする際のまとめ。<br /> 前回は<br /> <a target="_blank" rel="nofollow noopener" href="http://program.alphabrend.com/?p=45">http://program.alphabrend.com/?p=45</a></p> <p>yum install gcc-g++<br /> yum install libxslt-devel<br /> yum install freetype-devel<br /> yum install libpng-devel</p> <p>pkgconfigが必要な場合もある。</p> だら@Crieit開発者