タグ

2019年12月15日のブックマーク (17件)

  • クリーンアーキテクチャのUsecaseはなぜControllerへ値を返すのではなくOutput PortとしてPresenterを呼び出すのか - Runner in the High

    何を言っているのかと言うと、みんな大好きクリーンアーキテクチャの右下に図示されているFlow of Controlのこと。 黒線が引かれているということは、つまりUsecaseの中でOutput Portのインターフェイスを持つPresenterの関数なりが最終的に実行されるということである。 ここで湧き上がってくる疑念は「UsecaseがPresenterを呼び出さなくてもControllerに返り値とかで値を返して、Controller経由でPresenterに渡して実行しても同じなんじゃないの?」である。つまりOutput Portというインターフェイスそのものを撤廃してControllerにPresenterを使わせるアイデアである。たしかに、仮にこの方針で行ったとしても依存の方向が壊されることはない。 Software Engineeringでは同様の質問がかなり盛り上がっている

    クリーンアーキテクチャのUsecaseはなぜControllerへ値を返すのではなくOutput PortとしてPresenterを呼び出すのか - Runner in the High
  • 法令APIを利用したリサーチツールを自作してみた【SmartRoppo】 - Qiita

    1. はじめに 2. リーガルテックっぽいプロダクトを作ってみた 3. SmartRoppoのコンセプト 4. SmartRoppoの主な機能・特長 5. なぜ自分で作ろうと思ったのか? 6. 今後の課題 7. おわりに 1. はじめに この記事は、じゃんく(@jank_2525)さんからバトンを受け継ぎ、「法務系 Advent Calendar 20191」の14日目エントリーとして執筆しています。 皆さんのエントリー、どれも個性あふれる素敵な内容で、毎日大変興味深く拝見しています。 2. リーガルテックっぽいプロダクトを作ってみた さて、突然ですが、リーガルテック的なプロダクトを作ってみたので、このエントリーをもってβ版を公開させていただきます。【SmartRoppo】といいます。 SmartRoppo -法令データベースを、もっと賢く- https://smartroppo.com/

    法令APIを利用したリサーチツールを自作してみた【SmartRoppo】 - Qiita
  • 新規Webサービスを独りで開発・運用する際に立ちはだかった壁とそれを乗り越えた方法まとめ【個人開発】 - Qiita

    その1. そもそもアイデアが思い浮かばない 遭遇確率 :★★★★☆ どんな壁?:いざWebサービスを作ろうとしても何もアイデアが思い浮かばない 解決策:身近な課題をひたすら探す サービスを作る上では何かを解決する系のアイデアであり、かつ自分が当事者であるとモチベーションも続きやすいです。 自分が普段ネットを使っていて不便だと思うこと、今使っているサービスの不満点、などなんでも良いのでとりあえず書き出してみましょう。 大体この中に自分の技術力でも解決できるような課題が存在します。 もし自分の中での課題が見つからないという場合は、日々Twitterのタイムラインで流れてくる身近な人が抱えている課題をピックアップしてアイデア化するのもありです。 回避策:しょぼいアイデアでも日々書き残していく いざサービスを作るというときにアイデアも出ないし身近な課題すら見つからない場合は、普段からアイデアを無理

    新規Webサービスを独りで開発・運用する際に立ちはだかった壁とそれを乗り越えた方法まとめ【個人開発】 - Qiita
  • 賢く「散らす」ための Topology Spread Constraints #k8sjp / Kubernetes Meetup Tokyo 25th

    Kubernetes Meetup Tokyo #25 で使用したスライドです。 Kubernetes において、Pod を分散させる基単位は Node です。しかし現実には複数の Node に Pod が分散している状況であっても、それらの Node が同じ Availability Zone…

    賢く「散らす」ための Topology Spread Constraints #k8sjp / Kubernetes Meetup Tokyo 25th
    mapk0y
    mapk0y 2019/12/15
  • 単一 Playbook のすすめ - Qiita

    はじめに この記事はAnsible Advent Calendar 2019の4日目の記事です。 Ansible を始めた5年くらい前は一生懸命冪等性の高い共通ロールを書くことに注力してたけど、最近は単一の仕事をする Playbook を推してる、という話をします。 role ≈(Macのニアイコールってこれなの?≒とは違うの?) Playbook って便利だよって話です。それな!って思う人は以下読まなくても大丈夫。あと role 至上主義の人も読まなくて大丈夫w 共通ロール みんな大好き Ansible Galaxy ですが、帯に短し襷に長し、ということはよくあります。 自作の非公開roleを作ってるところも多いと思います。 結果的に、inventory や vars 等を駆使して、ぱっと見どこで何が起きてるのかはよくわかんないけど、Playbook になってるから大丈夫でしょ、みたいな

    単一 Playbook のすすめ - Qiita
    mapk0y
    mapk0y 2019/12/15
    おまけの例で role ではなく import_playbook である理由がよくわかってない
  • Linux procfs 徹底入門

    これは Linux Advent Calendar 2019の 15 日目の記事です。procfs について勉強したことをまとめます。 検証環境CentOS 8 を利用する。 ]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) ]# uname -a Linux localhost.localdomain 4.18.0-80.el8.x86_64 #1 SMP Tue Jun 4 09:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux procfs とは疑似ファイルシステムのひとつ。 ディスク上に実体は存在せず、メモリから情報を取得する。 カーネルだけが知っている情報 (例えばシステム全体のロードアベレージ/CPU負荷/メモリ利用状況や、プロセスごとの情報)が取得できる。

    Linux procfs 徹底入門
    mapk0y
    mapk0y 2019/12/15
  • 書斎を明け渡すことになったのでクローゼットの中にオフィスを作った|Nobuki Inoue

    私はソフトウェア開発の仕事をしております。自宅で作業することも多いので書斎を持っていましたが、自分の部屋が欲しいと言う子どもたちに譲りました。 次の作業場所として目をつけたのが、普段使わないものが入っているクローゼットです。片付け&断捨離で1250x850という1畳未満のスペースを確保し、そこに新しいオフィスを作りました。 同じように書斎を失った方の参考になればと言うのは建前で、素敵な環境が出来たので自慢させてください! コンセプト狭くても快適な空間にする ケーブルは可能な限り隠す クローゼットの中と思えないようにする 既製品だと狭いスペースを活かせないならDIYで頑張る では早速作業手順を紹介していきます。 ハンガーポールを外すクローゼット感を消すためにハンガーポール取り外します。後々取り付ける事も考えて丁寧にしまってあります。 壁紙を貼るクローゼットや押入れはほとんどの場合は壁紙が貼ら

    書斎を明け渡すことになったのでクローゼットの中にオフィスを作った|Nobuki Inoue
  • …Outlookの送信メールが……消えた…?(12/24改修されたよ) - Qiita

    はじめに Leverages Advent Calendar 10日目担当の ham です。 今が 12月12日だということは気にしてはいけません。代打です。 Leverages で、セキュリティの責任者としてセキュリティ意識の啓蒙や全社に関わるシステムの改善をしています。 また、前職では、SOC、NOC、BGPの運用などを行っていました。 最近メールについて不可解な問い合わせが増えてきたので、調べたことをまとめます。 追記(2019年12月24日 17:10) 日 16時頃に Outlookサポートから不具合を改修した旨の連絡が来ました。 私もテストを実施し、Outlook から送信した Re: 【hoge】【fuga】 のメールが Gmail に届くことを確認しました。 メリークリスマス! 追記(2019年12月15日 21:40) 反響の大きさにびっくりしています。茶渡の霊圧を消し

    …Outlookの送信メールが……消えた…?(12/24改修されたよ) - Qiita
  • CとRustで一から作るマイクロカーネルOS

    マイクロカーネルは浪漫に溢れる非常に作りがいのあるソフトウェアです。この記事は,「マイクロカーネルベースのOSの一から作ってIaaSで動かす」ことを目標に作ったマイクロカーネルベースのOS Resea(りーせあ)の設計と実装について軽くまとめた物です。 ソースコードはGitHubにあります。 マイクロカーネルとは Linuxのようなモノリシックカーネルでは色んな機能がカーネル空間で動きますが,マイクロカーネルではユーザプロセスたちが互いに通信しながらOSを作り上げます。プロセス・スレッド・仮想メモリ管理,プロセス間通信,タイマーといった必要最低限の機能だけをカーネルが担います。デバイスドライバやファイルシステムといった残りの機能は,独立したユーザプロセスとして動きます。たとえデバイスドライバが暴走しても他のコンポーネントを壊すことはないのです。マイクロカーネルは信頼性が高く,疎結合で美しい

    CとRustで一から作るマイクロカーネルOS
  • terraform のディレクトリとワークスペースとステートについて - Qiita

    要はディレクトリを分けるか、ワークスペースを使うか、の2軸 モジュール(外部にしても内部にしても)を使うのは当然なので議論しない。 ステートの数は、中に何個のリソースが含まれているか、を考える目安に。体感的に200を超えるリソースが入っているステートは重い(parallelismで調整できるけど)。 各戦略の概要とメリデメ まず、ワークスペースのデメリットは、 初学者の学習コストと操作ミスへの対応負担 操作が煩雑(現在のワークスペースの確認や変更が必要になる。操作ミスを誘発しやすいといえる) 変数設定部分が読みにくい(mapが多用される。多段mapを読み解くのは手間) 部分的な変更に弱い(一部のワークスペースだけ別の形にしたいなどの要件に弱い) の4点であり、これだけで一般的なWeb系インフラ構築には向いていない。 というか、今後ワークスペースの是非については議論の余地なく破棄でよい。異論

    terraform のディレクトリとワークスペースとステートについて - Qiita
  • ストレージオーケストレーターRookへのサイボウズのコミット方針 - Cybozu Inside Out | サイボウズエンジニアのブログ

    はじめに こんにちは、Necoプロジェクトのsatです。 NecoではKubernetes上のアプリケーションが使うストレージをCephによって提供すること、およびCephクラスタの管理にKubernetes上で動作するストレージオーケストレーターRookを使うことを決めています。記事はNecoがなぜRook/Cephを選択したのか、Rookに対する現在のコミット状況、および今後のコミット方針について紹介します。 CephやRookがどういうものなのかについては以下の記事をごらんください。 blog.cybozu.io blog.cybozu.io なぜRook/Cephなのか まずはNecoがなぜストレージをRook/Cephによって提供することにしたのかを簡単に書いておきます。 Ceph Necoで提供するストレージには、既存のインフラで苦労した点を無くす、あるいは軽減するために次の

    ストレージオーケストレーターRookへのサイボウズのコミット方針 - Cybozu Inside Out | サイボウズエンジニアのブログ
    mapk0y
    mapk0y 2019/12/15
    強い
  • Outer Worldsでコンパニオンが死んでいないのに死亡したと認識されるバグ

    https://twitter.com/_taylorswope/status/1205252714680045568 今日、#TheOuterWorldsのパッチ1.2をリリースした。これには「ゲームがコンパニオンを死んだとみなす」バグの修正も含まれている。このバグは俺のキャリアで最も長い時間を費やしたデバッグ作業となった。 このバグの概要は、一部のプレイヤーで、コンパニオンクエストが失敗とクエストログにでる。その理由はコンパニオンが死んだからだ。しかし字祭にはコンパニオンは死んでいないにもかかわらずだ。 これは解せないもので、というのも超新星モードでもなければ、コンパニオンは死なないからだ。 リリース前に1度か2度だけこの問題が発生したが、QAチームは再現できなかったので、その原因を特定することはできなかった。 原因の特定が困難だった理由は、どこで問題が発生しているかわからなかったこと

    mapk0y
    mapk0y 2019/12/15
  • 今さら聞けないTreasure Workflow - Qiita

    始めに 記事ではTreasure Workflow(以後Workflow)における用語について説明します。 なんとなく使っていたけどよくわかっていない人や、使っていて何がなんだかわからなくなった人は読んでいただけますと幸いです。 Workflow と Digdagって何が違うの? 題に入る前に、WorkflowとDigdagの違いについて簡単に説明します。 DigdagはOSSのワークフローエンジンです。動作環境は自前で用意する必要があり、当然自分たちで運用しなければいけません。代わりに設定は自由にできますし、任意のタイミングでメンテナンス・バージョンアップなども可能です。 Workflowは簡単に言ってしまえばDigdagをTreasure Data(以下TD)がホストしているサービスです。作成したworkflowはTreasure Dataが運用しているサーバー上で動作するため、O

    今さら聞けないTreasure Workflow - Qiita
  • Digdagで大きいパラメータを登録すると後続の処理が重くなる - Qiita

    この記事はZOZOテクノロジーズ #5 Advent Calendar 2019 7日目の記事になります。 また、今年は全部で5つのAdvent Calendarが公開されています。 ZOZOテクノロジーズ #1 Advent Calendar 2019 ZOZOテクノロジーズ #2 Advent Calendar 2019 ZOZOテクノロジーズ #3 Advent Calendar 2019 ZOZOテクノロジーズ #4 Advent Calendar 2019 概要 Digdagのstoreパラメータに大きな値を入れたときに後続のジョブがすべて遅くなってしまうと言うことがあったので紹介します。 考えてみれば大きな値を毎回DBから取り出してDigdag側でパース等しているので重くなるのは当たり前なのですが。 そこで今回は実際にどんな感じで遅くなるのかを紹介します。また、その回方法を紹介

    Digdagで大きいパラメータを登録すると後続の処理が重くなる - Qiita
  • 任意のJDBCドライバが使えるDigdagプラグインを作ろうとした話 - Qiita

    この記事はZOZOテクノロジーズ #5 Advent Calendar 2019 8日目の記事になります。 また、今年は全部で5つのAdvent Calendarが公開されています。 ZOZOテクノロジーズ #1 Advent Calendar 2019 ZOZOテクノロジーズ #2 Advent Calendar 2019 ZOZOテクノロジーズ #3 Advent Calendar 2019 ZOZOテクノロジーズ #4 Advent Calendar 2019 概要 DigdagのDBプラグインとしてPostgreSQLMySQLが存在します。しかし使いたいDB(今回はPureData)に対応しているプラグインがありませんでした。 そこでJDBCドライバーさえあれば使えるdigdag-myjdbcというプラグインを作ろうとしたので紹介します。 なぜ名前をmyjdbcにしたかと言うと

    任意のJDBCドライバが使えるDigdagプラグインを作ろうとした話 - Qiita
  • Embulk でASCII 0 encountered エラーの回避方法 と Digdagと組み合わせてファイル名を取得する方法 - Qiita

    はじめに 最近、お客さんからもらったデータを Bigquery など Embulk を使い始めました。 今回はその際に特に困った2つの問題の解決方法のお話を書こうかなと思います。 Embuk ってなに? 公式によると Embulk とは Embulk is a open-source bulk data loader that helps data transfer between various databases, storages, file formats, and cloud services. だそうです。 簡単に言うと、INPUT元からデータを取り込み、OUTPUT先へデータを転送するデータローダーです。 Fluentd をご存知の人はイメージしやすいと思いますが、 Fluentd と同じく 取り込み元や転送先に合わせた plugin が各種用意されていて、そのプラグインを使

    Embulk でASCII 0 encountered エラーの回避方法 と Digdagと組み合わせてファイル名を取得する方法 - Qiita
  • 使われていないDigdagワーカーのEC2を自動でTerminateする - Qiita

    この記事はZOZOテクノロジーズ #5 Advent Calendar 2019 9日目の記事になります。 また、今年は全部で5つのAdvent Calendarが公開されています。 ZOZOテクノロジーズ #1 Advent Calendar 2019 ZOZOテクノロジーズ #2 Advent Calendar 2019 ZOZOテクノロジーズ #3 Advent Calendar 2019 ZOZOテクノロジーズ #4 Advent Calendar 2019 概要 Digdagのクラスタを、EC2インスタンスで組む場合ワーカーをオートスケーリンググループに含めることでプログラムから任意の個数のDigdagワーカーを立ち上げることができます。その辺の構成については以下の記事に詳しく載っています。 ここで問題になるのが、Digdagワーカーのスケールインのタイミングです。ワークフローの

    使われていないDigdagワーカーのEC2を自動でTerminateする - Qiita