blogこの広告は、90日以上更新していないブログに表示しています。#markdownRubyQuiverのノートブックをテキストファイルにエクスポートするツールを作りました。nori3tsu/unofficial-quiver-exportQuiverの内部で保存しているjsonをパースしてテキストファイルにエクスポートするだけのツールです。Cronで定期的にクラウドストレージにエクスポートすることで、Quiverのノートの中をどの端末でも見ることが出来るようになります。CellはHTMLになっているため、エクスポートしたテキストファイルの中にHTMLが含まれます。directorySSHログインでタイトルのエラーが発生するようになったときの解決方法。Terminal以下の設定のチェックを外す。startupiTerm2以下の設定のチェックを外す。EditorをQuiverに乗り換えたので紹介したいと思います。Markdownいいですよね。簡単なメモから技術的なメモまでシンプルに書けるのでとっても気に入っています。EditorとしてKobitoの操作感が好きでずっと使っていました。Kobito最高なのですが、旧バージョンのKobitoは複数端末の同期が出来ないことと、.mdファイルへの書き出しがそれほど使い勝手が良くないことから、以下の条件で移行先をずっと探していました。様々なアプリを試しては挫折してを繰り返していたのですが、ようやく満足できるアプリを発見しました。'プログラマーのためのノートブック'として作られている'Quiver'というアプリです。これは非常に多機能かつ軽く、ほぼ全ての条件を満たしてくれて大変満足しています。Notebook不満点は以下の2点ですが、1は現在Issueがあがっていて対応中とのこと。2は現状どうしようも無いですが、Notebook単位で.mdファイルに書き出しできるのでそれで代替できないこともないです。HappenApps/Quiverトライアル版もあるので、同じような悩みを抱えている方は試してみてはいかがでしょうか。Quiverの中身をエクスポートするツールを作りました。参考までに私の設定の変更点を共有します。VimStylesPreview/PresentationモードのCSSに参考リンクのgithub-markdown.cssを追加する。QuiverのCSSスタイルに合わせるため、CSS内部の.markdown-bodyを.markdown-cellに置換する。API(以降API)を作る機会が増えています。スマホやシングルページアプリケーションのバックエンド,システム間のデータ連携などです。これらのAPIを複数の言語やフレームワークで実装してみましたが、個々の機能を実装する前に考えるべき事は共通していました。これから先も多くのAPIを作成する事になると思いますので、APIを作る上での共通実装をまとめてみたいと思います。文字コードUTF-8を選択します。日付書式ISO8601形式を選択します。曖昧さを無くすためタイムゾーン情報を付与したいためです。2015-04-07T09:00:00+0900リクエストフォーマットPOST・PUTのリクエストボディはJSONを選択します。レスポンスフォーマットJSONを選択します。API認証APIの認証方法とリソースの権限制御の仕組みを考えます。それぞれ一長一短がありますので、要件によって適切な方法を選択します。署名認証OAuth認証...Validation入力されたパラメータを簡単に検証するための仕組みを考えます。RailsだとActiveRecordの標準機能、JavaだとHibernateValidatorなど、メタ情報から検証出来るものを選択します。検証に失敗した項目を構造化したレスポンスで返せる用に拡張します。判断して自動的にコミット・ロールバックする仕組みを考えます。これを導入しておくと、トランザクションの張り忘れやロールバック忘れなどの些細な不具合が少なくなります。業務ロジックの前後に処理を入れる仕組みを考えます。X-Request-IDの付与などで使います。...共通例外処理アプリケーションの業務ロジックで発生した例外を適切に処理するポイントを考えます。APIの場合、例外によってレスポンスを選択することが多いです。Error...設定ファイル開発・ステージング・本番環境など、各種環境で設定ファイルを切り替える方法を考えます。処理時間計測パフォーマンスを測定するために、リクエスト毎に処理時間を計測します。X-Request-IDのログ埋め込み障害発生時や関連システムからの問い合わせなどで対象のリクエストを一意に識別するために、レスポンスにX-Request-IDとしてUUIDを付与します。ヘルスチェック用URLの用意ロードバランサーなどから監視するヘルスチェック用のURLを用意します。DBなど、APIの提供に必要なミドルウェアへの疎通に成功したら正常ステータス(200)を返す処理にします。503と切り替える機能を付けると、アプリの設定でロードバランサーから切り離すことが出来るようになるため便利です。単体テスト選択するフレームワークや組み合わせるライブラリによって、特定のオブジェクトを生成することが難しいなどの理由で、単体テストの実装が難しくなってしまうことがあります。初期の段階で導入しておかないと、テストを意識した設計ができずにテストし辛いクラスが出来あがってしまうことがあります。私の場合、忙しさに追われて単体テストを書かないという状態に陥ってしまったことがあり、その際にソフトウェアの品質が著しく下がってしまった経験から、単体テストを実行する仕組みを最初に整備しておくことにしています。この段階からJenkinsなどのCIサーバと連携するために、CUIから実行できるようにします。ControllerのテストModelのテストViewのテストMock/Stub生成が困難なオブジェクトDIコンテナHTTP通信...デプロイ稼働するサーバに向けてのデプロイ方法を考えます。後々JenkinsなどのCIサーバと連携できるようにCUIから実行できるようにします。おわりに最近、これらの事をRailsで実装する機会があったのですが、驚くほど簡単に実装できてしまいました。Javaで複数のライブラリや設定ファイルを組み合わせて実装していた頃にはもう戻れませんね。RubyJavaからRSA公開鍵で暗号化したデータをRubyからRSA秘密鍵で復号するサンプル。3.0.6現象Varnishをコンパイル中に以下のエラーが発生。2原因readline-develがない。ApacheこれはApacheに関わらず、Vagrant共有ディレクトリにサービス起動に必要なファイルを配置している場合に発生する現象です。解決方法を考えてみましたが、起動スクリプトを変更するという微妙な方法になりました。どなたか良い解決方法をご存知なら教えていただきたいです。12:33広告を非表示にするもっと読むコメントを書く次のページプロフィールid:nori3tsu最近Bitcoin関連技術が気になってます。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。