タグ

ブックマーク / gin0606.hatenablog.com (19)

  • 僕が考えた最強のAPIドキュメント生成 - 銀の人のメモ帳

    2023 追記 2023 年現在では、以下の文章では採用を見送っている OpenAPI を使えば OK という雰囲気です。 Web APIの設計 作者:Arnaud Lauret翔泳社Amazon TL; DR ドキュメント生成にはkevinrenskers/raml2htmlを使った ドキュメントはRAML - RESTful API modeling languageで書いた RAMLにはJSON SchemaとJSONを記載できる APIで返ってくるJSONはRailsアプリのrequest specでJSON Schemaを使ってテストした JSON Schemaはr7kamura/json_worldで生成した ドキュメントに載せる例示のJSONもJSON Schemaからgin0606/screijiを使って生成した 上記の方法だとリクエストパラメタとドキュメントの整合性を担保

    僕が考えた最強のAPIドキュメント生成 - 銀の人のメモ帳
  • JSON Schema書くのが辛くてgemを作った - 銀の人のメモ帳

    github.com 会社のプロジェクトでサーバーサイド開発体験することになった。今まではスマホアプリ専門みたいな感じで、API使う側だった。 API使う側的な不満が結構あって、とりあえずドキュメントと実装の乖離は絶対に無くしたい絶対にみたいなモチベーションが生まれた。 なんかそういう感じのはいくつかあったけど、レスポンス自体の定義にはJSON Schemaを使おうという感じになった。ドキュメントはRAML使ってみようという感じで試してる。 JSON SchemaでAPIとドキュメントの乖離無くす手段として、実装からJSON Schema生成するのとかもある。 JsonWorldでモデルからJSON Schemaを生成する - Qiita Qiitaで使ってる方法に乗っかるのはとても魅力的だったんだけど、プロジェクトの都合的に、ドキュメントとMockを取り急ぎ用意する必要があって、実装から

    JSON Schema書くのが辛くてgemを作った - 銀の人のメモ帳
  • fastlane meetupでLTしてきた #fastlane_jp - 銀の人のメモ帳

    fastlane meetup - connpass fastlane使い始めたの一昨日で、昨日k_katsumiさんにmeetup空きあるしLTしないかって言われて準備したので大分浅い内容になってる。 fastlane使用歴3日のところと、new_actionのところで笑いが起こって良かった。 ドキュメントよく読まずユーザー定義Action追加しようとしたけど、よく読んだらめっちゃ楽に出来るほうほう用意されてた、という内容。 @KrauseFx I know 😆— 銀の人。 (@gin0606) 2015, 6月 26 LT中にAutherの人からmention来てて面白かった。 勉強会初登壇だった。 fastlaneの感想としては大分よさ気という感じ。 今日参加するまでCI全般に使うツールというふうに思っていたんだけど、継続的デリバリーに特化した感じだなって思った。 少し前からsig

    fastlane meetupでLTしてきた #fastlane_jp - 銀の人のメモ帳
  • 古巣に砂をかけられた話 - 銀の人のメモ帳

    2015-05-14 古巣に砂をかけられた話 弊社社長の僕の転職に関する最低のコメント聞いて完全にやる気が無くなってる。— 銀の人。 (@gin0606) 2015, 5月 13 古巣に砂かけるつもり全く無かったんだけど逆にかけられたので、退職エントリで現職場の良いとこ悪いところ挙げて社に興味持って貰えるようにするの止めました。— 銀の人。 (@gin0606) 2015, 5月 13 直接言われたわけじゃないので完全に陰口ですね。— 銀の人。 (@gin0606) 2015, 5月 13 多分客観的に見たら最低ってほどでもないんだけど、当に不誠実だなぁという感じ。— 銀の人。 (@gin0606) 2015, 5月 13 この件に関してブログ燃やしても何も得しないし社内に文章共有して社内で炎上させたほうが楽しい気がしてきた。— 銀の人。 (@gin0606) 2015, 5月 13 ま

    古巣に砂をかけられた話 - 銀の人のメモ帳
  • Serverspecで`should be_installed.by 'homebrew_cask'`出来るようにする - 銀の人のメモ帳

    2015/05/16 18:40 追記 Add `should be_installed.by 'homebrew_cask'` by gin0606 · Pull Request #385 · serverspec/specinfra · GitHub プルリクエスト出したらMergeされたのでserverspecのv2.33.0から何もしないでも使えるようになるっぽいです。 Specinfra::Command::Darwin::Base::Packageに対応するmethodを追加する。 雑にspec_helperに書いた。 class Specinfra::Command::Darwin::Base::Package class << self def check_is_installed_homebrew_cask(package, version=nil) escaped_pa

    Serverspecで`should be_installed.by 'homebrew_cask'`出来るようにする - 銀の人のメモ帳
  • 近況 - 銀の人のメモ帳

    近況、というかブログの最新エントリが飼い犬のR.I.Pエントリだとブログ開くたびに悲しい気持ちになるから適当に文章でも書くかという感じで、最近文章にしたいトピックを書こうみたいな感じ。ちなみにビールを飲みながら書く。 最近の文章にしたいトピックは職を変えよう的な感じのアレで、具体的にはゲームを作らない業界、更に具体的に言うとiOSのスマートフォンアプリを作る会社に転職したいなぁという欲がある。 何故、iOSスマートフォンアプリなのかというと、僕のスキルセット的にiOSかcocos2d-xかみたいになってしまっているというのが大きい。 最近仕事が全く楽しくなくて、しかしどうすれば仕事が楽しくなるのかが分からないという状態になってる。僕がプログラミングを始めた頃は、バイトでプログラミングして、バイトのストレス解消にプログラミング楽しむみたいな生活をしていた。とは言っても四六時中書いてたわけじゃ

    近況 - 銀の人のメモ帳
  • MacのBootstrap準備した - 銀の人のメモ帳

    Bootstrap? 最近会社の作業用マシンが起動ボリューム壊れてるとかでYosemiteクリーンインストールした。 dotfilesとかはgithubに上げてたんだけど、アプリケーション入れるの面倒臭いからやっぱりbrewとbrew-cask入れてくれるようなやつ準備しといたほうがいいなって思った。 自宅のMacBook ProもYosemiteクリーンインストールしたいし。 Brewfileは少し前にオワコンになって、同じフォーマットで使えるようなのあったけどciderって言うのを使うことにした https://github.com/msanders/cider 準備 ciderはpython製のツールなのでpipでインストールする pip install cider mkdir ~/.cider touch ~/.cider/bootstrap.json bootstrap.json

    MacのBootstrap準備した - 銀の人のメモ帳
  • 入社十一ヶ月経ちました - 銀の人のメモ帳

    新年の抱負は守らないために言うものだと思ってたのだけど、このままだと無事に実現されてしまいそう。あと一ヶ月以上あるからまだ間に合う。 結構前にいい感じの人がCTOが就任して、入社当時に比べて開発を含めた環境は格段に良くなってる。 先月までTravisCIでプライベートリポジトリのCI回してたんだけど、cocos2d-xだとiOS/Androidのビルドをする必要があって、糞遅いと言い続けてたら最近MacProが会社に来た。今まで30分以上かかってたものが1分ちょいで終わるようになってMacPro凄い。 ただJenkinsの設定や知見の共有は面倒臭いから使えるならTravisCIやCircleCIなどのサービスを利用したほうがいいと思う。 社内のUnityプロジェクトは社内に落ちてたMac miniでCI回してたみたいなんだけど、ビルドスクリプトにもろもろのいろいろが絶対パスで指定されててウ

    入社十一ヶ月経ちました - 銀の人のメモ帳
  • cocos2d-x-3.3からWebViewが使えるようになる。 - 銀の人のメモ帳

    cocos2d-x-3.x系で使えるWebView作った - 銀の人のメモ帳 前に書いたこれがcocos2d-x家にMergeされたってだけの話なので、作った経緯とかはこれ見るといい。 家にPR出すつもりではあったんだけど、適当に入れたらerror出てて解決方法もよくわからなくて放置してたら、別のPRのレビューしてくれたcocos2d-xの人が僕のリポジトリ見て、issue投げてくれた。 Merge into official repository · Issue #2 · gin0606/cocos2dx-WebView · GitHub なんというか見る人は見るんだなーという感じで、オープンソースプロジェクトにcommitする楽しさみたいなのを感じられた。 PR眺めてたら早速Winでの実装がPR出てて、承認〜〜〜〜という感じで良かった。 add simple implement o

    cocos2d-x-3.3からWebViewが使えるようになる。 - 銀の人のメモ帳
  • Happy Hacking Keyboard Professional2買った - 銀の人のメモ帳

    最近家でコード書いたりしてなかったんだけど、仕事やる気出た時とかは退勤後に手首が腱鞘炎っぽくなってた。会社ではMacBook Proのキーボードで、家ではApple Wireless Keyboard使ってた。 せっかくやる気出して仕事したのに、やる気出した後は必ず腱鞘炎っぽくなってたから、やる気を出すと手首が痛くなるからやる気を出さないみたいな感じになるのも微妙なので、ちょっといいキーボードを買おうと思った。 HHKB、黒くて何も印刷されてないキーボードがあると知った時にかっちょいいと思って欲しかったんだけど、いかんせん高かったので買わなかったんだけど、少し前に自己投資系のエントリが流行った時にHHKB挙げてる人が多くて、欲しさが再燃してた。 物欲に上記のような理由をこじつけて買った結果、慣れないキーボードで生産性が糞下がった。 会社に他にもHHKB使ってる人が居るんだけど、その人も買っ

    Happy Hacking Keyboard Professional2買った - 銀の人のメモ帳
  • cocos2d-x-3.x系で使えるWebView作った - 銀の人のメモ帳

    TL;DR gin0606/cocos2dx-WebView · GitHubをcloneしてREADMEに従えば使えるようになるはず。 cocos2d::ui::Widgetを継承してるから便利。 何故作ったか Cocos2d-xでWebViewを使おうとすると、公式では用意しておらず自前で実装するか、他所から持ってくるかという事になる。 で、他所から持ってくる場合に有名なのがGreeが作ったwebview_pluginだと思う。 GreePlatformSDKCocos2dx/webview_plugin/webview_plugin at master · gree/GreePlatformSDKCocos2dx 僕が今、会社でやっているプロジェクトでも、これを使っていたんだけど、cocos2d-x3.x系で動かなかったり、バグが有ったり、cocos2d::Nodeと同じように使えな

    cocos2d-x-3.x系で使えるWebView作った - 銀の人のメモ帳
  • 入社六ヶ月経ちました - 銀の人のメモ帳

    有給付与されてめでたい。 http://www.amazon.co.jp/registry/wishlist/1GRLBQ0JXTXHW お祝いに何かください。六月六日は誕生日だったので、誕生日プレゼントでもいいです。 六ヶ月でやったこと TravisCI使おうって言った→導入された HipChat使おうって言った→導入された Qiita:Team使いたいな〜(チラッチラッ みたいなことした→導入された HipChatにHubot入れて遊んだ 炎上の火消し TravisCIもHipChatもQiita:Teamも、稟議とかみたいな面倒くさい手続きは全くせずに導入された。 役員の殆どがエンジニア出身なので、便利なものがあるのにJenkins使ってメンテコスト割きたくないよね〜とか、ChatWork使いたくない!とかみたいな感覚が共有されているので、そこら辺は凄く楽に感じる。 一応、Travi

    入社六ヶ月経ちました - 銀の人のメモ帳
  • TravisCIのnotificationsを整える - 銀の人のメモ帳

    Travisからの通知、format変えられるのでdefaultだと三行になってうざいから変えたほうが良い。 / “Travis CI: Configuring Build Notifications” http://t.co/JCMyqmKP6g— 銀の人。 (@gin0606) 2014, 5月 12 .travis.ymlでnotificationsのtemplateを指定できる。defaultの通知だと、テキストで来るんだけど、format: htmlって指定するとhtmltemplate書けたりする。 defaultはこういうふうになってる。 template: - "%{repository}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}" - "Change view : %{compare_

    TravisCIのnotificationsを整える - 銀の人のメモ帳
  • 増補改訂版Java言語で学ぶデザインパターン入門読んだ - 銀の人のメモ帳

    増補改訂版Java言語で学ぶデザインパターン入門 作者: 結城浩出版社/メーカー: ソフトバンククリエイティブ発売日: 2004/06/19メディア: 大型購入: 51人 クリック: 762回この商品を含むブログ (398件) を見る 読んだ。 デザインパターン、教養だと思っていたし、読み終わった今も教養だと思っているんだけど、こので初めてデザインパターン学んだ。 リファクタリング―プログラムの体質改善テクニック読んだ - 銀の人のメモ帳 学んだほうがいいと思いつつも、何故今まで学んでこなかったかというとリファクタリング読んだ時にも書いたんだけど、デザインパターンの誤用に苦しめられてきたからで、必要になるまでは学ぶべきでないと思っていた。ので、学んでなかった。 必要になるまでは学ぶべきでないというのは、前までは「コードを読み書きする上で」必要になるまでは、と思っていたんだけど、デザパ

    増補改訂版Java言語で学ぶデザインパターン入門読んだ - 銀の人のメモ帳
  • TravisCIからTestFlight/DeployGateにipaをアップロードする - 銀の人のメモ帳

    TravisCIからTestFlight/DeployGateにipaをアップロードするには、自分のMacで使ってる証明書をTravisCIに登録しないと出来ない。なので、これから書くことは、TravisCIに証明書を登録する方法みたいな感じです。 僕はTravisでrake実行する感じでやったので、Rakefile置いときます。 https://gist.github.com/gin0606/9970458 準備するもの 証明書一式 Worldwide Developer Relations iOS Distribution Certificates .cerと.p12 adhoc用のiOS Provisioning Profiles TestFlight/DeployGateのAPIキー TravisCIに証明書を登録する security create-keychain -p tra

    TravisCIからTestFlight/DeployGateにipaをアップロードする - 銀の人のメモ帳
  • リファクタリング―プログラムの体質改善テクニック読んだ - 銀の人のメモ帳

    リファクタリング―プログラムの体質改善テクニック (Object Technology Series) 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史出版社/メーカー: ピアソンエデュケーション発売日: 2000/05メディア: 単行購入: 94人 クリック: 3,091回この商品を含むブログ (307件) を見る 残念ながらピアソン桐原から出版されていたので、現在は手に入りにくいんだけど、読んだ。 内容的には、リファクタリング手法のカタログみたいな感じだと思う。5章くらいまでは、導入とか、リファクタリングの心構えみたいな事が書いてある。 リファクタリングをするときに「いつすべきか?」というのが問題になると思うんだけど、このでは、機能を実装するときにその周辺をリファクタリングするといいと書いてあった。これは「動いてるものは触るな」っていう考

    リファクタリング―プログラムの体質改善テクニック読んだ - 銀の人のメモ帳
  • 学習を止めた豚と働けるほど人生は長くない - 銀の人のメモ帳

    学習することを止めた人間と仕事をすると、働くのが厭になる。その人と働くのが厭になる、ということではなく、そういう人間でも働き続けられる事に絶望して、働くことそのものが厭になる。 学習を止める理由は、人によって様々だろうけど、学習しなくても業務を処理出来るだけの知識や経験を得た人間が、その後を学習を止めている事は多い。 そういう人間の場合は、程度にも寄るが「知識や経験」から、得られるものが有る場合が多いので、まだいい。 だけど、知識や経験も無いのに、学習をしない人間も居る。つどつど指摘をし再発防止を求めても、同じことをする。あるいは、指摘の根的な部分を理解せず、改善されない。 そういう人間は淘汰されていく、という幻想はあるが、自分より一回りも二回りも年上の、そういう人間が少なくない給与を貰って働き続けているのを見ると、絶望する。 エンジニア、もしくはプログラマという職業を続ける為には、学び

    学習を止めた豚と働けるほど人生は長くない - 銀の人のメモ帳
  • 入社二ヶ月経ちました - 銀の人のメモ帳

    前職を数ヶ月で辞めて転職活動して、意外にすんなりと転職活動を終えてた。普通に転職活動をしてみて、一社内定頂いたけど辞退した。 今働いてるところは、前回の転職活動で意識高いエントリを書いたらメールくれたベンチャー。 前回の転職活動では、力が欲し〜とか自分より凄い人が居るところで働きたい〜とか言ってたけど、今回は、如何に自分が楽しく働けるか、もしくは自分が楽しいように変えられるかを重視してた。 今の会社、社員数は20人に満たないから、わがままじゃなくて妥当性を持って変えようとすれば変わりそうな感じで、そこらへんについてはストレスが少ない。 当は入社一ヶ月くらい経ったあたりで社名を明かしてそれなりにひと目に付くような文章書こうと思ってたけど、炎上の火消しにぶっっっこまれてマジで糞な感じになってるから、こんな感じで、なんか適当に書いてる。 僕より前に入社したエンジニアは、わりとギークっぽい感じで

    入社二ヶ月経ちました - 銀の人のメモ帳
  • エンジニアとして「頑張る」ということ - 銀の人のメモ帳

    プロジェクトにアサインされた段階で、これはデスマになりそうだな、と感じることがある。 そういう時、僕は、プロジェクトを管理している人に「デスマは絶対にしない」ということと「残業もしない」という旨を伝えている。 これは、決して「頑張らない」という事ではなくて、スケジュールや予算の調整は、エンジニアより上のレイヤーの人間が「頑張る」べきことだと考えているから、そう言っている。 エンジニアとして僕が「頑張る」べきことは、例えば自分を含めたプロジェクトメンバーのスキルアップであったり、開発効率向上等によって工数を短縮出来ないかを考え、実行することであったり、プロジェクトで得たノウハウを次に活かせるような形で保存・共有することだと思っている。 実際は、様々な状況でデスマや残業をせざるを得ない事が多々ある。会社として頑張らなければならなかったり、金銭的なものであったり、色々な事情がある。 そうなったら

    エンジニアとして「頑張る」ということ - 銀の人のメモ帳
  • 1