タグ

ブックマーク / qiita.com (370)

  • Serverless Days Tokyo 2019 トヨタ自動車・ダイキン工業 事例覚書 - Qiita

    Serverless Days Tokyoに参加してきました。いずれも興味深い内容ばかりでしたが、ダイキン工業とトヨタのIoTシステムの中の話は、こういう機会でもなければ聞けない話でかなり貴重な話を聞けた感がありました。 その内容をメモったので残しておきます。 入り口の様子。 会場の様子。休みの日の朝9時からというのに、ほぼ満席な感じでした。 ダイキン工業:空調設備向けIoTシステムにおけるランニングコスト ダイキン工業は、全世界の空調機(エアコン等)をインターネットに繋いで、販売、運用、保守、施工に対するサービスを提供する。 システム名は「Daikin Global Network(ダイキン・グローバルネットワーク)」 想定接続台数は500万台。各空調機が1分ごとにデータをサーバーにあげる。 想定ユーザー数は30万人。 無限に発生するデータを格納できるストレージが必要。 断固としてデータ

    Serverless Days Tokyo 2019 トヨタ自動車・ダイキン工業 事例覚書 - Qiita
    mak_in
    mak_in 2019/10/23
  • CQSとCQRSの違いはメソッドの分離かモデルの分離かという観点 - Qiita

    この記事について 先日 DDD-Community-Jp の DDD Talk MeetUp #2 というイベントでトーク枠にて参加させて頂き Flyweight DDD というアーキテクチャスタイルの提案とする一つのスライドを発表させて頂きました。 https://speakerdeck.com/hirodragon112/ddddao-ru-nita-miqie-renaifang-hezeng-ru-2ceng-plus-cqs-akitekutiya-flyweight-ddd ただ、稿はこのスライドの「内容」とは全く関係ありません。 稿で取り上げたいのはこのタイトルに登場している CQSという単語についてです。 このスライドをきっかけにCQSとCQRSの違いについて自分なりに思考の整理を記載したいと思います。 CQS ? CQRS ? きっかけは twitter にて @j5

    CQSとCQRSの違いはメソッドの分離かモデルの分離かという観点 - Qiita
    mak_in
    mak_in 2019/09/12
  • 【forが嫌い!可読性を上げたい!】楽するために学ぶ配列の高階関数(map, filter, reduce等) - Qiita

    【forが嫌い!可読性を上げたい!】楽するために学ぶ配列の高階関数(map, filter, reduce等)JavaScriptリーダブルコード高階関数 複雑すぎるforの処理に悩まされたことはありませんか? プログラミング習いたての頃、forに悩まされた記憶はありませんか? また、業務で複雑すぎるfor文を見て、これくらい理解できないとやっていけないのか…と悩んだ記憶はありませんか? 実はそのfor…もっと読みやすい書き方が出来て、簡単に読めるとしたら楽じゃないですか? いやいや、単にもっと楽したくありませんか? 今回は個人的に「苦手なfor文」の書き換え(map, filter, reduce等)について、短くなるだけじゃないところを紹介したいと思います。 コードを読む事に神経をとがらせて疲弊したくない人には、オススメしています。(頭を使う労力が減ってると信じたい...) 記事につ

    【forが嫌い!可読性を上げたい!】楽するために学ぶ配列の高階関数(map, filter, reduce等) - Qiita
    mak_in
    mak_in 2019/08/28
  • TypeScript 3.7の`asserts x is T`型はどのように危険なのか - Qiita

    TypeScirptの動向を少し熱心に追っている方ならば、8月頭にAnders HejlsbergさんがTypeScriptリポジトリに次のプルリクエストを出したことは記憶に新しいでしょう。 Assertions in control flow analysis これはTypeScript 3.7で導入される予定の機能で、関数の返り値の型宣言においてasserts x is T (xは引数名でTは型)という構文を書くことが可能になるというものです。 この機能はたいへん面白いのですが、誤った使い方をするととても危険です。そこで、この記事では、assertsという新しい型述語1を正しく使いこなせるように皆さんをガイドします。 3行でまとめると assertsによる宣言はTypeScriptにより正しさがチェックされるわけではありません。 よって、assertsを使う場合安全性を保証する責任はコ

    TypeScript 3.7の`asserts x is T`型はどのように危険なのか - Qiita
    mak_in
    mak_in 2019/08/28
  • レガシープロジェクトを引き継いだ時、最初にするべき7つのこと - Qiita

    営業一課で使っている PHPアプリを保守してくれないかな? ○○さんが1人で作ってメンテしてたやつなんだけど 皆さんは上司からこんな仕事を振られたことはないでしょうか?私は過去に何度か経験した1のですが、こういった仕事はなぜか: 正確な仕様を知っている人はいない(知ってた人は辞めた) テスト計画書・デプロイ手順書・仕様書といったドキュメントは無い ソースコードはもちろんスパゲッティ でも、業務ではガッツリ使われているので廃止できない というレガシープロジェクトばかりでした。この記事では、レガシープロジェクトを引き継いでしまった時に、最初に何をするべきか書いていきたいと思います。 なお、ここで最悪なのは「とりあえず、緊急の不具合から直してしまおう」と、いきなりコードの修正にかかることです。 ※おことわり: この記事では「遵法的な職場の」「PHPRailsで書かれた」「社員25人が使う」「業

    レガシープロジェクトを引き継いだ時、最初にするべき7つのこと - Qiita
    mak_in
    mak_in 2019/05/24
  • GitHubで使われている実用英語コメント集

    この記事はリクルートライフスタイル Advent Calendar 2015 - Qiita の17日目です。 こんにちは。現在、ホットペッパーグルメのエンジニアをやっている敷地@shikicheeです。 git英語のコミットメッセージどう書けばいいの? と思ったことはありませんか? 英語で書きたいなーって思っても、いざ書くとなると躊躇しますよね。 ネイティブはどう書いてるのでしょうか。 そこで、github上で実際に使われているコメントを解析し、 よく使われている例をまとめてみました。 解析したデータ github上で1万スター以上を獲得している169リポジトリのコミットメッセージを対象としました。 bootstrap、jquery、react、d3、docker、node、tensorflowなどの有名なプロジェクトばかりなので、良いコメントが期待できます。 解析するコミットメッセー

    GitHubで使われている実用英語コメント集
    mak_in
    mak_in 2019/05/13
  • 線形代数を学ぶ理由 - Qiita

    はじめに 少し前(2019年4月頃)に、「AI人材」という言葉がニュースを賑わせていました。「現在流行っているディープラーニングその他を使いこなせる人材」くらいの意味だと思いますが、こういうバズワードの例の漏れず、人によって意味が異なるようです。併せて「AI人材のために線形代数の教育をどうするか」ということも話題になっています。 線形代数という学問は、来は極めて広く、かつ強力な分野ですが、とりあえずは「行列とベクトルの性質を調べる学問」と思っておけば良いです。理工系の大学生は、まず基礎解析とともに線形代数を学ぶと思います。そして、何に使うのかわからないまま「固有値」や「行列式」などの概念が出てきて、例えば試験で3行3列の行列の固有値、固有ベクトルを求め、4行4列の行列の行列式を求めたりしてイヤになって、そのまま身につかずに卒業してしまい、後で必要になって後悔する人が出てきたりします(例え

    線形代数を学ぶ理由 - Qiita
    mak_in
    mak_in 2019/05/09
  • C# パフォーマンス改善に使える新しめの機能たち 7.0〜 - Qiita

    時代に合わせてバージョンアップを続け、モダンな言語もまだまだ彼の背中を追っている部分があると噂されたりしている言語、C#。 現状の利用シーンとして割と大きいめの Unity (ゲームエンジン) では、使えるC#のバージョンがぐいぐいっと上がりはじめて以降、そこそこ新しい書き方も認知されてきているようです。 しかし、個人的に注目している C#の新機能は、ショートハンドや関数型言語由来の機能よりもむしろ、C#自体のパフォーマンスを改善するような文法や標準ライブラリたちです。 ーーパフォーマンスを改善する言語機能って一体なんのことでしょう。 「C# なんて、ランタイムが勝手にJITで最適化した機械語にして走らせてくれるわけで、Unityの場合はc++トランスパイルされるわけで、べつにプログラマがミクロなチューニングとか意識しなくても、夜、寝る前とかに祈ったり寄付とかをしていれば、ランタイムをつ

    C# パフォーマンス改善に使える新しめの機能たち 7.0〜 - Qiita
    mak_in
    mak_in 2019/04/10
  • 世の中のエンジニアのalias設定 - Qiita

    先日、同僚と「世の中のエンジニアはターミナルにどんなalias設定をしているんだろう?」という談義になったので、GitHub上の1000リポジトリのコードから調査してみました。 2019/04/10 コメントを元に微修正しました。コメントくださった方々、ありがとうございます。 2019/04/11 こんなのも書いてみました。 よく使われているvimrcの設定ランキング 2019/04/15 プラグイン版も書きました。よく使われているvimのプラグイン top20 aliasとは wikipediaより UNIXなどにおいてコマンドを別名で登録したもの。別名を登録するコマンド名。 長いコマンドやいつも利用するオプションを毎回入力するのは手間ですよね? ターミナルの設定ファイルにaliasを記述することで、別名として定義することが可能というわけです。 調査方法 GitHub APIを利用 do

    世の中のエンジニアのalias設定 - Qiita
    mak_in
    mak_in 2019/04/10
  • 新元号 令和(れいわ)の文字コードについて - Qiita

    「令」の文字コードに関して 2019年4月1日、新元号「令和(れいわ)」が発表された。 しかし、「令」という字体を表すUnicodeは2つあるため、詳細をまとめる。 結論 元号に通常使用される、使用すべきなのは「U+4EE4」であり、基的に日フォントに存在するのも「U+4EE4」である。 「U+F9A8」は、韓国語の等音法則に起因する文字である(韓国の文字コード規格KS X 1001との往復変換を可能にするために追加された文字)。元号には、Unicodeへの収録意図からも使うべきではない。 システム構築上知っておくべきことであり、以下に当てはまる場合には注意する必要が出てくると思われる。 過度に神経質になることではないが、抑えておくべき情報と考える。 問題となりそうな状況 日以外の会社に外注、または最終的な下請けがある場合、U+F9A8を埋め込まれていないかの確認が必要 ブラウザな

    新元号 令和(れいわ)の文字コードについて - Qiita
    mak_in
    mak_in 2019/04/03
  • プルリクエストが最速でマージされるための7つの技 - Qiita

    わたしはOSSとして公開されているGitHubのリポジトリに貢献することがあるのですがいつも困っていることがあります。私がPRをオープンするとめっちゃコメントがついて、それを修正するのにすごく時間がかかることです。そういえば私の元同僚のピーターは生まれて初めて新しい言語で書いたPRですら一発でマージされていて驚いた覚えがあります。どうやったらプルリクエストが最速でマージされるのか?インターネットを調べても情報がなかったので、自分で調べてみることにしました。ちなみにこのポストは、私自身が書いたHow can you get your PR merged less than 10 comments?の日語版の記事です。 プルリクエストが最速でマージされるための7つの技は次の通り ガイドラインに従う 静的解析ツールを使う リポジトリのコードスタイルをそっくりまねる プルリクエストを小さくする

    プルリクエストが最速でマージされるための7つの技 - Qiita
    mak_in
    mak_in 2019/04/03
  • SSHの公開鍵認証における良くある誤解の話 - Qiita

    はじめに 背景 これを知っていたからと言って何かの役に立つかというと、そうでない人の方が多いとは思うのですが、いい加減、SSHの公開鍵認証の説明がデマばかりなので、少しはちゃんとした説明もあった方が良いかもな、ということで記事にしました。 SSHについて 皆さんご存知の通り、SSHはSecureSHellの略であり、暗号によって保護された通信を通じて遠隔操作を行う1アプリケーション、またはプロトコル2を指します。 Linux等のUNIX系OSの遠隔操作3、またはネットワーク機器の管理に広く使われており、その実装としてはOpenSSHが有名です。 ところでSSHには、接続してきたユーザが誰なのかを識別する認証機能があり、その方式としてパスワード認証と並んで最もメジャーなのが公開鍵暗号を用いる公開鍵認証です。4 しかし…。残念なことに、公開鍵認証の設定や使い方はともかくとして、その仕組みに対す

    SSHの公開鍵認証における良くある誤解の話 - Qiita
    mak_in
    mak_in 2019/04/03
  • Gitはどうやってテキストファイルとバイナリファイルを自動識別しているのか? - Qiita

    tl;dr 先頭 8000 バイト以内に NUL が有ったらバイナリファイル。 Gitの実装 Gitの内蔵diffは FIRST_FEW_BYTES だけ検索するようになっている。 https://github.com/git/git/blob/6e0cc6776106079ed4efa0cc9abace4107657abf/xdiff-interface.c#L187 #define FIRST_FEW_BYTES 8000 int buffer_is_binary(const char *ptr, unsigned long size) { if (FIRST_FEW_BYTES < size) size = FIRST_FEW_BYTES; return !!memchr(ptr, 0, size); }

    Gitはどうやってテキストファイルとバイナリファイルを自動識別しているのか? - Qiita
    mak_in
    mak_in 2019/03/31
  • 4つのauto、4つのC++規格 - Qiita

    template <auto N> auto func(auto x) { auto r = N + x; return r; } // 呼出し例 assert( func<1>(0.5) == 1.5 ); この記事では、C++言語仕様改定により導入された各autoキーワードの役割を説明します。同時に、該当用法が存在しなかった時代でもコンパイル可能なソースコードへの書換えも行います。 C++20時代 C++20では 関数パラメータ型にautoを書ける ようになります。これはC++言語仕様へのコンセプト(Concept)導入とともに追加された、関数テンプレート定義の短縮記法 です。

    4つのauto、4つのC++規格 - Qiita
    mak_in
    mak_in 2019/03/24
  • 【まとめ2019/3】量子コンピュータと量子アニーリングの現時点まとめ - Qiita

    はじめに (注)ちょっと前の記事です。 量子コンピュータは難しそうとか、難しいことをやってそうとか思いますが、現在のマシンはそこまででもありません。情報が錯綜しているので、一回量子アニーリングや量子ゲートのアルゴリズムに関してまとめてみます。量子ゲート方式の量子コンピュータがどうとか、量子アニーリングがどうとかいう議論もありますが、僕は両方やっているのでその辺りも包括的にまとめてみたいと思います。 個人的な見解も多少入ってますが、読めば最新動向がある程度理解できるとは思います。2019年3月時点でのまとめです。適宜読み飛ばしながら見てもらえればと思います。 まずは簡単な概要とそれから量子ゲートの変分回路におけるNISQアルゴリズムの概要を把握して、今後の量子コンピュータの展開を予測するのが最終的な目標です。 量子コンピュータの二方式? 量子コンピュータには量子アニーリングマシンと量子ゲート

    【まとめ2019/3】量子コンピュータと量子アニーリングの現時点まとめ - Qiita
    mak_in
    mak_in 2019/03/08
  • Javaのパッケージ名の命名には2019年でも所持ドメインの逆順を使うべきなのか調べた - Qiita

    発端 Java6までは言語仕様の中に命名規約の章があったけどJava7からはなくなった。あとパッケージ名もドメイン名逆順にしろというのが、ローカルでの利用を意図してるなら単一の識別子だけでいいということになった。そのころからlombokみたいにプロダクト名だけのパッケージ名を見るようになった気がする — きしだൠ (@kis) 2019年1月22日 今までjavaパッケージの命名はドメイン名の逆順というのが通例だと思っていたが、たしかにそれに沿わないライブラリも特にScala系のライブラリで見ることが増えてきた。 そもそもこの命名規則は確かに衝突を避けるためには合理的ではあるもののコード中の記述量が増えるため後発の言語でもまったく真似されていない。 最近のJavaでより短いパッケージの命名が許容されるならとても嬉しいと思い、当にJavaのFQDN逆順命名規約は無視していいのか調べた。 調

    Javaのパッケージ名の命名には2019年でも所持ドメインの逆順を使うべきなのか調べた - Qiita
    mak_in
    mak_in 2019/03/05
  • [ver 1.2] Git でよく使われるコマンドにイラストによる説明を加えて1枚のチートシートにまとめてみた - Qiita

    題のチートシートはこちら PNG SVG https://d.kuku.lu/6b5cc7b0a9 から DL できます 作った理由 git って他人に概念を説明するのって難しいし、自身も何度も反復させないと定着しなかったなあという感覚を持っていたので作ってみました 所感 こちらの Git チートシートですが、この中に盛り込めなかった内容で 第2段 を作成しようか考え中です 皆さまのオススメの便利コマンドとか、この内容は必須だろ!的なものがあればをご教示いただければ幸いです もし誤りがあれば、作者の心が折れない程度にご指摘いただければ幸いです あとがき ここまで反響を頂けるとは思っておらず、嬉しい限りです・・・当にありがとうございます・・・!! また、図は全て自作です。図における言語は英語、説明は日語、と言う形に統一しました。(吹き出し部分だけ日語になっていたのでこちらは修正しまし

    [ver 1.2] Git でよく使われるコマンドにイラストによる説明を加えて1枚のチートシートにまとめてみた - Qiita
    mak_in
    mak_in 2019/03/04
  • TypeScriptの型演習 - Qiita

    この記事は、TypeScriptの型を使いこなすための演習として、TypeScriptの型に関する練習問題を提供する記事です。解いて自分のTypeScript力を確かめてみましょう。 問題のレベルは、筆者の既存記事「TypeScriptの型入門」「TypeScriptの型初級」を完全に理解した人なら全部解けるという想定で作られています。記事を読んでいない人が腕試しに解いてみるのも問題ありません。また、記事を読んだけど全部は理解していないという場合でもご安心ください。解ける問題はありますから、ぜひ挑戦してみましょう。 問題は20問あり、4段階の難易度別に分かれています。同じ難易度帯の問題は思いついた順で並んでいるので、後のほうが難しいわけではありません。問題は執筆時点の最新版のTypeScriptTypeScript 3.3.3333)で--strictオプションありの状態で動作を確認して

    TypeScriptの型演習 - Qiita
    mak_in
    mak_in 2019/02/25
  • なんでもかんでも「バグ」ってひとくくりにしないで - Qiita

    はじめに プログラマがソフトウェアを作るとユーザがつきます。ユーザがそのソフトウェアを使っていて何らかの問題が発生すると「このソフトはバグってる、直して!」と言われることがままあります。それに対して「いや、仕様だから」と突っぱねられることがあります。その後お互いの意見が「バグだ!」「いいや仕様だ!」と平行線になってお互いモヤモヤのまま終わるというのはよくある話です。 なぜこういうことが起きるかというと、原因の一つは「問題」イコール「バグ」という短絡的な考え方です。とくにソフトウェアを作ったり使ったりした経験が浅い人がこうなる傾向があると推測しています。このようない違いは「要件」「仕様」と「実装」という言葉の意味を理解していればある程度解決できます。書はこれらの用語について実例を挙げて簡単に紹介します。 注意点 記事では要件や仕様を定義することが前提となっていますが、とくにユーザと開発

    なんでもかんでも「バグ」ってひとくくりにしないで - Qiita
    mak_in
    mak_in 2019/02/25
    要件バグ、仕様バグ、プログラムバグ、で良いじゃん
  • tsconfig 日本語訳 - Qiita

    探したけど、そのまま使えるものが、案外なかった。tsc --initで作成したものを機械翻訳。3.0.3。 { "compilerOptions": { /* 基オプション */ "target": "es5", /* ECMAScriptのターゲットバージョンを指定します: 'ES3'(デフォルト), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018'または 'ESNEXT' */ "module": "commonjs", /* モジュールコード生成: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015',または 'ESNext'を指定します。 */ // "lib": [], /* コンパイルに含めるライブラリファイルを指定します。 */ // "allowJs": true, /* jav

    tsconfig 日本語訳 - Qiita
    mak_in
    mak_in 2019/01/30