タグ

2020年5月6日のブックマーク (250件)

  • AWS におけるマルチアカウント構成の動向 - 理系学生日記

    AWS で環境を構築する際はマルチアカウントになることが多い、これは理解していたつもりでした。 stg 環境と prod 環境は AWS アカウントごと分ける。dev 環境も分ける。 しかし、世の中のベストプラクティスはもっと先を行っていました。 なぜアカウントを分けるのか isolation authz & authn auditing and reporting 世の中のマルチアカウント構成 各企業の事例 AWS が提供するベストプラクティス Gruntwork から見た AWS ベストプラクティス 各社のプラクティスから読み取れること なぜアカウントを分けるのか AWS アカウントを分ける理由は 3 つあります。 isolation authz & anthn auditing and reporting isolation そもそもとして、環境は分離しないと、というものです。 st

    AWS におけるマルチアカウント構成の動向 - 理系学生日記
  • 1段上のCSS設計・コーディングの概念図(HCDCモデル図) - Qiita

  • Webフロントエンドエンジニアにやさしいデザインファイルの作り方 - Qiita

  • できる!じっくり着実、テストプロセス・モダナイゼーションガイド - Qiita

    はじめましてこんにちは。 みなさんの開発環境におけるテスト環境はどんな感じでしょうか? TDDで実装し、UTおよびE2EがCIで回り、DXかくあるべしと鼻高々で、 そうでない環境は人権侵害であると思っている環境でしょうか? それとも、こんなんじゃだめだよくないと思いつつ、 テストをプログラマまかせにしている環境でしょうか? この記事は後者の環境で 現実に立ち向かい、現実を変えたいと思い、 しかし多くの課題を抱え立ちすくんでしまっている有志への応援歌です。 お前誰? 某SIerで14年目が終わろうとしているエンジニア兼マネージャです。 僕の開発現場は、強力な営業力をもつ現会長が起こしたコンピュータ機器商社で、 20年くらい前から開発部門を自社内に作った、そういう環境です。 エンジニアリングに優れているか、技術的知見が豊富かどうかというよりも、 顧客営業力があるか、納期遵守力があるかどうかが評

    できる!じっくり着実、テストプロセス・モダナイゼーションガイド - Qiita
  • TCP/IPをわかりやすく - 通信プロトコルの基礎知識を図解で学ぼう|ハイクラス転職・求人情報サイト AMBI(アンビ)

    TCP/IPをわかりやすく - 通信プロトコルの基礎知識を図解で学ぼう 現在のインターネットを支える技術であるTCP/IPについて、基礎となるプロトコル群と、TCPの基機能を丸田一輝さん、 中山悠さんに解説していただきました。 今からおよそ50年前、パケット交換方式による世界初のコンピュータネットワークであるARPANETが構築されました。それ以来、TCP/IP(Transmission Control Protocol / Internet Protocol)は通信を実現する基盤技術として使われ続けています。今ではパソコンに限らず、スマートフォンやゲーム機、センサー、最近では自動車など、無線通信機能を持ったさまざまな端末も含めコンピュータネットワークは構成されています。 その中でも「通信の信頼性を確保する」役割を担っているTCPは、その性質上、多くの機能を備えています。加えて、時代とと

    TCP/IPをわかりやすく - 通信プロトコルの基礎知識を図解で学ぼう|ハイクラス転職・求人情報サイト AMBI(アンビ)
  • グローバルゲームジャムでクラス設計をやった話2020 - Qiita

    はじめに 毎年恒例のグローバルゲームジャム。今回も参加してきたのでそのまとめを書きます。 2016 -> グローバルゲームジャムでクラス設計をやったらスムーズに開発が進んだ話 2017 -> グローバルゲームジャムでクラス設計をやった話2017 2019 -> グローバルゲームジャムでクラス設計をやった話2019 グローバルゲームジャムとは GGJとは全世界同時に行われるゲームジャムのことです。ようするに、世界規模のゲーム開発ハッカソンです。 プログラマ、デザイナ、プランナ、グラフィッカなどさまざまな役職の人をごちゃまぜに、3~8人程度のチームを組み、48時間でゲームを作ろうというイベントです。(前回のコピペ)(前回のコピペ)(前回のコピペ) 今回も「ヒューマンアカデミー秋葉原会場」に参加しました。 ゲームの概要 今年のテーマ 今年のテーマは「REPAIR」でした。シンプルにわかりやすいテ

    グローバルゲームジャムでクラス設計をやった話2020 - Qiita
  • FFT(高速フーリエ変換)を完全に理解する話 - Qiita

    となります。 この $C_i$ を、$0\leq i\leq 2N$ を満たすすべての $i$ について求めるのが今回の目標です。 それぞれ愚直に求めると、$f,g$ の全項を組み合わせて参照することになるので、 $O(N^2)$ です。これをどうにかして高速化します。 多項式補間 愚直な乗算は難しそうなので、$C_i$ の値を、多項式補間を用いて算出することを考えます。 多項式補間とは、多項式の変数に実際にいくつかの値を代入し、多項式を計算した値から、多項式の係数を決定する手法です。 たとえば、$f(x)=ax+b$ という $1$ 次関数があるとします。 $a$ と $b$ の値は分かりませんが、$f(3)=5,f(7)=-3$ がわかっているものとします。 実際に $3,7$ を代入してみると、 $3a+b=5$ $7a+b=-3$ と、連立方程式が立ち、$a,b$ の値が求められま

    FFT(高速フーリエ変換)を完全に理解する話 - Qiita
  • 良いコードの書き方 - Qiita

    概要 チームによる継続的開発を前提としたコーディングのガイドライン。 特定の言語を対象としたものではないが、主に静的型付けのオブジェクト指向言語を想定している。 サンプルコードは別段の定めがなければSwiftで記載。 ガイドラインの目的 生産性を高め、メンテナンスコストを下げる バグが生まれづらくする 開発メンバー(特に新規参加者)がコードを理解しやすくする 初心者プログラマー教育 内容の説明 タイトルの頭についた【数字】は重要度。 高いほどシステムに与える影響が大きいが、低いものの方が影響が小さく改修しやすいものが多い。 【5】変数のスコープを小さくする 変わり得る値は複雑さを生み誤解やバグに繋がるため、プログラムは変数が少ないほど問題が生まれづらい。 プログラミングの大原則として、変数は必要最低限を心がけ、むやみに増やさないようにする。 また、変数はスコープや寿命が大きいほど悪影響が

    良いコードの書き方 - Qiita
  • MySQL データベースの負荷対策/パフォーマンスチューニング備忘録 インデックスの基礎〜実践 - Qiita

    TL;DR この記事に書いた事 二分探索木のお話(前提知識) MySQLのInnoDBで利用されているB+木インデックスの構造と特性 (前提知識) MySQLのClusteredIndex,SecondaryIndexについて(前提知識) カーディナリティについて(前提知識) 実際の負荷対策 検出編 スロークエリ 検出編 その他のクエリ割り出しいろいろ クエリ・インデックスの最適化 explainの使い方と詳細 ケース別実践 単純にインデックスがあたっていないケース カーディナリティが低いインデックスが使われているケース 部分的にしかインデックス/複合インデックスがあたっていないケース 複合インデックスの順序誤りでインデックスが適用できていないケース 複合インデックスの最初がrange検索のケース ソートにインデックスが適用できていないケース ソートにインデックスが適用できていないケース(

    MySQL データベースの負荷対策/パフォーマンスチューニング備忘録 インデックスの基礎〜実践 - Qiita
  • ドメイン駆動設計の比類なきパワーでRailsレガシーコードなど大爆殺したるわあああ!!! - Qiita

    この記事は クラウドワークスアドベントカレンダー2019 12日目の記事です。 概要 こんにちは、怒り駆動リファクタリングを生業としている @MinoDriven です。 弊社リファクタリング専門チーム「バグハンター」で現在実施中のリファクタリング設計について紹介致します。 ドメイン駆動設計 を用い、Railsレガシーコードに対しViewとControllerを ActiveRecord非依存 に変更する設計です。 状況 弊社ブログの過去エントリにあるように、弊社サービスcrowdworks.jpはサービスインから8年経過し、 30万行 を超えるモノリシックRailsアプリになっています。 開発生産性が低下してきています 。 生産性低下の課題を解決しようにも、大規模な上に複雑かつ密結合な構造になっており、 マイクロサービスへの移行も、リプレイスも困難な制約 があります。 そこで半年前にリフ

    ドメイン駆動設計の比類なきパワーでRailsレガシーコードなど大爆殺したるわあああ!!! - Qiita
  • エンジニアリングマネージャ/プロダクトマネージャのための知識体系と読書ガイド - Qiita

    記事は、Engineering Manager Advent Calenderの1日目です。 はじめに エンジニアリングマネージャ(EM)と呼ばれる職務を設置する企業が増えてきました。 私たちの主催したイベントEOF2019でも700名近い方に参加していだき、また多くの方にご協力いただき成功裏に終わることができました。 EM Meetup/EM.FMなどのムーブメントの中心の一翼を担わせていただき、その高まりを感じる一方で不安も感じます。このエンジニアリングマネージャという職務は非常に多岐にわたるケースが存在していますし、必要だとされるスキルもまちまちです。そして、多くの場合、その企業のステージや状況ごとに求めるものは違います。また、求めていることを明文化することすらされていないケースも存在します。 このことから、エンジニアリングマネージメント自体が一時的な潮流として消費され、消えていっ

    エンジニアリングマネージャ/プロダクトマネージャのための知識体系と読書ガイド - Qiita
  • 現在時刻が関わるユニットテストから、テスト容易性設計を学ぶ - t-wadaのブログ

    この文章の背景について この文章はテスト容易性設計をテーマに 2013/11/26 に CodeIQ MAGAZINE に寄稿したものです。残念ながら CodeIQ のサービス終了と共にアクセスできなくなっていたため、旧 CodeIQ MAGAZINE 編集部の皆様に承諾いただき、当時の原稿を部分的に再編集しつつ、ライセンス CC BY(クリエイティブ・コモンズ — 表示 4.0 国際 — CC BY 4.0) で再公開いたしました。 旧 URL にいただいたブックマークとご意見はこちらです(これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE)。旧記事には当に多くの反響をいただき、誠に感謝しております。 目次 この文章の背景について 目次 出

    現在時刻が関わるユニットテストから、テスト容易性設計を学ぶ - t-wadaのブログ
  • UIデザインにおけるインターフェイスアーキテクトの役割|Goodpatch Blog グッドパッチブログ

    アーキテクチャ(Architecture)とは一般には建築や建築学を指しますが、コンピューターの世界ではあるシステムの概念や設計思想を「アーキテクチャ」という言葉で分類することがあります。中でもソフトウェアの領域では実装モデルの設計指針や分類、コンポーネントの相互関係、ソフトウェアの構築方法などを定めた一連の構造をそう呼ぶことがあります。 アーキテクト(Architect)とは建築家や(建築)設計士、技術者といった職種を指しますが、コンピューターの世界では「アーキテクト(仕組士): システムのアーキテクチャを設計する責任がある、人、チーム、あるいは組織」(IEEE 1471)と規定されます。要するに、システムの構造設計に関して責任を持つ役割です。「構造設計の指針を示し、実行する人」と言った方がわかりやすいでしょうか。 このような、構造設計やそれを担う設計士の役割は、当然のようにUIデザイン

    UIデザインにおけるインターフェイスアーキテクトの役割|Goodpatch Blog グッドパッチブログ
  • ドメイン駆動設計に関する何か - 日々常々

    2020-03-13追記: 「ドメイン駆動設計」のハードルを上げる意図はありません。そもそもそんな特殊技能でもないと思っています。「ドメイン駆動設計が合っているか」を測る材料になるかも?くらいの気持ちで読んでいただけると幸いです。 何度目か知りませんがDDDがまたブームを迎えているようで。DDD難民と言う言葉が出た頃を思うと感慨深いですね。実際難民になったわけではないので肌感覚で知らないのが残念なところですが、これはどうでもいい。 DDD、日語ではドメイン駆動設計となりますが、DDDを冠していてもドメインが語られることは少ないようです。 数ある書籍もドメインモデリングの話ではなく、ドメインモデルをいかに実装に落とし込むかにフォーカスしていると感じています。 これはこれで仕方ないと言うか、ドメインの話って広く語れないんですよね。 ドメインは領域で境界があって範囲が限定されています。特定ドメ

    ドメイン駆動設計に関する何か - 日々常々
  • [CSS] button要素のスタイルシート、最新テクニックを徹底解説

    <button></button>は最も使用されている要素の一つです。フォームの送信、モーダルを開く時、データを表示する時など、インタラクションのトリガーとして使用されています。button要素の詳細とすべてのブラウザで機能するようにスタイルを完璧に定義する方法について紹介します。 さらに、よく使用されるボタンのスタイル方法をはじめ、ボタンの実装時にある落とし穴の解決方法についても明らかにします。 Styling The Good Ol' Button Element by Ahmad Shadeed 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 button要素のデフォルトのスタイル button要素の基的なデザイン アイコン付きのボタン 複数行のボタン アンカーリンクとしてのa要素とbutton要素 アウトラインボタンの

    [CSS] button要素のスタイルシート、最新テクニックを徹底解説
  • 持続的なアプリ開発のための DX を支える技術 #DroidKaigi 2020 - Infinito Nirone 7

    この記事は、DroidKaigi 2020 で発表予定だったセッション「持続的なアプリ開発のための DX を支える技術」を解説するための記事です。 セッション概要 Android歴史はすでに 10 年を超え、数多のアプリケーションがストアで公開されています。これらのアプリケーションの中には、何年も継続的にバージョンアップを重ねているものもたくさんあります。 このセッションでは、このような持続的なアプリケーション開発・リリースをうまく回す秘訣として DX という言葉をとらえ、アーキテクチャやテストのほか、日々の開発に関わるワークフローをメンテナンスするための考え方や手立てとして、モバイル CI や Android 向け各種ツールキットの導入と効率化、Gradle をベースにした独自タスク開発の方法などを紹介します。 資料 speakerdeck.com 一部実装の詳細を資料に委ねています

    持続的なアプリ開発のための DX を支える技術 #DroidKaigi 2020 - Infinito Nirone 7
  • 【全方位木DP】明日使える便利な木構造のアルゴリズム - Qiita

    この記事について この記事では、一部で全方位木DP、Rerooting等と呼ばれているアルゴリズムの紹介/解説と、その実装についての簡単な説明を行います。 全方位木DPなどと物騒そうな名前がついていますが、発想自体は全く難しくありません。また、実装もそこまで難しいものではないです。 前提知識として、最低限のグラフ理論の知識(特に木構造について)を要求します。(有向木の根/部分木等…) 謝辞 この記事中に挿入されている図は、殆どを @259_Momone さんに提供して頂きました。素晴らしく美しい図を提供して頂き、この記事を分かりやすいものとして頂いたことに感謝いたします。 全方位木DPとは 各点から深さ優先探索を行って解くことができる問題のうち特定の条件(後述)を満たすものについて、全頂点についての答えを同等の計算量で求めることができるアルゴリズムです。 まず、全方位木DPで解くことができ

    【全方位木DP】明日使える便利な木構造のアルゴリズム - Qiita
  • あなたの文章に合った「いらすとや」画像をレコメンド♪(アルゴリズム解説編) - Qiita

    はじめに 記事はあなたの文章に合った「いらすとや」画像をレコメンド♪シリーズの第2回、アルゴリズム解説編です。 文章を与えると、それに近い意味を持った「いらすとや」画像を探してレコメンドしてくれるアプリのアルゴリズムについて解説します。 機能概要は第1回、あなたの文章に合った「いらすとや」画像をレコメンド♪(機能概要編)をご参照ください。 アルゴリズムの概要 アプリの基的なアイディアは次のとおりです。 与えられた文や画像の説明文を、それぞれ文の分散表現(つまりはベクトル)に変換する。 与えられた文と画像の説明文の意味の近さを、それぞれの文の分散表現を使って計算する(意味の近さ = 2つのベクトルのなす角の小ささ = コサイン類似度の大きさとする)。 コサイン類似度が大きい説明文を持つ画像トップN個を選ぶことで、与えられた文と意味が近い画像を発見できる。 模式図にすると、次のようになり

    あなたの文章に合った「いらすとや」画像をレコメンド♪(アルゴリズム解説編) - Qiita
  • 宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita

    この記事は、ある程度以上の規模のGUI開発において、React Hooks以後の宣言的UIにより、大規模開発に用いられる設計論に完全に対応できるようになり「ビジネスロジックの変更や追加」に対応するコストを低く保つこと(技術的負債の抑制)ができるようになったことを解説するものです。 技術的負債の抑制には、技術的負債の原因となりがちな「広範囲の密結合」と「適切な疎結合を保つ仕組みの欠如」が欠かせません。それをカバーするのが、大規模開発をクリーンに行える設計論(ここでは「現代的な設計論」とよぶもの)です。クリーンアーキテクチャなんかでGUIによく適用されるHumble Object Patternのようにプレゼンテーションとビューを分離する必然性が無くなるでしょう。 ポイントは ある程度以上の規模で開発するなら設計論をうまく使い設計しないと、技術的負債を抱え込む(ビジネスロジックの変更や追加に対

    宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita
  • ID生成方法についてあれこれ - かとじゅんの技術日誌

    引っ越しました。 ID生成方法についてあれこれ

    ID生成方法についてあれこれ - かとじゅんの技術日誌
  • マルチスレッド :: やり直しJava

    スレッドの現在の状態は ThreadクラスのgetState()メソッドで確認することができます。 スレッド間通信と同期スレッド間通信スレッド間通信と言うと 大袈裟な感じもしてしまいますが、スレッド間でデータをやり取りしたり 待ち合わせを行うことを指します。スレッド間通信は共有メモリを介して行います。共有メモリとして利用できるのは ヒープ領域に置かれたインスタンスやクラスフィールド等です。具体的には次のような方法でスレッド間通信を行うことができます。 クラスフィールドを介してスレッド間通信を行う。クラスのシングルトンオブジェクトを介してスレッド間通信を行う。共有するオブジェクトの参照を それぞれのスレッドで持ち合い、共有オブジェクトを通してスレッド間通信を行う。並列処理を行う場合、スレッド間通信が必要なければ シングルスレッドの場合と変わらないので 難しいことは何もありません。しかし 大抵

  • DIコンテナの実装を理解して、軽量 DI コンテナを自作しよう - Qiita

    なぜ DI コンテナを自作するのか 関心の分離がされているアプリケーションは変更に強く、良い設計と言えます。Dependency Injection(以下 DI) は関心の分離を実現する テクニックの 1 つとしてよく見られるパターンです。しかしクラス間の依存関係が増えれば増えるほど、注入する依存を作ることは困難になり、DI のコストは段々と膨らみます。そのようなとき、 依存を自動で解決し、欲しいインスタンスをすぐにとりだせる DI コンテナ は有効な解決手段となり得ます。 JavaScript/TypeScript においても DI コンテナを提供するライブラリが存在します。例えば、InversifyJS や tsyringe などが知られています。しかし既存の DI コンテナは、DI 以外の機能を持ち、また使い方も多岐にわたるため、知識の習得コストがかかります。そこで 必要最小限の機能

    DIコンテナの実装を理解して、軽量 DI コンテナを自作しよう - Qiita
  • グレースケール画像のうんちく - Qiita

    グレースケール変換の前提知識から具体的な変換アルゴリズムまで解説します。 カラー画像を元に白黒印刷したい場合や、最近だと機械学習の物体認識で輝度だけ使いたい等、グレースケール化の機会は意外とよくあります。 OpenCV や ImageMagick 等のグラフィックエンジンを使えばお任せ変換できますが、それが具体的にどういう処理をして、どのような選択肢があるのか、知っておいて損はないでしょう。 実際に、OpenCV や ImageMagick でグレースケール変換をしたい方は、こちらを参考にどうぞ。 Python でグレースケール(grayscale)化 ImageMagick のグレースケール変換 グレースケールとは 画像を色味のない明るさの度合いだけで表現するのがグレースケールです。 似た言葉にモノクロ画像がありますが、こちらは下のカラー以外3つを含む広い概念です。白と黒のどちらかだけで

    グレースケール画像のうんちく - Qiita
  • JavaScriptでパーサコンビネータのコンセプトを理解する(「正規表現だけに頼ってはいけない」の続き) - id:anatooのブログ

    前回の記事の続き。前回は、正規表現が使えない時はパーサコンビネータを使ってみると良いということを書いた。 パーサコンビネータのためのライブラリは、以下のように各言語ごとにいくつかある。 JavaScript - Parsimmon Ruby - rparsec treetop Python - parsy PHP - PHPPEG 各言語でいくつかあるのだが、正規表現と違ってパーサコンビネータには統一的な書き方があるわけではないし、ライブラリによって使い方も様々である。なので、今まで正規表現だけ使ってきた開発者がちょっと使ってみようと思っても、使い方がよくわからずに面らってしまうことがある。 パーサコンビネータはテキストをパースするための非常に強力な仕組みだが、その背後にある考え方を理解しなければこれらのパーサコンビネータのライブラリを使う際の障害になるだろう。逆に言うと、それさえ理解で

    JavaScriptでパーサコンビネータのコンセプトを理解する(「正規表現だけに頼ってはいけない」の続き) - id:anatooのブログ
  • bit vectorで編集距離の計算を高速化する - Retrieva TECH BLOG

    レトリバ製品開発部の@ysk24okです。 記事ではbit vectorを用いて編集距離の計算を高速化するアルゴリズムを紹介します。論文はこちらです。 dl.acm.org クエリの長さを、検索対象のテキストの長さを$n$としたとき編集距離の計算量は$O(mn)$であることが知られていますが、bit vectorを活用することでword長を$w$とすると計算量を$O\bigl(\frac{m}{w}n\bigr)$($m\leq w$のときは$O(n)$)に低減できる手法になります。 1999年発表の古い論文ですが、この論文で提案されているアルゴリズムが弊社の製品に実装されていて初見では理解できなかったことに加え、日語での論文解説が無いようだったので解説記事を書くことにしました。 編集距離(Levenshtein Distance)とは 近似文字列照合(approximate stri

    bit vectorで編集距離の計算を高速化する - Retrieva TECH BLOG
  • サーバーレスアーキテクチャ再考 - ゆううきブログ

    2014年にAWS Lambdaが登場し、Functionを単位としてアプリケーションを実行する基盤をFunction as a Service(以下、FaaS)と呼ぶようになった。 そして、同時にサーバーレスアーキテクチャ、またはサーバーレスコンピューティングと呼ばれる新しいコンセプトが普及するに至った。 当初、そのコンセプトが一体何を示すかが定まっていなかったために議論が巻き起こり、今現在では一定の理解に着地し、議論が落ち着いているようにみえる。 しかし、サーバーレスという名付けが悪いということで議論が着地したようにみえていることにわずかに疑問を覚えたために、2019年の今、これらの流れを振り返ってみて、サーバーレスアーキテクチャとは何かを改めて考えてみる。 サーバーレスとの個人的関わり サーバーレスアーキテクチャという名を僕がはじめて耳にしたのはAWS Lambdaが登場した2015

    サーバーレスアーキテクチャ再考 - ゆううきブログ
  • [論文紹介]グラフニューラルネットワークによる推薦アルゴリズム - Qiita

    はじめに 昨今、サービスに推薦システムを導入することでUXを向上させることが多くなり、様々な推薦アルゴリズムが取り入れられております。学術界でも推薦は大きなテーマであり、様々なアルゴリズムが提案されております。 記事では、推薦をする際に、「メディア上で、どんな人とと繋がっているか、どのアイテムにライクをしたか、どんなページを閲覧しがちか」など、人やアイテムとのつながりを重視して推薦するSocial Recommendationの最新論文であるGraphRec[1]を紹介します。GraphRecは2019年にWeb系のTop Coferenceの一つであるWWWで採択された論文です。 GraphRecは、近年グラフ界隈を盛り上げているグラフニューラルネットワーク(以下GNNs)を用いております。GNNsでは、あるノードiの特徴量に近傍ノードの特徴量を足し合わせること(aggregation

    [論文紹介]グラフニューラルネットワークによる推薦アルゴリズム - Qiita
  • 大規模剛体球系の高速シミュレーション - Qiita

    研究で多数の剛体球の高速シミュレーションが必要になったのですが、(プログラミング初心者としては)かなり難しい部分があったので書き残しておきたいと思います。 1 剛体球のシミュレーションとは 1.1 今回の設定 簡単のために、二次元系を考えます。つまり今回考える"球"は円板です。まず、鉛直方向に重力がかかっている状況を考えます。そして床面が高速で振動する箱を用意し、その中に$N$個の粒子を入れることにします。これらの粒子間の反発係数は$e$とし、粒子と壁の間の衝突は弾性衝突とします。このとき床面の振動によってエネルギーを得た粒子が飛び回るような状況になります。箱の上面は十分高く、天井の衝突は無視できるものとしましょう。また簡単のために、球の半径はすべて$r$とします。 下の動画を見るとわかりやすいでしょう。 かなり状況が限られているように思えるかもしれませんが、より一般の場合に修正することも

    大規模剛体球系の高速シミュレーション - Qiita
  • マルウェア解析に必要な素養 - HackMD

    書は、マルウェアが絡んだ事情を体系的にまとめている。攻撃者、防衛者、解析者の各視点から"マルウェア"のチョメチョメを理解することを目標としている。

    マルウェア解析に必要な素養 - HackMD
  • コンテナ技術入門 - 仮想化との違いを知り、要素技術を触って学ぼう|ハイクラス転職・求人情報サイト AMBI(アンビ)

    コンテナ技術入門 - 仮想化との違いを知り、要素技術を触って学ぼう コンテナ技術を適切に活用するには、コンテナが「どうやって」動いているかを学びたいところ。はてなエンジニアhayajo_77さんがコンテナの要素技術の勘所を解説します。 こんにちは。株式会社はてなでサーバー監視サービス「Mackerel」のSREを務めるhayajo_77( @hayajo )です。 さて、コンテナ技術Dockerの登場がきっかけとなり、格的に活用が始まりました。現在はKubernetesを始めとするコンテナオーケストレーションツールや AWS, GCP, Azure などのクラウドサービスで提供されるコンテナマネジメントサービスを採用したサービス運用事例が数多く紹介されており、コンテナ技術は「理解する」フェイズから「利用する」フェイズに移ってきています。 コンテナそのものは上記のツールやサービスにより

    コンテナ技術入門 - 仮想化との違いを知り、要素技術を触って学ぼう|ハイクラス転職・求人情報サイト AMBI(アンビ)
  • ソフトウェアアーキテクチャの歴史 - tasuwo's notes

    改めて ソフトウェアアーキテクチャ GUI のアーキテクチャの歴史を調べてみたくなった。来の MVC とは何か?何が正しくて何が間違っているか?も重要なのだが、それよりは、なぜそれが生まれたのか?何を解決しようとしたのか?どのような問題点が生まれて、それをどう工夫して解決・発展してきたのか?を知りたい。しかし、そういうことがまとまっている日語の情報が少ないので、自分で色々かいつまんでメモしておく。 MVC の原点は 70 年代にまで遡り、実装としては Smalltalk-80 のクラスライブラリとして実装されたのが最初だと思われる。しかし、後世に大きな影響を及ぼしたポイントをいくつか持ちつつも、当時のアーキテクチャが現代においてそのまま利用されているケースはほぼないといっていい。したがって、単に MVC といった時には大抵最初期の MVC を指すことは少なく、区別するために最初期の M

    ソフトウェアアーキテクチャの歴史 - tasuwo's notes
  • 人にうれしいAIのためのUXデザインガイド(People + AI Guidebook)

    このウェブページは、Google の People + AI Guidebook の2019年6月12日時点での最新版を 羽山 祥樹(@storywriter) が私的に日語訳したものです。正確な内容については、原文(英語)をご参照ください。この翻訳には誤りが含まれていることがあります。

    人にうれしいAIのためのUXデザインガイド(People + AI Guidebook)
  • 魔法使いになりたい人のためのシェーダーライブコーディング入門 - Qiita

    とりあえずこの映像を見てください。 昨日の勉強会の懇親会中に20分間のライブコーディングでシェーダーを作りました! 初めて人前でコーディングをしたんですが、めちゃくちゃ楽しかったです!! (当日動かなかったpmod修正済です...) 差分 - q.x = abs(p.x ) - 10.; + q.x = abs(q.x ) - 10.;https://t.co/LH3TT4YzSU#klab_meetup pic.twitter.com/k61c3O2ZA1 — かねた (@kanetaaaaa) 2019年6月19日 20分間のライブコーディング映像フル 先日の #klab_meetup の懇親会で行った20分のライブコーディング映像を公開しました! 実況解説は@gam0022 さんと@songofsaya_さんです 突発ながら面白い実況で場を盛り上げてくださって非常に楽しかったです!

    魔法使いになりたい人のためのシェーダーライブコーディング入門 - Qiita
  • 独学Kubernetes コンテナ開発の基本を最速で理解する - Qiita

    はじめに 記事は、これからKubernetesをはじめる方を対象とし、コンテナ開発の基を最速で理解するための入門記事になります。 入門記事といっても、コンテナ型仮想化技術に対する単なる抽象概念の理解は前提知識とし、少し掘り下げながら、Kubernetesの導入や、基的な操作及び周辺技術の理解を目的にまとめています。 前提知識 Kubernetesをはじめるにあたり、コンテナ型仮想化技術に関する知識が求められます。 記事では、コンテナ型仮想化技術としてDockerを使用しますが、Dockerの基的なことについてはTL;DRになるので割愛します。なお、おさえておきたい知識としては、以下になります。 コンテナ型仮想化技術(概要レベル) コンポーネント(Docker Engine/Docker Compose/Docker Swarm/Docker Machine/Docker Kite

    独学Kubernetes コンテナ開発の基本を最速で理解する - Qiita
  • 🙂コンピュータサイエンスと魔法のYコンビネータ

    こんにちは、上杉周作と申します。米国在住のプログラマ兼ブロガーです。2019年に日経BP社から発売された『ファクトフルネス』の共訳者でもあります。詳しいプロフィールとブログはこちら。 『ファクトフルネス』 稿「コンピュータサイエンスと魔法のYコンビネータ」は、プログラミング未経験者向けの、邪道なコンピュータサイエンスの入門書です。どういう意味かは、すぐに説明しますね!

    🙂コンピュータサイエンスと魔法のYコンビネータ
  • マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌

    長い文章になってしまったので、概要だけ先に書きます。 以下のJavaプログラムは、常に上から下に順番に命令が実行されると思いますか?つまり、aに1が格納された後に、bに2が格納されると思いますか? 実は場合によってはこの実行順序が入れ替わる場合があります。これはJavaの言語仕様として定義されていることです。これを考慮しないと信頼性のある並行処理は実装できません。 気になる人は以下を読んでみてください。 a = 1; b = 2; すでにインターネットは社会インフラ化しています。ソーシャルネットワークで多くの人とコミュケーションやコラボレーションできる時代で、個人が情報を作り消費することは当たり前になってきています。そして、インターネット上のコンテンツは増加の一途を辿っています。「情報爆発」なんて言葉も耳慣れた言葉になりましたが、その問題解決のためにMapReduceなどの分散処理技術に注

    マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌
  • TypeScriptの型パズル初級問題の解説 - Qiita

    TypeScriptの型パズル初級の解答例を見て、なぜこのコードでこのエラーなのか考えていたら 私にはとてもいろんなことが学びになったので、共有します。 それではまず、TypeScriptの型パズル初級の問題を見てください。 TypeScriptの型パズル初級問題の内容 画像の性質を持つ型 RequireEither を作ってください。(TypeScript v3.7.5) こちらはりょーさんが作成した問題です。(掲載許可は事前にとりました) 問題を解くためには、まずどんな性質を持つ型を作ればいいのか理解していないと無理です。 RequireEitherはどんな性質の型なのか if文による型の絞り込み結果を見たらわかります。 func({}); // Error func({ foo: 42 }); // 'foo' in hogeの時に、{foo: number}を返している。 func

    TypeScriptの型パズル初級問題の解説 - Qiita
  • 現場で役立つシステム設計の原則メモ - Qiita

    This article is a Private article. Only a writer and users who know the URL can access it. Please change open range to public in publish setting if you want to share this article with other users. ※この記事は著者の増田さんの了解の上で限定公開させて頂いております。 https://twitter.com/masuda220/status/1215122054795522049?s=20 オブジェクト指向、設計がなぜ必要か = ソフトウェア全体の整理整頓をするため 第1章 小さくまとめてわかりやすくする 変更が大変なプログラムの特徴 メソッドが長い クラスが大きい 引数が多い 関心事を詰め込みすぎ

    現場で役立つシステム設計の原則メモ - Qiita
  • ちょうぜつのカレンダー | Advent Calendar 2019 - Qiita

    About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)

    ちょうぜつのカレンダー | Advent Calendar 2019 - Qiita
  • 文字列の頭良い感じの線形アルゴリズムたち - あなたは嘘つきですかと聞かれたら「YES」と答えるブログ

    この記事はAdvent Calendar 2014の12/1の記事として書かれました。 はじめに KMP、Manachar、Z algorithm の3つについて書きたいと思います。 1アルゴリズム/1日で追記して行きます。 これらのアルゴリズムでは「求めたいものの特性を生かして、既に計算した結果を上手に利用する」という点で共通しており、いずれも「なるほどなぁ」と言わされました。 この美しいアルゴリズムたちを是非紹介したいと思い、この記事を書くことにしました。 ・記法について |S|:文字列 S の長さを表す。 S[i,j]:文字列 S の i 文字目から j 文字目までを取り出した文字列を表す。 KMP ※これは正確にはKMPではなくMPです。KMPについてはこちら。 文字列 S が与えられたときに、各 i について「文字列S[0,i-1]の接頭辞と接尾辞が最大何文字一致しているか」を記

    文字列の頭良い感じの線形アルゴリズムたち - あなたは嘘つきですかと聞かれたら「YES」と答えるブログ
  • 設計要件をギッチギチに詰めたValueObjectで低凝集クラスを爆殺する - Qiita

    /// <summary>契約金額</summary> public class ContractAmount { public int AmountIncludingTax; public decimal SalesTaxRate; } 当然データの入れ物(以後データクラスと呼称)だけでなく、税込み金額を計算するロジックが必要です。ここであまり設計を考えないと、この手の演算ロジックはデータクラスとは別のクラスに実装されることが多いです。以下のようにControllerに実装されることが多いのではないでしょうか。 /// <summary>契約コントローラー</summary> public class ContractController { private ContractAmount _contractAmount; /// <summary>税込金額を計算する。</summary>

    設計要件をギッチギチに詰めたValueObjectで低凝集クラスを爆殺する - Qiita
  • 今すぐ「レイヤードアーキテクチャ+DDD」を理解しよう。(golang) - Qiita

    とはいっても記事を読み終わるのに三時間くらいかかる気がします。 対象読者 レイヤードアーキテクチャ+DDDの実装に困っている方 バックエンドエンジニアを目指す学生 APIサーバを開発したことがある方 はじめに アーキテクチャは学習コストが高いと言われています。その要因の一つとして考えられるのはアーキテクチャの概念を学んだとしても、アーキテクチャの細かい部分は実装者に左右されるので、ネット上にあるプログラムは概念とはズレがあるので混乱しやすいことだと思います。それに加えて他のサイトを参考にした時もやはり実装者による違いで混乱してしまうからです。 したがって、概念とズレがある部分はしっかり言及したうえで解説することが良いと思います。 アーキテクチャを採用する意味 レイヤ間が疎結合になるため、ユニットテストが行いやすいこと。 責務がはっきりしているので、保守性が高いこと。 途中からフレームワーク

    今すぐ「レイヤードアーキテクチャ+DDD」を理解しよう。(golang) - Qiita
  • ソシオメディア | OOUI – オブジェクトベースのUIモデリング

    最近、OOUX という言葉を見聞きしました。これはオブジェクト指向の利用者体験(Object-Oriented User Experience)のことで、いくつかの記事を読んだところ、アプリケーション設計において画面とデータを対応づける際にオブジェクトを手掛かりにするという方法論のようです。つまり OOUX は「オブジェクトベースのUIモデリング」と言い換えることができそうです。そうすると実は以前からそのようなデザイン手法はあり、「OOUI(オブジェクト指向ユーザーインターフェース)」と呼ばれていたのです。最近になって OOUX という言葉が使われるのは、OOUI のことを知らなかったか、もしくは流行語である「UX」を用いた方がかっこいいと考えたからではないでしょうか。 「オブジェクトベースのUIモデリング」というデザイン手法は、GUI アプリケーションをデザインする際の基的なテクニック

    ソシオメディア | OOUI – オブジェクトベースのUIモデリング
  • Bash初心者からエキスパートになるためのコマンドとヒント101 - Qiita

    以下はAndrewによる記事、101 Bash Commands and Tips for Beginners to Expertsの日語訳です。 一部を除き、上から順にコマンドを打って確かめることができるようになっています。 読むだけではなく、実際に打って試してみることで理解が早まることでしょう。 101 Bash Commands and Tips for Beginners to Experts 一年前まで、私はもっぱらMacOSとUbuntuのふたつのOSで作業をしていました。 両OSにおいて、私のデフォルトシェルはbashです。 過去6、7年ほどbashで仕事をしているため、bashがどのように動作するか、ある程度は理解しているつもりです。 従って、bashを始めたばかりの人にとって一般的で有用なコマンドについて、いくつか解説していきたいと思います。 また、bashについて知っ

    Bash初心者からエキスパートになるためのコマンドとヒント101 - Qiita
  • ドメインロジックはドメインオブジェクトに凝集させる - Qiita

    こんにちは。 最近、こんなツイートしたのですが、ドメインオブジェクトではなくアプリケーションサービス1などにドメインロジックが書かれてしまうことがあります。 アプリケーションサービスはドメインロジックを配置する場所ではない、それはドメインオブジェクトの役割。アプリケーションサービスは進行役。ここを間違うから簡単にドメインモデル貧血症になってしまうんだと思います。 — かとじゅん (@j5ik2o) August 18, 2019 最近、以下の書籍(以下 増田)をマジメに読み直しました(笑)。ドメインモデル貧血症2を回避して、ドメインロジックをドメインオブジェクトに凝集させる方法に関して、増田にいろいろ書いてあったので、そのエッセンスと僕の考察を交えて解説したいと思います3。 詳しい内容は以下の増田を読んでください! コード例はScalaですが難しい表現がないので、Scalaが分からな

    ドメインロジックはドメインオブジェクトに凝集させる - Qiita
  • 過去の失敗例から再考するモデル駆動設計

    過去に僕が失敗した代表例から今ならどう設計するか、という観点でお話します。中心になるトピックは以下です - 軽量DDDの功罪 - ドメインモデル貧血症対策 - 集約の境界定義の善し悪し

    過去の失敗例から再考するモデル駆動設計
  • 深層学習の数理

    Curriculum Learning (関東CV勉強会)Yoshitaka Ushiku61.6K views•43 slides Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Yusuke Uchida15.5K views•38 slides

    深層学習の数理
  • system-design-primer/README-ja.md at master · donnemartin/system-design-primer

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    system-design-primer/README-ja.md at master · donnemartin/system-design-primer
  • テスト駆動開発:実はそれは設計技術です

    テスト駆動開発(TDD)は、より優れたソフトウェアを持続的に早く提供するための確立された手法です。TDDは単純な考えに基づいている。製品コードを書く前に失敗するテストを書くことです。新しい行動が必要ですか?失敗するテストを書いてください。しかし、この一見単純な考えをうまく実行するには、スキルと判断が必要です。 TDDは当に設計のためのテクニックです。TDDの基礎は、小規模なテストを使用してボトムアップを早急に設計することであり、システムへの信頼を構築しながら迅速に何らかの価値を得ることです。よりよい名前はテスト駆動設計かもしれません。 設計方法としては、集中と単純さです。目標は、開発者が価値を提供する上で不要な余分なコードを書くことを防ぐことです。問題を解決するのに必要最小限のコードを書くことです。 多くの記事がTDDを行うことのすべての利点を誇りにしています。そして多くの技術会議の講演

    テスト駆動開発:実はそれは設計技術です
  • 画像の最適化  |  Web  |  Google Developers

    画像の最適化  |  Web  |  Google Developers
  • Dockerfileを書くためのベストプラクティス【参考訳】v18.09 - Qiita

    概要 Docker Documentation にある、Best practices for writing Dockerfiles の参考日語訳です。ドキュメントは、2019年5月31日現在のカレントである Docker v18.09 (current) です。 背景 ―― 以前の翻訳から時間が経過し、全体的に手直ししたいものの、差分が大きすぎる状況です。そのため、リファレンスや重要性の高いものから優先的に着手することにしました。 スライド資料 背景やヒント、図解などを追加した補足用スライドを作成しました Dockerfile を書くためのベストプラクティス解説編 BuildKitなどの最新機能や Dockerfile の記述例については、こちらのスライドをご覧ください。 Dockerfileを改善するためのBest Practice 2019年版 Dockerfile を書くためのベ

    Dockerfileを書くためのベストプラクティス【参考訳】v18.09 - Qiita
  • TypeScriptの型推論詳説 - Qiita

    TypeScriptJavaScriptに静的型を追加した言語で、コンパイルエラーを検出することでJavaScript開発をさらに快適・効率的にしてくれるものです。 型システムを備えている言語は、多かれ少なかれ何らかの形で型推論を備えています。大ざっぱに言えば、これは型を明示的に書かなくてもコンパイラがいい感じに型を推測して理解してくれる機能です。型推論は静的型付き言語における花型機能のひとつと言ってもよく、色々な言語がそれぞれの特色を持っています。 この記事ではTypeScriptにおける型推論について詳説します。この記事に書いてあることは、TypeScriptを普段から書いている方ならなんとなく理解している内容が多いと思います。しかし、これらの内容がちゃんと言語化されている記事がいまいち見当たらなかったので今回記事を書くことにしました。 ※ この記事の内容は執筆時点の最新版のType

    TypeScriptの型推論詳説 - Qiita
  • 因果推論で検索システムを問い直す(1) - Counterfactualを知りたい

    はじめに ランキング学習のシリーズ記事の第一弾です. 検索システムで達成したいのは, あるqueryに対してよりrelevantなdocumentを上位に提示することです. queryとdocumentのペアに対して, relevanceが大きければ大きいほど, 大きいスコアをつけるような関数を学習することができれば, 効果的にdocumentを並べることができるでしょう. このような関数を学習するためのアルゴリズムがRanking SVMやLambdaMARTなどのランキングアルゴリズムです. これらのランキングアルゴリズムは, 当然ながら教師ラベルとしてrelevanceを必要とします. 推薦システム的に言えばexplicit feedbackを必要とします. しかし, 学習のたびにannotationするのは高コストなので, clickというimplict feedbackからどうに

  • 数時間で完全理解!わりとゴツいKubernetesハンズオン!! - Qiita

    社内でKubernetesハンズオンをやってみたのでおすそ分け。 参加者6人からバンバン出てくる質問に答えながらやって、所要時間4時間ほどでした。 SpeakerDeckにも資料を上げています。 https://speakerdeck.com/ktam1219/yaruze-kuberneteshanzuon (2019/07/11追記) 続編書きました! -> 今度はあんまりゴツくない!?「わりとゴツいKubernetesハンズオン」そのあとに ハンズオンの目標 Kubernetesとお友達になる イメージを掴む 触ってみる(ローカル・EKS・ちょっとGKE) 構築・運用ができるような気分になる 巷にあふれるKubernetesの記事・スライドが理解できるようになる EKSがメインになっているのは、会社の業務でAWSを使うことが多いからです。 純粋にKubernetesを勉強したいだけな

    数時間で完全理解!わりとゴツいKubernetesハンズオン!! - Qiita
  • Google re:Work

    イノベーション イノベーションを起こすためのスキルを習得し、業務に活かす方法を学びます。

    Google re:Work
  • https://www.nisc.go.jp/security-site/files/blue_handbook-all.pdf

  • ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita

    NTT データ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 今回はソートについて記します。 0. はじめに データ構造とアルゴリズムを学ぶと一番最初に「線形探索」や「ソート」が出て来ます。これらのテーマは応用情報技術者試験などでも頻出のテーマであり、アルゴリズムの Hello World とも呼ぶべきものです。 特にソートは、 計算量の改善 ($O(n^2)$ から $O(n\log{n})$ へ) 分割統治法 ヒープ、バケットなどのデータ構造 乱択アルゴリズムの思想 といった様々なアルゴリズム技法を学ぶことができるため、大学の授業でも、アルゴリズム関連の入門書籍でも、何種類ものソートアルゴリズムが詳細に解説される傾向にあります。記事でも、様々なソートアルゴリズムを一通り解説してみました。 しかしながら様々な種類のソートを勉強するのもよいが、「ソートの使い方」や

    ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita
  • オブジェクト指向のいろは - Qiita

    ※追記しました 2018/11/10 サンプルコードの言語について、この記事で触れなかったものとその理由について 2018/11/11 諸注意補足 2018/11/12 コードフォーマット、タイポ修正 2018/11/13 ポリモーフィズムのサンプルが弱いとの指摘を頂き追記 はじめに この記事はオブジェクト指向プログラミング初学者向けの記事です。 記事の内容はオブジェクト指向プログラミングの入り口までを解説しているつもりです。 またオブジェクト指向分析やオブジェクト指向設計については取り扱いません。 オブジェクト指向についてを完全に理解するにはこの記事だけでは足りないと思いますのでその点ご留意願います。 サンプルコードは C# です。 スライドが元ネタになっていて、以下の url がそのスライドです。 もし興味が湧いたらどうぞ。 https://nrslib.com/oop-slide-1

    オブジェクト指向のいろは - Qiita
  • 実践クリーンアーキテクチャ with Java

    この記事について こちらの記事はクリーンアーキテクチャの Java 実装による解説記事です。 MVC フレームワークに組み込むために一部変更している部分もあります。 それをふまえてご覧ください。 講演内容が @IT さまに記事にしていただけました。 あわせてご参照ください。 https://www.atmarkit.co.jp/ait/articles/1907/08/news002.html クリーンアーキテクチャよりも軽量で無理なく導入しやすいアプリケーションアーキテクチャパターンを考案しました。 https://nrslib.com/adop/ スライド JJUG CCC 2019 Spring での発表資料です。 この発表をするにあたって記事を書くことにしました。 YouTube YouTube でこちらの解説を行いました。 その他解説もしています。もしよろしければチャンネル登録を

    実践クリーンアーキテクチャ with Java
  • Clean Architectureなにもわからないけど実例を晒して人類に貢献したい - エムスリーテックブログ

    こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 これまでは、中村の記事で宣言した 「医師版Stack Overflow」(12/16に正式名称Docpediaとしてリリースされました) の技術的チャレンジの 記事を続けて書いていたのですが、今回はここで宣言しなかったClean Architectureについて書きます。 浪江駅(なみええき)は、福島県双葉郡浪江町にある、東日旅客鉄道(JR東日)常磐線の駅。文には特に関係ありません。 Clean Architecture 達人に学ぶソフトウェアの構造と設計 (アスキードワンゴ) 作者:Robert C.Martin,角 征典,高木 正弘出版社/メーカー: ドワンゴ発売日: 2018/08/01メディア: Kindle版 なぜ書くのか 参考にできる実例を増やしたい Tech Blogはそのままドキュメ

    Clean Architectureなにもわからないけど実例を晒して人類に貢献したい - エムスリーテックブログ
  • 関心の分離を意識してサーバーを作ってみる(TypeScript + Express) - Qiita

    はじめに こんにちは、都内でフロントエンドエンジニアをやっている @sadnessOjisan です。最近、自分のできる範囲を広げたいと思い、バックエンドエンジニアに転身しました。フロントエンドエンジニアがバックエンドを書けたら最高ですよね?歌って踊れて楽器が弾けるアイドルって感じがします(知らんけど)。 そんなカジュアルな感じでバックエンドエンジニアに転身したのですが、どうも僕が立てるサーバーは汚く柔軟性もなく見通しも悪くなってしまいがちです。どうせなら綺麗なサーバー立てたいと思い、良いサーバーを作るための技術や方法論を知りたいと調べていくと、「関心の分離」という言葉を知りました。そこで GW に、レイヤードアーキテクチャやクリーンアーキテクチャという耳かじった言葉を調べ、なんとかサンプルアプリを作れたので、そこで得た学びをここに残したいと思います。この記事では、関心の分離ができているこ

    関心の分離を意識してサーバーを作ってみる(TypeScript + Express) - Qiita
  • DevDocs

    New documentations: Next.js, click

    DevDocs
  • httpbin.org

    A simple HTTP Request & Response Service. Run locally: $ docker run -p 80:80 kennethreitz/httpbin

  • encodeMax : realtime encode/decode tool

    URLエンコード、デコード、文字参照、Base64、全部一括リアルタイムで行うツール

  • UNIX & Linux コマンド・シェルスクリプト リファレンス

    目次 当サイトについて bash シェルスクリプト入門 -シェルスクリプトのいろは- コマンド Tips シェルスクリプト Tips 変数を使用する 配列を使用する 入力と出力 if 文と test コマンド for 文の使用方法 while 文の使用方法 case 文の使用方法 関数の使用方法 引数を処理する 終了ステータス シグナルと trap コマンド フィルタを使用した文字列操作 1 フィルタを使用した文字列操作 2 日付を取得する 文字コードと改行コード シェルスクリプトのデバッグ AWK リファレンス (Deprecated) シェルスクリプト ライブラリ 『ether.sh』 お知らせ Bluesky を始めました @sunone.me 変更履歴 2023.10.07 ページ内リンクを修正した。 2021.02.01 このサイトに「もう 1 ページ追加しよう」と思ってから、も

    UNIX & Linux コマンド・シェルスクリプト リファレンス
    hbKOT
    hbKOT 2020/05/06
  • ほとんどのセキュリティ問題はインジェクション問題 – インジェクションパターンとして理解すると簡単

    (Last Updated On: 2018年8月16日)セキュリティ問題のほとんどはインジェクション問題と考えることができます。インジェクション問題として考えられるセキュリティ問題のモデル化を考えます。 実際のセキュリティ問題は多種多様で非常に複雑ですが、シンプルなモデルで考えると理解り易く、多くのセキュリティ問題を体系的に理解できます。 そもそもインジェクション問題とは? インジェクション問題とは「開発者が意図しない不正な操作の”挿入(インジェクション)”を攻撃者が行える問題」と考えることができます。インジェクション問題の代表例といえるSQLインジェクションでいうと、以下のようなコードがインジェクション攻撃に脆弱になります。 $result = pq_query("SELECT * FROM mytable WHERE id = {$_GET['id']}") $_GET[‘id’]に

    ほとんどのセキュリティ問題はインジェクション問題 – インジェクションパターンとして理解すると簡単
  • シェルプログラミングの基礎知識 | Shinta's Site

    UNIX のコマンドインタプリタである Bourne shell を知っておかないといろいろ困るので基的なことをメモしておく。ここでは、コマンドをバッチ処理するための シェルスクリプトについて記述しています。 #!/bin/sh UNIXでスクリプトを記述する場合、一番初めの行は #!(shebang)ではじめます。さらに、シェルスクリプトであることを明確にするためにコマンドをフルパスで記述します。シェルスクリプトでは、#!/bin/sh となります。Bourne shell の場合、初めの行が : (コロン)のみでもよいが、現在あまりこの記述は使われていない。また、#! /bin/sh というように #! の後に半角スペースを入れても動作する UNIX システムもあるが、互換性を考えると半角スペースは入れないほうがよい。 コメント行と改行 # 以降コメントとなり、\ を利用して複数行を

    hbKOT
    hbKOT 2020/05/06
  • スタートアップ企業向けインフラ運用入門(2):ログ・メトリクスの収集

    システム・サービスに関するログ・各種情報を取得する事により、トラブルシューティング、パフォーマンスチューニングのみならず、ビジネス上の成果の確認、UIの改善等にも役立ちます。ただ、闇雲に情報を取得しても、効果は上がらず労力ばかりがかかってしまいます。記事ではログ・メトリクスの収集の目的を明らかにし、その為に必要な点を実例を挙げながら説明していきます。 「ログ」取得の目的 Retty開発担当の鹿島です。Webサービスに限らず、ITのシステムを運用していれば、何らかの形で「ログ」の取得・保存をしている事かと思います。そもそも、それらは何のために保存されているのでしょうか。まずは、「ログ」を保存する目的を明らかにし、その観点から各種の「ログ」について見ていきたいと思います。 開発や運用経験のある方であれば、 「ログにxxxに関する情報が出ていれば、障害解決がスムーズなのに......」 とか、

    スタートアップ企業向けインフラ運用入門(2):ログ・メトリクスの収集
    hbKOT
    hbKOT 2020/05/06
  • プログラミングでよく使う英単語のまとめ【随時更新】

    プログラミングでよく使う英単語のまとめ【随時更新】 随時追加、整理していきます。 名前をつけるときには、名詞、動詞の違い、複数形、過去形などに注意しましょう。 オブジェクト指向では、クラス名は名詞、メソッドは動詞とします。 使ってはいけない言葉 get / set アクセサ (getter / setter) やプロパティによく使われている。 それ以外に使うと混乱を招くのでよくない。 get は軽量な処理と考えるので、中に重い処理は書いてはいけない。 単純な取得/設定以外で使いたくなったら他の言葉を考える。 load, save, commit, store, enable, disable, fetch, register, configure, add, etc... check 意味が広すぎて何をしているかわからない。 できるだけ別の言葉を使う。 具体的に何をしているかに分解して考え

    プログラミングでよく使う英単語のまとめ【随時更新】
    hbKOT
    hbKOT 2020/05/06
  • ChangeLog を支える英語

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    ChangeLog を支える英語
    hbKOT
    hbKOT 2020/05/06
  • gitにおけるコミットログ/メッセージ例文集100

    私はコミットログの書き方に悩む英語の苦手な人間である。実際、似たような人は世の中に結構いるようで、頻出単語を集計したりまとめたものは既にあって役に立つのだけれど、これらはあくまで単語の話であり、具体的な文を構成する過程でやっぱり困る部分がかなりあった。 要するに、どういう時にどういう文が使われているのか、ということを示した例文集が欲しいのである。ググると他にも「例文集があればいいのに」みたいな声はあるくせして、しかし誰も作ろうとしない。何なんだお前ら。それじゃ私が楽できないじゃないか。 仕方なく自分でまとめたので、増田に垂れ流しておく。 はじめにここで挙げているコミットログは全て実際のコミットログからの転載である。当然ながら各コミットログの著作権はそれぞれの書き手にある。いずれも各英文でググれば出てくるし、フェアユースの範囲なら許してくれるだろうと考え名前とプロジェクト名は割愛したが、ここ

    gitにおけるコミットログ/メッセージ例文集100
    hbKOT
    hbKOT 2020/05/06
  • commit-m: GitHubコミットメッセージの文例が検索できるサービス

    commit-m: GitHubコミットメッセージの文例が検索できるサービス

    hbKOT
    hbKOT 2020/05/06
  • .ssh/configファイルで複数サーバーのSSH接続を管理 - Linux入門 - Webkaru

    ここでは「~/.ssh/config」ファイルで複数サーバーのSSH接続を管理する方法を紹介します。 複数のVPSサーバーを管理している場合、めんどくさいのがSSH接続の管理です。大抵の場合はローカル環境で作成したひとつの秘密鍵を使って、複数のサーバーを管理するので、そこまで煩わしいといった印象はないのですが、VPSによってはサーバー会社が発行した秘密鍵を利用する必要があります。 こうなってくると「Aサーバー」の秘密鍵は「A鍵」 で、「Bサーバー」の秘密鍵は「B鍵」、「Cサーバー」の秘密鍵は「A鍵」……とこんがらがってしまします。 また、「~/.ssh/id_rsa(RSAの場合)」以外の秘密鍵を使ってSSH接続をする際には毎回! sshコマンドのオプション -i を利用する必要があります。例えば、以下のようにコマンドを入力する必要があります。 $ ssh -i ~/himitsu-kag

    .ssh/configファイルで複数サーバーのSSH接続を管理 - Linux入門 - Webkaru
    hbKOT
    hbKOT 2020/05/06
  • TOTO88 | Bocoran Slot Gacor Hari Ini

    Bermain slot gacor di Toto88 bisa menjadi pengalaman yang menggembirakan dan menguntungkan. Dengan berbagai pilihan permainan, fitur yang menarik, dan peluang menang besar, Toto88 telah menjadi destinasi utama bagi para pemain slot online. Artikel ini akan membantu Anda memahami bagaimana memaksimalkan pengalaman Anda saat bermain slot gacor di Toto88. Toto88 menawarkan pengalaman bermain slot onl

    TOTO88 | Bocoran Slot Gacor Hari Ini
    hbKOT
    hbKOT 2020/05/06
  • SSHの公開鍵を作成しGithubに登録する手順 - mon_sat at Co-Edo(半年前の自分への教科書 / 別院)

    当記事の内容は以下のページとほぼ同様となります。 Generating SSH Keys · GitHub Help パートナーというかクライアントの企業にgitを勧めて、2社ほどsvnから移行してもらったことのある @mon_sat です。 Githubのヘルプには有益なページが多いですが、上記のページもそのひとつですね。 最近黒い画面を使わずにgitを使う系の記事や勉強会が増えてきまして、ただ1点、秘密鍵やら公開鍵やらのところはそうはいかない場合もあるのかと思います。 というわけでSSHの公開鍵を作成しGithubに登録する手順を上記のwebページをもとに(日語で)まとめてみました。 基的な解説 この記事で記載の手順がなぜ必要か理解していない方のために、簡単な説明をいたします。 (理解している方は、読み飛ばしていただいて構いません) 秘密鍵・公開鍵とは 秘密鍵・公開鍵とは、鍵交換方

    SSHの公開鍵を作成しGithubに登録する手順 - mon_sat at Co-Edo(半年前の自分への教科書 / 別院)
    hbKOT
    hbKOT 2020/05/06
  • Systemd入門 - kinneko@転職先募集中の日記

    (1) - Unitの概念を理解する http://d.hatena.ne.jp/enakai00/20130914/1379146157 (2) - Serviceの操作方法 http://d.hatena.ne.jp/enakai00/20130915/1379212787 (3) - cgroupsと動的生成Unitに関する小ネタ http://d.hatena.ne.jp/enakai00/20130916/1379295816 (4) - serviceタイプUnitの設定ファイル http://d.hatena.ne.jp/enakai00/20130917/1379374797 (5) - PrivateTmpの実装を見る http://d.hatena.ne.jp/enakai00/20130923/1379927579

    Systemd入門 - kinneko@転職先募集中の日記
  • systemd - ArchWiki

    プロジェクトウェブページ より: systemdLinux 環境の基構成スイートであり、SysV や LSB init スクリプトと互換性のある、Linux 用のシステム・サービスマネージャです。systemd はサービスの起動を積極的に並行化します。また、ソケットや D-Bus のアクティベーションを使用してサービスを起動し、必要なデーモンの開始を行うことができ、Linuxcgroups によるプロセス管理ができます。システム状態のスナップショット作成と復元、(自動) マウントポイントの管理、煩雑な依存関係に基づいたサービスのコントロールを処理します。systemd は sysvinit の代替として SysV や LSB init スクリプトをサポートしています。init としての機能以外にも、ログデーモンやホストネーム・時刻・ロケールなどシステムの基設定を制御するユー

  • Linux女子部 systemd徹底入門

    Linux女子部 「Fedora最新技術情報&Systemd勉強会」 http://connpass.com/event/3859/ で使用した資料です。 変更履歴 2013/11/04 ver1.0 初版 2013/11/05 ver1.1 誤植修正、少し追記 2013/11/06 ver1.2 daemon-reload,mask,テンプレート機能を追記 2013/11/12 ver1.3 User/Groupオプションの説明追加 2013/11/24 ver1.4 誤植修正 2014/05/05 ver1.5 imjournalモジュールの説明追加Read less

    Linux女子部 systemd徹底入門
  • 「Systemd」を理解する ーシステム起動編ー | ギークを目指して

    2014年6月10日、とうとうRHEL7が正式リリースを迎えた。RHEL7での変更点については、このスライドに詳しく記載されているが、今回の記事では特に大きな変更点である「Systemd」について解説していきたいと思う。 Systemdは従来のinit/Upstartの代替であり、非常に高速なシステム起動・終了や、様々なシステム管理機能を提供する。ただし、その仕組みや管理方法は従来のinit/Upstartとは大きく異なり、init/Upstartに慣れ親しんだ方は習熟に時間を要するだろう。 Systemdは様々な機能と役割を持っているが、今回の記事ではSystemdによるシステム起動に焦点を当てた内容とさせていただく。Systemdを利用したシステム管理については、後日別の記事を投稿する予定だ。なお、当記事はRHEL7のベースとなっているFedora19を元に動作確認させていただいた。

    「Systemd」を理解する ーシステム起動編ー | ギークを目指して
  • 「Systemd」を理解する ーシステム管理編ー | ギークを目指して

    前回の記事「Systemd」を理解するーシステム起動編ーでは、Systemdの概念とSystemdによるLinux起動プロセスの内容を解説させていただいた。第二回となる今回の記事では、Systemdを利用したシステムの管理方法を記載していきたいと思う。 今回の記事ではSystemdのsystemctlコマンドを利用したサービス(プロセス)管理方法と、journalctlコマンドを利用したSystemd journalログ照会の2章立てでSystemdによるシステム管理を解説させていただく。また、各コマンドは先日リリースされたCentOS7上で動作確認させていただいた。 systemctlを利用してサービスを管理する Systemd環境にてサービス管理を行う場合、主にsystemctlコマンドを利用するが、一部、従来のコマンドも利用可能となっている。使途別のコマンドを見ていこう。 Unit

  • CSS Triggers List - What Kind of Changes You Can Make

    • Layout • Paint • Composite align-content Changing align-content alters the geometry of the element. That means that it may affect the position or size of other elements on the page, both of which require the browser to perform layout operations. Once those layout operations have completed any damaged pixels will need to be painted and the page must then be composited together. align-items Changi

    CSS Triggers List - What Kind of Changes You Can Make
    hbKOT
    hbKOT 2020/05/06
  • 日本語対応!CSS Flexboxのチートシートを作ったので配布します | Webクリエイターボックス

    2021年12月18日 CSS, ダウンロード FlexboxとはFlexible Box Layout Moduleのことで、その名の通りフレキシブルで簡単にレイアウトが組めちゃう素敵ボックスです。現在ほとんどすべての最新ブラウザーでFlexboxをサポートしており、Flexboxを使ったレイアウト組みが今後のWebデザインのスタンダードとなるでしょう。Webクリエイターボックスでは以前からFlexboxの使い方について紹介してきたのですが、最近Flexboxが浸透してきたこともあってか各プロパティの使い方について質問される機会が増えてきたので、チートシートとしてまとめてみました。この記事ではなるべく画像メインでプロパティーの使い方を紹介したいと思います! ↑私が10年以上利用している会計ソフト! 動画で学ぶCSS Flexbox この記事はYouTube動画でも解説しています。動画派の

    日本語対応!CSS Flexboxのチートシートを作ったので配布します | Webクリエイターボックス
  • JsDoc3-manual-jp

    JsDocとは、JavaDocライクなドキュメント作成ツールです。 JavaScriptは非常に柔軟な言語であるため、ドキュメントなしに他人のコードを読むことはかなり骨の折れる作業です。 しかし、いちいちドキュメントを書く作業もまた骨の折れる作業です。 JsDocはドキュメントを書く手間を大幅に低減してくれます。

    JsDoc3-manual-jp
  • TypeScript Handbook を読む (1. Basic Types) - Qiita

    そろそろ TypeScript をきちんと勉強するかー、ということで 公式ページ の Handbook を読み進めていった読書(?)メモ。 バージョンとしては 2.2 になるのかな? 随時更新中 公式ページの適当翻訳メモなので、間違いがあってもご了承ください。 Basic Types (今ココ) Variable Declarations Interfaces Classes Functions Generics Enums Type Inference Type Compatibility Advanced Types Symbols Iterators and Generators Modules Namespaces Namespaces and Modules Module Resolution Declaration Merging JSX Decorators Mixins T

    TypeScript Handbook を読む (1. Basic Types) - Qiita
  • TypeScript Deep Dive 日本語版 | TypeScript Deep Dive 日本語版

    出典: https://www.npmtrends.com/typescript TypeScriptJavaScriptを拡張して作られたプログラミング言語です。トレンドが示すとおり、TypeScriptJavaScriptに代わって第一に選択される言語になりました。TypeScriptが提供する静的型システムは、コードの保守性と可読性を大幅に向上させます。またブラウザ等の互換性を心配することなく、モダンで便利なJavaScriptの機能を利用できます。 TypeScript DeepDiveは初心者からベテランまで役立つオープンソースのドキュメントです。JavaScriptのモダンな機能からTypeScriptの様々な魔法に至るまで丁寧に説明されています。多くのコードサンプルがあり、具体的なTypeScriptの使い方を簡単に理解できます。TypeScript DeepDive日

    TypeScript Deep Dive 日本語版 | TypeScript Deep Dive 日本語版
  • TypeScriptの型入門 - Qiita

    TypeScriptは型がついたJavaScriptです。プログラミングにおいて型があることの恩恵は大きく、近頃AltJSの代表格として人気を集めています。TypeScriptはもともと型のないJavaScriptで書かれるコードに型を付けることを使命としていることもあり、たまに変な型が追加されます。例えばTypeScript2.8で追加されたconditional typesはずいぶん注目を集めました。これによってTypeScriptの型システムの表現力が広がりましたが、一方でTypeScriptを書いている人の中には、よく分からない型が増えてついて行けない、一部の人たちが長くてよく分からない型定義を書いて喜んでいるだけと思っている方もいるのではないでしょうか。実際、健全にJavaScriptを書いていれば、自分でそのような変な型を書くことはあまり多くありません。 そこで、この記事ではT

    TypeScriptの型入門 - Qiita
  • @typescript-eslint ことはじめ - teppeis blog

    追記: 2019/05/01 最近の@typescript-eslint/eslint-plugin, Prettierのアップデートによって、正式にTypeScript 3.4対応されました。一通り普通に動いてる感じ。 これまで自分で使っていて問題になったのがパフォーマンス。ESLint単体やTSLintに比べて、プロジェクトによるだろうけど2倍以上遅い。体感で結構辛い。 Poor performance on some projects · Issue #389 · typescript-eslint/typescript-eslint これはTypeScriptのパーサーを通す部分の構造上の問題が原因なので、簡単には直せなそうな気配。 とりあえず、個人的には型を必要とするルールにそこまでの価値を感じていないので、該当ルールを無効にしてparserOptions > projectを削

    @typescript-eslint ことはじめ - teppeis blog
  • Introduction · Webフロントエンド パフォーマンス改善ハンドブック

    Webフロントエンド パフォーマンス改善ハンドブック このパフォーマンス改善ハンドブックでは、ウェブアプリケーションにおけるフロントエンドのパフォーマンス改善について扱っています。 ダウンロード版 埋め込み動画を再生できないなど一部制限がありますが、ダウンロード版を配布しています。 PDF版 EPUB版 MOBI版 目的 このハンドブックでは過去に行った改善の事例を中心に紹介しています。 そのため、現在の最適な解決方法を提案するものではありません。 また、アプリケーションによっても最適な解決方法は異なります。 今回の事例ではViewライブラリにReactを使い映像再生プレイヤーなどある程度複雑な機能を持ったウェブアプリケーションのフロントを扱います。 具体的にはニコニコ生放送(以下「生放送」)で行った事例を中心に書かれています。 開発と平行して行われていたため、React 15から16の間

  • Nuxt.jsの新規プロジェクトでいい感じのテスト環境をつくる@2018 - Qiita

    最新版=>フロントエンドのテストについて考える 現在、新規プロジェクトで、Nuxt.js+TypeScriptを使ったSPAの開発を行っています。この記事では、そういったケースにおいての、Nuxt.jsアプリケーションでのテストに対する考え方と、その方法を紹介します。 TL;DR ユニットテスト/結合テスト=>Jest UIテスト=>Storybookをベースに、Jestで足りない部分を補う プロジェクト技術スタック Nuxt.js Vue.js Vuex TypeScript Docker テスト種別の整理 簡単に、今回登場するテスト種別の整理をしておきます。より詳しくは、ググったり書籍を読んだりするのをおすすめします。 ユニットテスト - 個別の関数やクラス、コンポーネントをテストする。 結合テスト - 複数の関数やコンポーネントをつなぎこんでテストする。 UIテスト - ブラウザを

    Nuxt.jsの新規プロジェクトでいい感じのテスト環境をつくる@2018 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Vue.js + Vuexでデータが循環する全体像を図解してみた - Qiita

    2019年の2月まで表参道のプログラミングスクールでVue.js(+Nuxt.js)を教えていました。 とある生徒に「Vue.jsとVuexの関連がわからないので図解して欲しい」と頼まれてホワイトボードにサクッと書いて説明してみたらわかりやすいと大好評。 しかもその生徒が私のラフ図をキレイな動画に作り直してくれたのでカットごとの紹介記事を書くことにしました。 この記事でわかること state/mutations/commit/actions/dispatchの違いがわかるようになります。 getterやsubscribeについては扱いません。 実際のコードの書き方にも触れません。 Vuexを使ってはいるけど理解できなくて苦しんでいる方向けの内容です。 なぜVuexを使うのか Vuexの図解に入る前に、私がVuexを使っている理由を説明しておきます。 Vuexのメリットが明確でないと図があっ

    Vue.js + Vuexでデータが循環する全体像を図解してみた - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 組織にテストを書く文化を根付かせる戦略と戦術(2019夏版) / Strategy and Tactics of Building Automated Testing Culture into Organization 2019 Summer Edition

    デブサミ夏 【B-4】 2019/07/02 13:15 ~ 14:00 https://event.shoeisha.jp/devsumi/20190702/session/2077/

    組織にテストを書く文化を根付かせる戦略と戦術(2019夏版) / Strategy and Tactics of Building Automated Testing Culture into Organization 2019 Summer Edition
  • 大規模 Web サービスの ブラウザテスト自動化・高速化

    https://atnd.org/events/66159 で実施したプレゼン資料

    大規模 Web サービスの ブラウザテスト自動化・高速化
    hbKOT
    hbKOT 2020/05/06
  • Deep Learning

    An MIT Press book Ian Goodfellow and Yoshua Bengio and Aaron Courville The Deep Learning textbook is a resource intended to help students and practitioners enter the field of machine learning in general and deep learning in particular. The online version of the book is now complete and will remain available online for free. The deep learning textbook can now be ordered on Amazon. For up to date an

  • https://ocw.nagoya-u.jp/files/247/03_conf_interval_test.pdf

    hbKOT
    hbKOT 2020/05/06
  • 超シンプルにTensorFlowでDQN (Deep Q Network) を実装してみる 〜導入編〜  | ALGO GEEKS

    みなさん、DQNしてますか? DQNについては、下記の記事によくまとめられており、実装してみようとした方も多いのではないでしょうか。 DQNの生い立ち + Deep Q-NetworkをChainerで書いた ゼロからDeepまで学ぶ強化学習 しかし、いざ自力で動作させてみようとすると、こんな問題にぶち当たると思います。 「学習時間なげえ。。。」 DQNに限らず、ディープラーニングのモデルを学習させようとすると、平気で数日以上かかります。 そして、学習させたモデルが期待通りの動作をしなかったとしたら、もう投げ出したくなってしまいます。 (よくある話です) なので、筆者が新しいモデルを一から実装する際には、なるべく単純なモデル、データから始めるようにしています。 ここでは、超シンプルなDQNを実装し、動作させてみることにします。 早速いってみましょう。CPUで3分もあれば学習が終わります!

    超シンプルにTensorFlowでDQN (Deep Q Network) を実装してみる 〜導入編〜  | ALGO GEEKS
  • Pythonではじめる強化学習 - Qiita

    はじめに みなさん、強化学習してますか? 強化学習はロボットや、囲碁や将棋のようなゲーム、対話システム等に応用できる楽しい技術です。 強化学習とは、試行錯誤を通じて環境に適応する学習制御の枠組みです。教師あり学習では入力に対する正しい出力を与えて学習させました。強化学習では、入力に対する正しい出力を与える代わりに、一連の行動に対する良し悪しを評価する「報酬」というスカラーの評価値が与え、これを手がかりに学習を行います。以下に強化学習の枠組みを示します。 エージェントは時刻 $t$ において環境の状態 $s_t$ を観測 観測した状態から行動 $a_t$ を決定 エージェントは行動を実行 環境は新しい状態 $s_{t+1}$ に遷移 遷移に応じた報酬 $r_{t+1}$ を獲得 学習する ステップ1から繰り返す 強化学習の目的は、エージェントが取得する利得(累積報酬)を最大化するような、状態

    Pythonではじめる強化学習 - Qiita
  • http://www.jnns.org/previous/niss/2000/text/koike2.pdf

  • Seeing Theory

    Chapter 1 Basic Probability This chapter is an introduction to the basic concepts of probability theory.

    Seeing Theory
    hbKOT
    hbKOT 2020/05/06
  • A Primer on Bézier Curves

    A free, online book for when you really need to know how to do Bézier things. Read this in your own language: English 日語 (24%) 中文 (35%) Русский (24%) Українська (2%) 한국어 (9%) (Don't see your language listed, or want to see it reach 100%? Help translate this content!) Welcome to the Primer on Bezier Curves. This is a free website/ebook dealing with both the maths and programming aspects of Bezier

    A Primer on Bézier Curves
    hbKOT
    hbKOT 2020/05/06
  • 目次 (やる夫で学ぶディジタル信号処理)

    目次 (やる夫で学ぶディジタル信号処理)

    hbKOT
    hbKOT 2020/05/06
  • 2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜

    2015-01-27 Docker introduction ( http://goo.gl/gPtECf )の最新版です。 @uzyexeRead less

    2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
    hbKOT
    hbKOT 2020/05/06
  • Dockerfileを書く時の注意とかコツとかハックとか | Kim's Tech Blog

    目次 なぜDockerfileを使うのか? ADDとDockerfileにおいてのコンテキストを理解する CMDでコンテナをバイナリのように扱う CMDとENTRYPOINTの違い exec format error ビルド時のキャッシュについて: キャッシュが有効なときと無効なとき ある一行でキャッシュが使われなかったらそれ以降のすべての行でキャッシュは使われない 何もしないコマンドを追加してもキャッシュは無効になる コマンドと引数の間に意味のないスペースの入れてもキャッシュは無効となる Dockerfileの行に意味のないスペースを入れてもキャッシュは有効 冪等ではない命令でもキャッシュは効いてしまう ADD以降にある命令はキャッシュされない (ただし、0.7.3以前のバージョンを使っている場合のみ) コンテナをバックグラウンドで動かすハック なぜDockerfileを使うのか? Do

    hbKOT
    hbKOT 2020/05/06
  • Dockerを支える技術

    Linux女子部08「Docker勉強会」 http://connpass.com/event/6318/ で使用予定の資料の一部です。 変更履歴 ver1.0 公開 ver1.1 参考資料追加、微修正 ver1.2 pid namespaceの例を変更、微修正 ver1.3 Fedora20 + Docker1.0 に手順を変更 ver1.4 dm-thinprovisiongのイメージを直接操作する手順を復活 ver1.5 LVMによるdm-thinprovisioningの図を追加 ver1.6 微修正 ver1.7 LVMでのdm-thin snapshotは変更できない旨を記載 、スナップショット作成の図を微修正 ver1.8 「LVMでのdm-thin snapshotは変更できない旨」は間違ってたので、snapshotを有効化する方法を追記Read less

    Dockerを支える技術
    hbKOT
    hbKOT 2020/05/06
  • Dockerのネットワークの基礎

    今までいろいろ触ってきて,Dockerネットワーク周りに関しては何となくは理解していたが,人に説明できるほど理解してなかったのでまとめておく.基は,Advanced networking - Docker Documentationがベースになっている. 仮想ブリッジの仕組み Dockerのネットワークは,仮想ブリッジdocker0を通じて管理され,他のネットワークとは隔離された環境で動作する. Dockerデーモンを起動すると, 仮想ブリッジdocker0の作成 ホストの既存ルートからの空きのIPアドレス空間を検索 空きから特定の範囲のIPアドレス空間を取得 取得したIPアドレス空間をdocker0に割り当て が行われる. コンテナを起動すると,コンテナには以下が割り当てられる. docker0に紐づいたveth(Virtual Ethernet)インターフェース docker0に割り

    hbKOT
    hbKOT 2020/05/06
  • DockerのHost networking機能

    DOCKER 0.11 IS THE RELEASE CANDIDATE FOR 1.0 1.0のRCである0.11はいくつかの新機能が追加された.例えば,SELinuxのサポートや,Host networking機能,Link機能でのホスト名,Docker deamonへのpingなど. この中でもHost networking機能がなかなか面白いので,実際に手を動かして検証してみた.事前知識として“Dockerのネットワークの基礎”も書きました.ネットワークに関して不安があるひとが先にみると,Host Networing機能の利点/欠点もわかりやすいと思います. TL;DR Host networking機能を使うと,異なるホスト間のコンテナの連携がちょっぴりやりやすくなる.SerfやConsulのようなサービスディスカバリーツールとの相性も良さそう. まだ出たばかりの機能で実際に使っ

    hbKOT
    hbKOT 2020/05/06
  • HTTP status code for update and delete?

    For a PUT request: HTTP 200, HTTP 204 should imply "resource updated successfully". HTTP 201 if the PUT request created a new resource. For a DELETE request: HTTP 200 or HTTP 204 should imply "resource deleted successfully". HTTP 202 can also be returned by either operation and would imply that the instruction was accepted by the server, but not fully applied yet. It's possible that the operation

    HTTP status code for update and delete?
    hbKOT
    hbKOT 2020/05/06
  • mermaid.jsが素晴らしいけどなかなか使ってる人見かけないので実例晒す(追記あり) - Qiita

    mermaid.jsとは JavaScriptのチャート作成ライブラリです。他にも似たようなのは色々ありますが、これ一でフローチャート、シーケンス、ガントに対応してるので、個人的にお気に入り。 http://knsv.github.io/mermaid/ サイトの各チャートのページ見ると書き方と何ができるかはわかるので、ご覧あれ。 僕の使い方 JSのライブラリを自分でインポートして何かすることはほとんど無くて(後述の理由からガントだけJSで使ってるけど)、基的には以下の2つの方法で使ってる。 Haroopad フリーでクロスプラットフォーム(OS X, Win, Linux)なMarkdownエディタ。 v0.13からmermaid.jsがインテグされているので、何もしなくてもそのまま使える。 mermaid.jsのグラフの書き方は、コード表記で、言語をmermaidにしてあげるだけ。

    mermaid.jsが素晴らしいけどなかなか使ってる人見かけないので実例晒す(追記あり) - Qiita
  • 新米エンジニア(アプリ・インフラエンジニア問わず)に知っておいてほしいトラブルシューティング入門 実践編 - Qiita

    ※前回記事にてトラブルシューティング実施にあたって準備しておきたいこと(作業ログの取得方法など)を記載しておりますので、記事では割愛します。 はじめに 前回の記事の続きとなります。 新米エンジニア(アプリ・インフラエンジニア問わず)に知っておいてほしいトラブルシューティング入門 はじめの一歩編 前回に記事を書いたあと、現場でも意外と基礎を押さえた切り分けができない人が多いのではと思い、よりいろんな方に読んでいただきたくタイトルをかえてみました。 前回の記事では、トラブルシューティングの前に実施しておきたい事や心構えについて記載しました。 今回はそれを受けて実際にトラブルが起きた際の簡易的な切り分け方法についてまとめてみます。 記事の対象と扱う範囲 前回記事と同様に、初めてエンジニアとして働くことになった方々向けです。 記事のゴールが「○○できないですのですが、、」といった事象に対して

    新米エンジニア(アプリ・インフラエンジニア問わず)に知っておいてほしいトラブルシューティング入門 実践編 - Qiita
  • 新米エンジニア(アプリ・インフラエンジニア問わず)に知っておいてほしいトラブルシューティング入門 はじめの一歩編 - Qiita

    実践編はこちらです。 新米エンジニア(アプリ・インフラエンジニア問わず)に知っておいてほしいトラブルシューティング入門 実践編 6/24追記:記事中にも記載した操作ログの取得方法について、入門記事を作成しました。 Linuxサーバでカジュアルに作業ログを取得する はじめに 今の時期、多くの企業では新卒入社向けの新人研修真っ最中であるところが多いかと思います。 弊社も新人研修の真っただ中でして、私も新人向けに主にインフラ周りの講義や研修サポートを実施しています。 その中で最も質問の多い内容が 「~に接続できないのですが、、」 「○○を見ながら設定したのですが起動しません、、」 「自分のノートPCだと動いていたのですがサーバ上だと動かなくて、、、」 といった「○○できないのですが、どうしたらよいでしょうか」といったものでした。 入社当初は自分もこんな感じだったなーと思いながらも、質問を受ける

    新米エンジニア(アプリ・インフラエンジニア問わず)に知っておいてほしいトラブルシューティング入門 はじめの一歩編 - Qiita
  • Node.jsで設定ファイルを読み込む - Qiita

    Node.jsでアプリを作った時に、パラメータを設定ファイルに書き出して開発環境やステージング、プロダクション環境などで切り替えたことがあります。この時に使用できるのが、node-configモジュール。 設定ファイルとして対応しているフォーマット Javascript Object Notation - .json Javascript5 Object Notation - .json5 Yet another markup language - .yaml Javascript - .js CoffeeScript - .coffee CoffeeScript Object Notation - .cson Properties file format - .properties ファイルの読み込み順 通常は実行しているアプリの./configディレクトリ下の設定ファイルを読み込みます

    Node.jsで設定ファイルを読み込む - Qiita
  • WebAPIでエラーをどう表現すべき?15のサービスを調査してみた - Qiita

    2017-01-05 追記 2016年3月にエラーの標準形式RFC7807「Problem Details for HTTP APIs」が提案され、今日現在proposed standard(標準化への提唱)となっています。こちらも是非ご覧ください。 RFC 7807 - Problem Details for HTTP APIs HTTP APIの詳細なエラー情報をレスポンスに持たせるための仕様 最近はREST APIを提供しているサービスが増えてきていますね!また公開されるAPIだけでなく、Microservicesなアーキテクチャを採用して、バックエンドがWeb APIで通信するケースも増えてきているように思います。 APIを使うときはあまり気にしたこともなかったですが、いざAPIを設計してみるとどんなインターフェイスがいいのか、どんな形式がいいのかといった疑問が次々と出てきます。

    WebAPIでエラーをどう表現すべき?15のサービスを調査してみた - Qiita
  • 多段SSHの設定を.ssh/configにまとめる - Qiita

    概要 踏み台サーバを経由した多段SSHの設定をconfigにまとめる方法 接続するマシンは、WANやゲートウェイ内のネットワークのいずれにも属する可能性があると想定(ノートPC等) ネットワーク図 図のようにゲートウェイ経由でしかアクセスできないネットワーク内にさらにゲートウェイがあるネットワークを想定 単純な多段SSHの書き方 host gateway HostName sshgate.hoge User hoge Host RemoteHost-out HostName RemoteHost User fuga ProxyCommand ssh -W %h:%p gateway 上記の設定を~/.ssh/configに書いた後、 ssh RemoteHost-out でgateway経由でのアクセスが可能 複数に同時に設定を適応する場合 .ssh/configには複数の設定をワイルドカ

    多段SSHの設定を.ssh/configにまとめる - Qiita
    hbKOT
    hbKOT 2020/05/06
  • シェルの変数展開 - Qiita

    こちらも blog からの転載。 シェルスクリプトを作成する際にシェル変数に値を代入したり参照したりする事は頻繁に発生するが、 シェル変数の展開にも便利な使い方がある。 basename (1) や dirname (1) と同様な動作がシェルの組込みとして利用できるので資源の節約にもつながり、 上手に利用すると可読性の高いスクリプトが作成できる。 機能一覧 記述 機能

    シェルの変数展開 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 開発フロー研修 @ Wantedly - Qiita

    Githubでの開発 - Issue, Commit, Pull Request, Mention, Code Reviewに関する基的なルール ゴール 「 チーム で 長期にわたって 生産性を上げる 」 前提 みんながサービス・プロダクトについて自主的に考える組織 エンジニア全員がそれぞれオーナーシップを持ってよりプロダクトを良くすることを考える いわゆるPM職の不在 = コードは書かずに、マネージだけする人がいない これは組織による。(e.g. 外注やディレクター職の存在) けれど、Wantedlyは、多少変化しつつも、より良いサービスを生み出すために、役割の程度の差はあれ全員がプロダクトについて考え責任を持ったほうが良いと考えている。 理想型 図:「青と黄色」のチーム構成が従来の縦割り+統括チーム、「緑(金)色」のところが目指すべきマイクロサービスチーム マイクロサービスチームは、

    開発フロー研修 @ Wantedly - Qiita
    hbKOT
    hbKOT 2020/05/06
  • まずはここから!Linuxサーバでカジュアルに作業ログを取得する方法 - Qiita

    はじめに Linuxサーバ上で直接SSHで作業をする際に、その作業ログを取得する方法についてまとめてみます。 スクリプトを自前で書く、専用のツールを利用するなど様々な方法が考えられますが、ここではLinuxの標準的なコマンドでの作業ログ取得について記載します。 今回は以下のコマンドを利用します。 history script 各コマンドの基的な使い方や、覚えておくと役に立つちょっとした設定方法、最後に自動で作業ログを取得する方法について記載しました。 history 現在の作業ユーザがコマンドライン上で実行したコマンド履歴を表示するコマンドです。 $ history 1 ls 2 env 3 history 4 ls -la 5 ls -la 6 vim .bashrc 7 zsh 8 exit 9 lsblk 10 hostname …

    まずはここから!Linuxサーバでカジュアルに作業ログを取得する方法 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 本当に正しい .bashrc と .bash_profile の使ひ分け - Qiita

    .bash_profile はログイン時にのみ実行されます。具体的な用途は: 環境変数を設定する (export する変数) 環境変数はプロセス間で勝手に受け継がれるのでログイン時のみ設定すれば十分です。 .bashrc は対話モードの bash を起動する時に毎回実行されます。具体的な用途は: 環境変数でない変数を設定する (export しない変数) エイリアスを定義する シェル関数を定義する コマンドライン補完の設定をする これらは bash を起動する度に毎回設定する必要があるものです。 その他 .bash_profile ? .bashrc ? いろいろあるけどこいつらなにもの? を参照。もっと突き詰めたい人は Linux: .bashrcと.bash_profileの違いを今度こそ理解する。 Bash 以外のシェルを使用しない人は .bash_profile と .bashrc

    本当に正しい .bashrc と .bash_profile の使ひ分け - Qiita
    hbKOT
    hbKOT 2020/05/06
  • DynamoDB ベストプラクティス - Qiita

    今年は始めて、re:Inventに参加してきたので、その際に見た「Amazon DynamoDB: Data Modeling and Scaling Best Practices」というセッションの内容を共有したいと思います。 内容をだいぶ端折ってるので、間違っている場合には、びしばしツッコミいただければと思います。 では、まいります。 1. CacheはCashなり なんでDynamoDBを使うかといえば、やっぱり、ポチポチっと設定するだけで簡単に読み込み、書き込み性能を上げたり、下げたりできるっていうのが大きなポイントかと思います。 ただ、設定した性能も、データのアクセスパターンによっては思い通りの性能が出ないことがあります。 例えば、ReadCapacityを 100から5,000 に上げたとします。そうると、DynamoDBは、「オレ1人では捌き切れない」と思って、パーティション

    DynamoDB ベストプラクティス - Qiita
    hbKOT
    hbKOT 2020/05/06
    AWS_DynamoDB
  • [和訳] Amazon DynamoDB のパーティションの挙動を理解する - Qiita

    記事はAmazon DynamoDBのDeveloper Guideの中で述べられているUnderstand Partition Behaviorの翻訳です。 なお、投稿は私が個人的に訳したものであり所属する企業や団体における公式見解ならびに公式発表ではございません。 DynamoDBはパーティショニングを自動的に行います。テーブルのサイズが大きくなれば、新しくパーティションを追加します。作成されたテーブルのパーティション数について、スケールおよびアクセスパターンを元に、ご自身でお見積もりいただくことができます。これによってアプリケーションにとってベストなテーブルデザインを行う事が可能になります。 パーティション数は基的にテーブルのストレージサイズおよび provisioned throughput によって決まります。 テーブルサイズからのパーティション数算出 ・ numParti

    [和訳] Amazon DynamoDB のパーティションの挙動を理解する - Qiita
    hbKOT
    hbKOT 2020/05/06
    AWS_DynamoDB
  • 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 - Qiita

    あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 「オブジェクト指向プログラミング」と「関数型プログラミング」のたった一つのシンプルな違い あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 この記事について この記事は新人向けの研修内容を再編集してお送りいたします。 ここで述べる内容はどのようにして現在のプログラミングスタイルが生まれてきたかを理解することで、よりよいプログラムを書くためのもので、正確なソフトウェア工学の歴史を学ぶためのものではありません。正確な歴史を把握したい場合は、原典をあたるようにしてください。 また、想定している読者は「よくあるオブジェクト指向プログラミングの学習」を既にし

    新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 - Qiita
  • 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 この記事について この記事は、新人向けの研修内容を再編集してお送りします。 この記事の内

    新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 はじめに この記事は数百万行の動的型付き言語のWebアプリケーションのリファクタリング、アプリケーションアーキテクチャの再設計の経験を基に、有効だと思われる考え方やアプローチを抜粋して紹介するものです。言うまでもなくあらゆるコードベース、アーキテクチャにおいて有効なものとは限りませんので、各々の環境や状況から適切に判断してください。

    あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ - Qiita
    hbKOT
    hbKOT 2020/05/06
  • DynamoDBでのポイントまとめ - Qiita

    2018/05/24追記: AWS公式ドキュメントに Best Practices for DynamoDB が公開されているので、コチラをチェックしましょう。 0.前提 このドキュメントは、先に下記の参考資料を読み、後で振り返りやすいようポイントをまとめることを目的としています。そのため、用語などの解説は行いません。 参考資料 Must AWS Black Belt Techシリーズ Amazon DynamoDB - Slideshare Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪 - Slideshare DynamoDBによるソーシャルゲーム実装 How To - Slideshare Optional DynamoDB ベストプラクティス - Qiita AWS Summit 2014 Tokyo「Amazon DynamoDB テーブル設計と実

    DynamoDBでのポイントまとめ - Qiita
    hbKOT
    hbKOT 2020/05/06
    AWS_DynamoDB
  • 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita

    はじめに もうすっかり年末なので、これから2015年にかけてアプリケーションアーキテクチャがどのようになっていくのかという個人的な考え/妄想や背景について、「リアクティブ」というキーワードをもとににまとめてみたいと思います。 Google Trendsを見ると"reactive programming"という言葉は2010年前後から、ゆっくりとバズをし始め、現在も上昇を続けています。 また、仕事としては、2010年ごろから大規模なWebサービス開発において、フロントエンド、バックエンド、アルゴリズム改善といった様々な箇所で、リアクティブプログラミングの要素を取り入れながら、アーキテクチャの改善を進めてきました。そのため、こういったアーキテクチャがコード品質の維持や安定性の向上、実際的で複雑な問題の解決にも適応可能であるということを実感として持っています。 近年、そういった要素が様々なツール

    2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita
  • Pythonの開発環境を構築 (pythonz, virtualenv, direnv) - Qiita

    やりたいこと Pythonでアプリケーションプログラムを開発するための環境を構築します。 目標は、さしあたり以下のように設定します。 開発プロジェクトに応じて、自由にPythonのバージョンやライブラリを変えることができるようにすること プロジェクトの切り替えを手軽にできること 他のプロジェクトとは異なるバージョンのPythonを導入する際など、開発環境の構築の手間が面倒でないこと 従来、このような用途には、pyenv-virtualenv などが使われてきました。 pyenv-virtualenv は便利なのですが、コマンド引数の与えかたなどがイマイチ私の直観に合ってなかったことから、今回は pythonz , virtualenv, direnv を組み合わせて使うことにします。 direnv を使うことで、Python以外の環境構築にも役に立つというメリットもあります。 各ツールの役

    Pythonの開発環境を構築 (pythonz, virtualenv, direnv) - Qiita
    hbKOT
    hbKOT 2020/05/06
  • [git reset (--hard/--soft)]ワーキングツリー、インデックス、HEADを使いこなす方法 - Qiita

    [git reset (--hard/--soft)]ワーキングツリー、インデックス、HEADを使いこなす方法Git新人プログラマ応援 1. gitの基礎(言葉の意味) ワーキングツリー[working tree]:最新のファイルの状態 インデックス[index](ステージ[stage]):コミットするためのファイルの状態 ローカルリポジトリ[local repository]:ファイルの変更履歴を記録(手元で管理) ヘッド[HEAD]:最新のコミットの状態 リモートリポジトリ[remote repository]:ファイルの変更履歴を記録(みんなで共有) add:「ワーキングツリー → インデックス」への反映 commit:「インデックス → ローカルリポジトリ」への反映 push:「ローカルリポジトリ → リモートリポジトリ」への反映 2. git resetを使いこなす git re

    [git reset (--hard/--soft)]ワーキングツリー、インデックス、HEADを使いこなす方法 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • ターミナルのディレクトリ移動を高速化する - Qiita

    tl;dr よく使われるコマンドの一つに cd コマンドがあります。ターミナル生活の 80% 近くは cd と ls である、という英文記事を何処かで見かけました。それを効率化しようという Tips です。 目的 cd はよく使われるのに使い勝手が悪いコマンドである気がしてなりません。cd コマンドは有効なパス(相対パス、絶対パスは問わず)しか解釈してくれないからです。つまり、存在していて尚且つパスが解決できるものに限るのです。例えば、ホームディレクトリにいるときに、/home/lisa/work/dir に行こうとして cd dir とだけタイプしても no such file or directory (そんなディレクトリは見当たらないよ!)と言われてしまいます。きちんとした経路でなければならないのです。いちいちパスを覚えていない場合や、部分的にしか思い出せない場合には結構面倒ですよね

    ターミナルのディレクトリ移動を高速化する - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Redis 本番障害から学んだコードレビューの勘所

    Redis不適切利用による問題は番運用が始まってから顕在化することが多く、時限爆弾みたいな存在です。事前に防ぐにはコードレビュー段階で叩くしかありません。 Redisはスクリプト言語と相性が良く、適切に利用するとRDBと比較し驚くほど高速なプログラムを組むことができます。昨年尊敬する先輩にコードレビューで斧100くらい(レビューコメント)投げられて血まみれになりつつ学んだことを、まとめて書いてます。概要は『消えても良いデータならRedis』 Redisのメモリが溢れたら... (この話は事実ではなくファンタジーです。) 深夜電話で叩き起こされました。どうやらアクセス障害みたいです。 何人かで実機確認したら、まったくゲームが遊べない。データ不整合怖いのでメンテIN。 ほどなくしてRedisが溢れメモリ不足で新規書き込みが出来なくなっていると判明。サーバのメモリ容量は64GByteでこれ以

    Redis 本番障害から学んだコードレビューの勘所
  • 実務で役立つシェル系Tips - Qiita

    パスの末尾に/があるかないかを気にしたくない 文字列を結合してパスを生成したりするときに、パスを格納した複数の変数を文字列結合するときがあります。 dirHome="/var/lib/hoge/" workDirName="work" echo "${dirHome}${workDirName}" # /var/lib/hoge/workと表示される しかし、dirHomeやworkDirNameのような変数をコンフィグファイルで設定していたり、実際に参照するところと定義箇所が遠いときがあると厄介なことが起こりえます。 例えば、下記のようにdirHomeの末尾に/がなかったらどうなりますでしょうか?

    実務で役立つシェル系Tips - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Bashの配列でjoinやsplitする - Qiita

    ※ここに書いた僕のコードはBashの基ルールを確認しながら構築した手法って感じですが、コメントでは別の良いやり方が紹介されてるのでそちらも要チェックです! ※この記事の手法は、区切り文字が1文字のみが対象です。2文字以上の区切り文字でjoin/splitをしたい場合はこの記事の手法は使えないので他の方法を頑張ってください。

    Bashの配列でjoinやsplitする - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita

    ここ最近、沢山シェルスクリプトを書くようになりました。 元々あまりシェルスクリプトを書いたこと無かったので、色々と勉強しつつ書いてるのですが、 他のプログラミング言語とはちょっと違って独特なクセというか、発見の度におぉー!ってなることが沢山あって楽しいです。 そんなわけで、最近学んだり参考にした中で特に感動したシェルの上手い書き方をまとめてみます。 きっとまだ知らないこととかもっと上手くやる方法なんかが沢山見つかりそうなので、 もっといいやり方あるよ!って方はコメントください 何もしない : (コロン)コマンド シェルを書いていた時に非常に欲しかったコマンドがこれ!何もしない! : というコマンド(?)を利用すると、何もせずに終了ステータス0(つまり正常終了)を返します。 これが様々な事に使える万能コマンドで、これによって面倒なエラー処理を簡潔にできたり、 入力や出力のリダイレクト元/先と

    初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Pythonを書き始める前に見るべきTips - Qiita

    Pythonを使ってこの方さまざまな点につまずいたが、ここではそんなトラップを回避して快適なPython Lifeを送っていただくべく、書き始める前に知っておけばよかったというTipsをまとめておく。 Python2系と3系について Pythonには2系と3系があり、3系では後方互換性に影響のある変更が入れられている。つまり、Python3のコードはPython2では動かないことがある(逆もしかり)。 Python3ではPython2における様々な点が改善されており、今から使うなら最新版のPython3で行うのが基だ(下記でも、Python3で改善されるものは明記するようにした)。何より、Python2は2020年1月1日をもってサポートが終了した。よって今からPython2を使う理由はない。未だにPython2を使う者は、小学生にもディスられる。 しかし、世の中にはまだPython3に

    Pythonを書き始める前に見るべきTips - Qiita
    hbKOT
    hbKOT 2020/05/06
  • [翻訳] Work with network commands - Qiita

    稿は Docker とやり取りをして network や container を操作する network サブコマンドの例を示します。 コマンドは Docker Engine CLI で利用可能です。 docker network create docker network connect docker network ls docker network rm docker network disconnect docker network inspect やりたいことが明確で無いのであれば、セクションの例を試す前に Understanding Docker network を読むのがおすすめです。 bridge ネットワークに関しての例で、すぐに試すことができます。 overlay ネットワークの実験をしてみたいのであれば、 Getting started with multi-ho

    [翻訳] Work with network commands - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Kibana用途でElasticsearchを使う時の高負荷対策TIPS - Qiita

    これは Elasticsearch Advent Calendar 2015 8日目の記事です。 ログの可視化ツールとしてKibanaを使っている中で、Elasticsearch運用として色々と得られた知見を書きたいと思います。 Elasticsearchは、ライトな環境だったら特にチューニングなく安定してますがある程度ドキュメント数が積まれてくると、色々苦労があるなという印象です。 ここに書かれているのは、事情がありシングル構成で頑張った話なので、クラスタ組んでスケールするとこんな悩みはないのかもです。 でも、ログは運用系に入るのでそんなにコストかけれるとこはないのではという個人的な所感。 ラインナップとしては、下記のような感じです。 Kibana経由で重たいクエリが投げられると負荷高すぎて泣いた話 高負荷対策として、fielddata_cacheをディスクに逃がす方法 fluentdの

    Kibana用途でElasticsearchを使う時の高負荷対策TIPS - Qiita
  • 他システムとのデータベース連携について - Qiita

    システムエンジニア Advent Calendar 2015 - Qiita 20日目の記事です。 システム開発をしていると、他システムのマスタやトランザクションデータが必要となる場合がよくありますね。 システム間のデータ連携としては、 リソース共有(データベース共有、ディスク共有) アプリケーション連携(RPC、Web API、MOM1) ファイル連携(CSV連携、etc) などの方法がありますが、ここではデータベース共有を実現するためのデータベース連携方式について考えてみたいと思います。 データベース連携方式について 既存システムがレガシーであったり、違うベンダーが構築したサーバーであるなどの理由で、新機能や拡張機能を別のサーバー上で新システムとして構築する場合があります。もちろん、データベースも新たに用意する場合が多いのですが、その場合は既存システムには極力修正をいれない方針でデータ

    他システムとのデータベース連携について - Qiita
  • Elasticsearchインデクシングパフォーマンスのための考慮事項 - Qiita

    マッピングタイプを使いすぎないようにする Elasticsearchでは1つのインデックスの中に複数の異なるスキーマ定義を持つことができる。このスキーマ定義をマッピングタイプという。単に「タイプ」と呼ばれる事もある。フィールドのデータタイプとは別の概念。インデックスはデータベースに、マッピングタイプはその中のテーブルに例えられる事が多いが、同じ名前のフィールドはマッピングタイプが異なっていても定義が共有されたりして、データベースのテーブルほど互いに独立していない中途半端なものになっている。(2.0より前のバージョンではタイプごとにフィールド定義が異なっていても多少使えたりしたが、2.0以降は厳密に禁止されるようになった. 参照:Conflicting field mappings) タイプが異なっていてもデータは同じLuceneインデックスの中に混ざって入ってしまうため、タイプ間で互いに影

    Elasticsearchインデクシングパフォーマンスのための考慮事項 - Qiita
  • シェルスクリプトを書くときはset -euしておく - Qiita

    エラーがあったらシェルスクリプトをそこで打ち止めにしてくれる(exit 0以外が返るものがあったら止まるようになる)。「あっあれここでうまくいってないからデータ準備できてないのにあれあれっもうやめて!」ってなるのを防げる。 set -u 未定義の変数を使おうとしたときに打ち止めにしてくれる。Perlでいうuse strict 'vars';的なもの。 って気軽な気持ちで書いてしまって、「ん、やたら時間かかると思ったらスペルミスうわなにをするやめ」ってなるのを防げる。 一部だけ例外にしたい はてなブックマークのコメントより -e は command1 || command2 みたいなことが出来なくなるの使うことないな。-uは付けといて良いが。 確かにおっしゃるとおりですね。コマンドの失敗を考慮して書いている部分については(もしくはやたらexit 0以外するコマンドを呼ばないといけないときなど

    シェルスクリプトを書くときはset -euしておく - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Web APIにはJSONベースのフォーマットを使おう - Qiita

    { "response": { "id": 3342124, "message": "Hi!", "user": { "id": 3456, "name": "Taro Yamada", "image_url": "/images/taro.png" } } } など、どの構造がいいでしょうか? もっと違う構造も考えられます。 JSONはシンプルですが、構造に制約がなさすぎます。適切な設計を行うには適切な制約が必要です。 そこで、plain JSONに少し制約を加えたJSONベースのフォーマットを使うことをおすすめします。 もしあなたが、JSONレスポンスをどのようなフォーマットにするかをチームで議論したことがあるなら、JSON APIは『自転車置き場の議論』に対抗する武器となる。 共有された規約に従うことで、生産性が向上し、汎用的なツールを利用でき、アプリケーションという重要なものに集中

    Web APIにはJSONベースのフォーマットを使おう - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 最近よく聞くQuorumは過半数(多数決)よりも一般的でパワフルな概念だった - Qiita

    最近では珍しくもなくなった"Quorum"という言葉。Zookeeper, etcd, Serfといったクラスタ中でデータのレプリケーションを行ってくれるようなツールや、Cassandra, Riakといった分散データベース(NoSQL系)のようなツールにおいても、データの複製に一貫性を持たせる仕組みとしてよく聞かれます。 しかしながら、多くのスライドやWebの記事を読んでも、"Quorum"という語が意味するところは要するに「過半数ノードによる多数決」というような説明が多いように感じていました。 にも関わらず、"Quorum"と呼ばれているのはなぜか?そんな疑問を持っていたので、この機会に調べてみました。 そうしたら、"Quorum"は過半数/多数決という概念を一般化した非常に抽象でパワフルな概念だということがわかりましたのでここにまとめておきたいと思います。 分散システムにおけるデータ

    最近よく聞くQuorumは過半数(多数決)よりも一般的でパワフルな概念だった - Qiita
  • bashコーディング規約 - Qiita

    モチベーション 一定の品質を保ちたい 書くたびに書き方が変わるのは好ましくない シェバング(shebang)は#!/bin/shではなく#!/bin/bashにする シバン、シェバンとも言われる #!/bin/shは実行環境によって様々なシェルにシンボリックリンクになっているので、bashなら#!/bin/bashと明示しよう インデントは半角スペース2つ 1行が横に長くなり折り返されないように 処理内容および使い方をスクリプト内に記載する(usage()) 何をしてくれるスクリプトか、どのように使うのかusage()関数を用意しよう ヘッダコメントでもいいけど function usage() { cat <<_EOT_ Usage: $0 [-a] [-b] [-f filename] arg1 ... Description: hogehogehoge Options: -a aaa

    bashコーディング規約 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • bash/zshでsourceされたスクリプト内で、ファイル自身の絶対パスをとるシンプルな記法 - Qiita

    追記: コメント欄にて、若干変なパスが含まれている場合の対処方法について、補足いただきました。 ご指摘ありがとございますm(_ _)m bash / zshなどでシェルスクリプトを書いていると、環境変数の設定を外部ファイルにまとめてsource して使う、というのはよくある。 そのような場合にsourceされたファイル内での絶対パスがイマイチうまく取れない、という問題に突き当たる事がある。 bashの話: うまくいかない方法と理由 通常、シェルスクリプト内で自分自身の絶対パスをとるときによくやるのが下記の手法だとおもう。 が、単体で呼び出した場合にはちゃんと動くのだが、bashからsourceで呼び出した場合にはうまく動かない。 なぜかというと、sourceされたファイルの実行が、呼び出し元のシェルプロセス内になるから。 bashでは$0は実行コンテキストに依らず、実行ファイル名が入ってい

    bash/zshでsourceされたスクリプト内で、ファイル自身の絶対パスをとるシンプルな記法 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • シェルスクリプトのコーディングルール2014 - Qiita

    以前、シェルスクリプトを書くときに気をつける9箇条という記事を公開しましたが、あれから整理され洗練されてきたのでまとめてみました。今回は「気をつける」というよりも書くときに守っている/意識していることです。 1. 成功した時には何も返さない 簡単なコマンド mkdir を例に説明します。 ディレクトリをつくるときにこのコマンドを使用しますが、タイトル通り、正常にディレクトリの作成が行われれば、ターミナル画面上には何も表示されません。

    シェルスクリプトのコーディングルール2014 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 正規表現の基本 - Qiita

    まぁ、基的な正規表現でみんなが利用するのはこの辺かな。 2. Javaで正規表現について javaで、正規表現をプログラミングに取り入れる場合はjava.util.regexを利用する事になる。JavaDocのURLはこれ。javadoc SE6 java.util.regex.Patternクラスには、正規表現についての詳細の説明が記述されている。Javaを利用して正規表現を極めたいと思ったら一度は読むべき。 ちなみに、java.util.regex.Pattenクラスの概要はこんな記述がされている。 つまり、Javadocをしっかり読めば正規表現を理解する近道になる。 コンパイル済みの正規表現です。 正規表現は、文字列として指定し、このクラスのインスタンスにコンパイルする必要があります。結果として得られるパターンは、Matcher オブジェクトを作成するために使用されます。 このオブ

    正規表現の基本 - Qiita
  • やさしいIT業界の説明書と攻略法(特にWeb・アプリ系) - Qiita

    前置き 新卒~4年目くらいに向けたものです ちなみにコードは一切出てきません IT業界全体とWeb系では結構差がありますが、主にWeb・アプリ系を中心にお話します IT業界でもほとんど通用しますが、一部読み替えが必要な部分があります ご注意ください 結構なボリュームになりました 途中に中間地点を用意してるので 慌てずゆっくり読んでください 中間地点1 中間地点2 方針 難しいの苦手なんで簡単に書くつもりです あと、ゲームに喩えて話します 対象 プログラマー テスター システムエンジニア ディレクター デザイナー メインはエンジニアです この業界の新人教育 IT業界の中でも、特にWeb・アプリ系は非常に若い業界です 会社も若いので規模も小さく、新卒教育も充実していないパターンが少なくありません 代わりに先輩が教えてくれるかといえば、忙しかったり、先輩も分かってなかったりします 喩えるなら今の

    やさしいIT業界の説明書と攻略法(特にWeb・アプリ系) - Qiita
  • 【噂】IT業界のウソ・ホント【闇】 - Qiita

    はじめに 仕事が苦しくなると、つい仕事中にIT業界や他業界について調べてしまう私から 若手のうちは判断しづらいホントのところを若手に向けて書きます 注意 1年目~6年目の特にエンジニア向け 軸を受託Web業界においています(一番対象者が多そうだから) やさしいIT業界の説明書と攻略法の後のつもりで書いています 非常に曖昧なテーマも扱うので、厳密には合っていない可能性もあります 話半分でお願いします IT業界ブラック企業が多い? → まぁまぁホント ちゃんと理由があります プロジェクトというものが非常に難しいため 中小企業が多いため + 日の中小企業はブラックになりやすいため 人材リソースの授受があるため 残業しやすい環境が整っているため 残業なしの裁量労働制や、みなし残業が多いため 労働集約的な業態が多いため 悪い経営者が多い!というよりは 単純に難易度がそこそこ高いのだと思いま

    【噂】IT業界のウソ・ホント【闇】 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • [翻訳] Spark Architecture: Shuffle - Qiita

    TungstenのShuffleまでカバーされていて、感動してしまったので、翻訳(意訳)してみました。 元記事: Spark Architecture: Shuffle これは Apache Spark のアーキテクチャに関する2目の記事です。今回は、Spark デザインの中で、もっと面白い Shuffle について詳しく紹介します。前回の記事は、Spark のアーキテクチャとメモリ管理についてでした。 一般的に Shuffle とはなんでしょうか? 電話の履歴リストがテーブルにあり、それぞれの日にどのくらい電話があったかを数える場合を考えてください。この場合は、各レコードを"day"をキーにして(それぞれの電話の回数として)バリューを"1"として変換します。この処理の後、各キーごとのバリューを合計することでそれぞれの日の電話の回数が得られます。しかし、データがクラスタに分散して保存され

    [翻訳] Spark Architecture: Shuffle - Qiita
    hbKOT
    hbKOT 2020/05/06
  • あなたはだんだん、ファイルを読むのにlessコマンドを使いたくなる - Qiita

    サーバー上のファイルの中身を確認するときって、どんなコマンドを使っていますか? 私は、短いファイルの場合はcat、長いファイルの場合はlessを使っています。 リモートエクスプローラーから、sakuraとかで開くより楽ちんです。 あなたがlessを使いたくなる理由 moreの上位互換 「上位互換」という響きだけで、使いたくなりますよね? 名前の由来も、「moreの対義語だから」です。素敵ですね。 「moreと何が違うの?」という説明は、今どきmoreを使う機会が無いという理由から割愛します。 manやgitコマンドのデフォルトのページャー 何かが当たり前のようにlessコマンドを使っている。 これはもう、使いたくなりますよね? 簡単、早い サーバー上で と入力すればパッと画面が切り替わって、ファイルの内容を読むことができます。起動もとても早いです。 時間の節約になるんだから、使いたくなりま

    あなたはだんだん、ファイルを読むのにlessコマンドを使いたくなる - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Dockerの内部ネットワークのプライベート・アドレス帯を変更する - Qiita

    タイトルの通り、Dockerコンテナに割り当てられるIPアドレスのアドレス帯を変更します。 なぜ? デフォルトでは 172.17.0.0/16 が使われていますが、何らかの理由でこれを変更したい場合があります。 私の場合は、このアドレス帯がDockerホスト自身が所属するネットワークのアドレス帯とかぶってしまったためでした。 環境 かなり古い環境を使っています。 CentOS release 6.6 (Kernel 2.6.32) Docker version 1.7.1, build 786b29d/1.7.1 参考にした資料 Docker公式ドキュメントにも、変更の方法が記載されています。 Customize the docker0 bridge ※ 今回はこの手順だけではうまくいかなかったので、追加で行ったことも記載します。 手順 /etc/sysconfig/dockerの変更 C

    Dockerの内部ネットワークのプライベート・アドレス帯を変更する - Qiita
  • Using User Namespaces on Docker - Qiita

    User Namespaces is officially added to Docker ver. 1.10, which allows the host system to map its own uid and gid to some different uid and gid for containers' processes. This is a big improvement on Docker's security. So I will show an example of the problem that User Namespaces can resolve, and then show how to enable it. Creating a Docker Machine If you already have a docker machine to try out t

    Using User Namespaces on Docker - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Elasticsearch導入前に気を付けておきたいこと! - Qiita

    はじめに Elasticsearchを仕事で使うことになったので導入前に考えるであろうことを調査・検証し、まとめてみました。 記載されている内容はほぼ公式ドキュメントから引っ張ってきています。それぞれの章にリンクを付けてありますので、記載されていること以外に気になる部分があればそちらを参照されるとよいと思います。 インストールについて ここで設定している内容はすべてansibleのスクリプトに落としてあります。 5分あればcurl,javaのインストール、Elasticsearchのインストール・初期設定、プラグインのインストールが終わるはずです。 https://github.com/uzresk/ansible-elasticsearch2 環境 CentOS6.7 Java1.8.0_45 Elasticsearch 2.1.1 HeapSizeの設定 Elasticsearchが使

    Elasticsearch導入前に気を付けておきたいこと! - Qiita
  • git pullやgit fetchをしようとしたらエラーが出るとき - Qiita

    $ git fetch && git checkout mybranch1 error: Unable to append to .git/logs/refs/remotes/origin/mybranch2: ???????? From bitbucket.org:user1/myrepository ! 6aa2ddf..28743b7 mybranch2 -> origin/mybranch2 (unable to update local ref) error: Unable to append to .git/logs/refs/remotes/origin/mybranch3: ???????? ! 9b502e2..5c229bd mybranch3 -> origin/mybranch3 (unable to update local ref) 原因 .git/logs/r

    git pullやgit fetchをしようとしたらエラーが出るとき - Qiita
    hbKOT
    hbKOT 2020/05/06
  • MS Office ドキュメントや PDF ファイルを grep したり diff したりする - Qiita

    以前書いたこの記事は珍しく好評だった。 Word や PowerPoint のファイルを grep したり diff したりする - Qiita これは、greple コマンド用の -Mmsdoc モジュールを元にして、optex コマンドを使って office ファイルに対して様々なコマンドを実行するという内容だった。 最近 PDF ファイルを git で管理する機会があり、やはりこれも git diff したいと考えた結果、前回とは異なるアプローチで実現してみた。 pdftotext PDF ファイルをテキストベースで diff すること自体は、さして難しくはない。pdftotext というコマンドを使えば、一時ファイルを作るまでもなく、たとえば bash だったらこんな風に比較することができる。 <(command) は、bash の「プロセス置換」と呼ばれる機能で、コマンド出力をフ

    MS Office ドキュメントや PDF ファイルを grep したり diff したりする - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita

    記事では、 チームによる持続的に変更可能なWebアプリケーションの開発を目標に、フレームワーク導入時に考慮すべき22の観点を紹介する。 フレームワークによって特徴は異なるが、番導入にあたって、考慮すべきポイントはあまり変わらないので、極力フレームワーク1に依存しすぎないよう配慮する。また、話をシンプルにするため、REST APIを提供するアプリケーションを題材とする。 前提 ソフトウェアのエントロピー ソフトウェアがエントロピー増大の法則を避けられないことを、体感している開発者は多いだろう2。普通にアプリケーション開発を続けると、開発スピードは鈍化し、品質は低下してバグが増え、開発者からは技術的負債への怨嗟の声が聞かれるようになる。エントロピー増大というフォースは極めて強力で、意思を持って立ち向かわなければ、容易にダークサイドに堕ちてしまう。 関心事の分離 大規模Webアプリケーション

    Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 初心者プログラマが犯しがちな過ち25選 - Qiita

    以下はThe Mistakes I Made As a Beginner Programmerの日語訳です。 The Mistakes I Made As a Beginner Programmer 初心者プログラマが犯しがちな間違いと、それらを特定し、避けるための習慣を学ぶ方法。 まず最初に言っておくことがあります。 この記事は、誤りを犯すことを悪いと糾弾するために作成されたものではありません。 むしろ貴方が誤りに自ら気付き、あるいはその兆候を見いだし、それらを避けられるようにするために書かれたものです。 私は過去これらの誤りを犯し、それぞれから学びを得てきました。 今ではこれらを避けるようなコーディングを習慣付けるようにしています。 貴方もそうしましょう。 紹介は順不同です。 1) 設計せずに実装する 高品質なコンテンツは、一般的には容易に作成できるものではありません。 それには慎重

    初心者プログラマが犯しがちな過ち25選 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 特集!知らないと損をする計算量の話 - Qiita

    1. はじめに 今回は実務プログラミングにおいて知らず知らずのうちに遅いコードになっていそうな例をいくつか挙げて、それを計算量の観点から高速化してみたいと思います。 2. 計算量を意識することにどんな意味があるか 身近な例として、Qiita Contribution ランキングの作成を考えてみましょう。ランキングを作成するためには、各ユーザーの Contribution 数を大きい順に並び替える処理、すなわちソートが必要になります。 Qiita ユーザー数は現在およそ $30$ 万人です。標準ライブラリの sort を用いれば、それほどの計算時間はかからないと思います。しかし仮にこれを愚直な sort アルゴリズム (例えば、挿入ソートやバブルソートなど) で実行したら恐ろしいことになります。 愚直なソートは、並び替える要素の個数の 2 乗に比例した時間がかかります。すなわち $n$ を並

    特集!知らないと損をする計算量の話 - Qiita
  • 仕様変更に弱いからテストは書かない……?(´・ω・`)<仕様変更を想定するならテストを書いてくれ頼む - Qiita

    テスト書けない人をディスったらバズりました。 「スピード感重視なのでテストは書かない。テストはなぜ開発を遅くするか」 気になる反応があったので別記事にまとめておきます。 「仕様変更に弱いからテストは書かない」 テストがあると頻繁な変更に弱い、と考える方が複数いらっしゃるようです。実際に、スタートアップの現場では、昨日の決定が今日と違うなんてことはザラにあります。 私の立場は「仕様変更が多いならテストを書いてくれ頼む」です。絶対に間違いなく一行の変更も加えず書いたコードを捨てることが決まっているのなら、テストは不要な可能性が高いです。しかし私の経験上は、プロトタイプであっても変更を加えたくなることは多々あります。その際にテストがないと困るだろう?というのが今回の主張です。 前提 フロント、特にGUIは私が無知なので対象としません。 間違いなく書き捨てるコードは対象としません。少なくとも一週間

    仕様変更に弱いからテストは書かない……?(´・ω・`)<仕様変更を想定するならテストを書いてくれ頼む - Qiita
    hbKOT
    hbKOT 2020/05/06
  • スピード感重視なのでテストは書かない。テストはなぜ開発を遅くするか - Qiita

    あまりにバズってしまったので、前書きを追加 ここまでバズってしまって正直すまんかった。 この記事はもともと愚痴記事をマイルドにして投稿しただけなので「テストを勧める」とか「テストを信奉する」とかそこまで強い意図は特にありません。(私がテスト好きなのは否定しません) 「テスト書こう」に対して「そんなコストはない」と言いながら、いろいろ問題が生じる現状を愚痴りたかっただけです。愚痴るだけだと生産性がないから、なんでこんなに認識が違うんだろうと原因を考えた結果、テストを書くことに対する技術で実際にコストが大きく異なるなと気づいて書いた次第です。 この記事の対象は「テストを書く技術がなく、テストを書く気がない」組織に所属する人です。 アジャイル開発において「テストコードは当然」なのか?という記事で(私の記事をきっかけとして)テストコードの「徹底」とか「カバレッジ100%」とかを批判し、トレードオフ

    スピード感重視なのでテストは書かない。テストはなぜ開発を遅くするか - Qiita
    hbKOT
    hbKOT 2020/05/06
  • ログ設計指針

    概要 このドキュメントは、効率的かつ安定した、システム開発/運用をするためのログ設計指針です。 的確かつ無駄のない、ログ出力を目指します。 ログレベル ログの緊急度や用途により、以下のようにログレベルを設定する。 Log4j のログレベルを踏襲しているため、運用の状況によっては Critical などのレベルを適宜追加すると良い。 PHP における PSR-3 では、さらに細分化され emergency, alert, critical, error, warning, notice, info, debug となっている。 「出力先」「運用時の対応」は、各プロジェクトのポリシーに準じてください。 レベル 概要 説明 出力先 運用時の対応

    ログ設計指針
  • アジャイル開発を支えるためのCI/CD - Qiita

    アジャイル開発での何度も行われるプロダクトリリース アジャイル開発は早いサイクルが回っているチームでは1週間のうちに何度もリリースを行います。 リリースを何度も行うメリットは 開発中も常に動く状態のアプリケーションが確認できること 壊れたときにすぐに気がつけること 変更箇所を他の人もすぐ取り込むことが出来ること マネージャや顧客に対して常に進捗をデモという形で見せれること 他にも色々 このようなものがあります。 そもそもビッグバンリリースはテストも大変ですし、問題が起こったときに、どの箇所に問題があるかを調査する範囲を調べることが大変です。 バグの修正に掛かる時間の大半を占めるのがバグの調査時間になります。 半日以上かかって調査ししたバグが、1行のコード修正で終わってしまうこともよくあります。 細かくリリースをすることで、壊れた場合にそのコミットの変更の中におかしなところがあったと気がつく

    アジャイル開発を支えるためのCI/CD - Qiita
  • 静的サイトをとにかく高速化する話

    自分のポートフォリオサイトをサンプルに、どのくらいの容量削減ができるのかを確認してみました。 jsおよびCSSは、サイトの表示に必要な要素を1ファイルにバンドルした状態です。 画像ファイルはjpegの圧縮率などによって最終的なサイズが大幅に変化するので、jsとCSSのサイズ変化のみを取り上げました。 Bootstrap + Font Awesomeのような重量級フレームワークを使用しても、十分に実用的な容量まで削減できました。これならスマホ+3G回線での表示も心配ありません。 手法 適用しやすさを順に手法を並べると、以下のようになります。 遅延する 圧縮する キャッシュする まとめて削る 遅延する サイト上にあるほとんどのリソースは、実際には後から読み込んでも問題なく動作します。 まず最小限の構成でサイトを表示させ、重いファイルは後から読み込みます。 javascriptの遅延読み込み h

    静的サイトをとにかく高速化する話
  • Docker の Data Volume まわりを整理する - Qiita

    2月くらいに Docker の Data Volume について調べたことを、今更まとめました。 例によって間違いがあったら指摘していただけると嬉しいです。 Volume 指定のオプションとそれぞれの意味 コンテナ起動時(docker run)の Data Volume を指定するオプションには下記があります。 オプション 意味

    Docker の Data Volume まわりを整理する - Qiita
    hbKOT
    hbKOT 2020/05/06
  • RESTful API設計におけるHTTPステータスコードの指針 - Qiita

    RESTful APIを設計した際のステータスコードの指針です。 メソッド別 GET 成功した場合 200 OK:最も一般的 304 Not Modified:条件付きGETでキャッシュを使わせたい場合 POST 成功した場合 201 Created 作成したリソースのURIを示すLocationヘッダを付けておく 議論 200 OKだとまずいのか? 200 OKを応答する実装も多くあり、まずいというわけでもない 200 OKはPOST結果がキャッシュ可能、201 CreatedはPOST結果がキャッシュ不可能として分けてもいいが、そこまでする必要があるか?(POSTのキャッシュは一般的ではない) 204 No Contentだとまずいのか? クライアントがPOST結果を事前に全て知っているわけではないのでNo Contentは不親切では? 失敗した場合 409 Conflict:作成しよ

    RESTful API設計におけるHTTPステータスコードの指針 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • ぼくたちのかんがえたさいきょうのi18n国家

    記事は下記のtweetから始まるスレッドに触発され、@qnighyや@na4zagin3からアイディアを拝借して書いた。 i18n力が最強の国は国内に複数の言語があり、そのうちいくつかは他国でも使われている言語の方言で、1バイト文字での代替表記が困難で、歴史的にISO-2022ベースの文字コードとUnicodeと独自エンコーディングが混在していて、フリガナなどの特殊な組版規則があり、右書き左書き縦書きを併用し、 — Masaki Hara (@qnighy) 2018年8月6日 皆さんのおかげで最強のi18n国家が建設されつつある。一瞬で滅びそう — Masaki Hara (@qnighy) 2018年8月6日 長い前置き ソフトウェアのi18nは難しい。自文化では当たり前と思っていてハードコードしてしまった仮定が崩れて、大幅な再設計を余儀なくされるからだ。気づいて再設計できればまだ良

    ぼくたちのかんがえたさいきょうのi18n国家
    hbKOT
    hbKOT 2020/05/06
  • あなたのサイトのjpeg画像は過剰品質である。多分。 - Qiita

    はじめに Webサイト掲載用のjpeg画像の品質設定を絞り込むためのツールを作りました。 imagemin-parameter-report また、ツールの動作イメージを掴むためにデモページを用意しました。とりあえず触ってみてください。 Demoページ この記事は、このツールとその使い方、そしてチェックシートを利用して、WEBサイト構築の初期段階でjpegの品質設定を絞り込む手法を共有するためのものです。 なお、このリポートツールで扱うのはあくまでWebサイトに掲載する一般的な画像です。また、作業の最終目的はサイトの高速化です。 jpegの品質問題 画像ファイルはWebサイトの総転送量と表示時間に非常に大きな影響を与えます。しかし、jpegの品質設定を詰める作業は以下の理由で難しくなります。 人手が足りない jpegの品質設定はプロジェクトのなるべく早いうちに決めるべきです。少なくともプロ

    あなたのサイトのjpeg画像は過剰品質である。多分。 - Qiita
  • プログラマが知っているとよい色(1)使い(JIS安全色) - Qiita

    <この項は書きかけです。順次追記します。> This section is about to be written. I will add it little by little. 目次の前に(forward) この記事は、インターンシップの大学生の方に、「ゲームはするよりもゲームプログラムを書く方が楽しい」ということを説明した際に、その説明の一部として書いたものです。ゲームを卒業研究の題材にするなら、ゲームの中での色使いで、人による見え方の違いに配慮した改訂のあったJIS安全色(国際整合:ISO 3864-4:2011(Graphical symbols−Safety colours and safety signs−Part 4: Colorimetric and photometric properties of safety sign materials))を参考にするとよいよとい

    プログラマが知っているとよい色(1)使い(JIS安全色) - Qiita
  • クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた - Qiita

    はじめに クリーンアーキテクチャの書籍を読んだので、実際にクリーンアーキテクチャの考え方を採用したREST APIGO言語で実装してみた。 ↓↓↓↓ソースコード↓↓↓↓ https://github.com/yoshinorihisakawa/sample-api-hoop/tree/develop この記事ではクリーンアーキテクチャの説明というよりかは、実装ベースの実践的な内容にしている。 対象読者 ・クリーンアーキテクチャで実装されたソースコードを理解したい人 ・クリーンアーキテクチャの右下の図がよくわからない人 ・アーキテクチャについて勉強を始めた初心者 クリーンアーキテクチャとは? クリーンアーキテクチャとは、8th Light, Inc.のブログ記事で提案されている。 一言で言うと、依存関係をコントロールし持続可能なソフトウェアを実現するための体系的な手法である。 ※ DIやD

    クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 「さようなら ImageMagick」の考察 - Qiita

    はじめに サイボウズさんの ImageMagick の利用をやめる記事について少し思う所を書きます。否定というよりアシストのつもりです。(2018年08月26日投稿) さようなら ImageMagick 自分のスタンスを3行でまとめると、 policy.xml で読み書き出来るファイル形式を絞れば、いうほど怖くはない ただ、ImageMagick に限らずサーバサイドで動かすのは手間と覚悟が要る Yahoobleed の件でコード品質が信用ならないと言われたら、ごめんなさい 「ImageMagick を外した理由」 サイボウズさんのブログでは、2017年の ImageMagick 脆弱性報告数が多いので駄目との事です。 脆弱性 ImageMagick には脆弱性が大量に存在します。 2017 年に報告された ImageMagick の脆弱性は 236 件 でした。 大量にある上にリモートコ

    「さようなら ImageMagick」の考察 - Qiita
  • ソフトウェア開発に役立つ 心理学的現象、行動経済学の概念など 15題 - Qiita

    ソフトウェア開発の様々な局面で役に立つ、心理学的現象や行動経済学についての知識です。 経験則で把握済の事柄もあるかもしれませんが、 言語化して名前を与えることで何かのときにスッと出せたり、周囲の方々と議論しやすくなったりすると思います。 以下の3つの分類で記載いたします。 打ち合わせやチームワークに役立つ知識 設計やプログラミングに役立つ知識 メンタルヘルスケアに役立つ知識 打ち合わせやチームワークに役立つ知識 自己効力感 自己効力感とは、自分には何かを達成する能力がある、と信じる感覚です。 自己効力感が形成されていると、仕事の意欲が増したり、効率が上がったりします。 「この仕事は絶対ムリ~(>_<)!」と感じている仕事についてやる気がわかなかったり進捗が出なかったりするのは、自己効力感の欠如が原因であることがあります。一旦やる気を出すと案外簡単に進められたとか、真剣に取り組むと思ったより

    ソフトウェア開発に役立つ 心理学的現象、行動経済学の概念など 15題 - Qiita
  • アジャイル開発において「テストコードは当然」なのか? - Qiita

    https://qiita.com/aimof/items/d68bdb347283ee2dbccf を見て、Web開発現場的にはちょっともやっとしたので、書いてみます。 言いたいことを3行でまとめると テストコードを書くことの有用性そのものは疑いようがない ただし、アジャイルWebサービスの開発においては、 「テストコードを書くことを当然」 としてしまう事は、開発スピードや品質面において選択肢を狭めてしまう可能性がある。 テストコードを特別視せず、コードレビューやE2Eテストやユーザテストなど、有限の工数の中で、 複数の手法がトレードオフにあること を前提に、プロジェクトの品質管理を考えていくべき 前提条件 スタートアップやWeb開発のように、厳密に定められた納期や開発スコープ、あるいはゴールがない新規・継続開発 筆者の属性 Web系のToCやBtoBtoCサービスを中心に手がけていま

    アジャイル開発において「テストコードは当然」なのか? - Qiita
  • Prettier 入門 ~ESLintとの違いを理解して併用する~ - Qiita

    お知らせ(2021/05/26 追記) 以前はeslint --fixなどで ESLint を実行時に Prettier でコードを整形し、整形したコードに対して構文チェックが実行されるようにすることが推奨されていました。 ESLint で Prettier を実行するためには、ESLint の Plugin が必要でしたが、これを利用することが公式で推奨されなくなりました(詳細はこちら)。 そのため、記事を更新して Prettier と ESLint をそれぞれ実行させるような内容に変更しました(ついでに husky のバージョンも上げており、それに関する内容も更新しています)。 更新前のコードや記事は以下にありますので、必要に応じてご確認ください。 はじめに Prettier(v.2.3.0) に関しての備忘録です。 「Prettier の何が便利なのかよくわからない」 「ESLint

    Prettier 入門 ~ESLintとの違いを理解して併用する~ - Qiita
  • JavaScriptのイベントをたくさん見られるサイトを作る - Qiita

    JavaScriptのイベント、ややこしいですよね。 名前が似ているものや、使い方にクセがあるものもあり、簡単なようで実装に手間どることが多いです。なので、よく使うイベントの概要をざっくりまとめ、それぞれの実行タイミングとイベントオブジェクトをコンソールで確認できるサイトを作りました。 忘れたときに調べればいいだけの話なので、わざわざサイトを作る必要はなかったのですが、イベントを眺めるのが好きな人に見ていただけたら嬉しいです。 JavaScriptのイベントをたくさん見られるサイト ひたすらaddEventListenerしていたら、イベントに愛着が湧いたので、イベントの実装でハマりそうなところをまとめています。 なぜイベントを使うのか マウスなどはイベントじゃないと値が取得できませんが、頑張ればイベントを使わずとも実装できるものもあります。たとえば、テキストボックスの変更を知りたいだけで

    JavaScriptのイベントをたくさん見られるサイトを作る - Qiita
  • ウェブカツ運営者が語る!WEBサービスで起業したい人に読んで欲しい20のコト - Qiita

    プログラミング学習サービスやら、ペットサロン予約サービス、風俗予約サービスなど色々とやっている「かずきち」です。 ◾️その他Qiita記事 エンジニアで稼ぐために大切な20のコト ウェブカツ生を雇わない?転職できない?著作権無断使用の炎上から1年を経て思うところをぶっちゃける。 テックキャンプをウェブカツ!! 顧問が徹底レビューしてぶった切ってみた ■運営サービス一部 http://crazy-wp.com/ フリーランスエンジニアを育成するオンライン最大級のプログラミングスクール「ウェブカツ」 http://webukatu.com/ ■プログラミングスクール「ウェブカツ」の出版 「小学生からでもプログラミングを楽しく学べる漫画作りたいなー」と思い立ち、外注してウェブカツで漫画を作りました。KADOKAWAさんより出版しています。 はたらくプログラミング 完全版 (コミックエッセイ)

    ウェブカツ運営者が語る!WEBサービスで起業したい人に読んで欲しい20のコト - Qiita
    hbKOT
    hbKOT 2020/05/06
  • PHP - エンジニアで稼ぐために大切な19のコト - Qiita

    プログラミング学習サービスやら、ペットサロン予約サービス、風俗検索サービスなど色々とやっている「かずきち」です。 ◾️Qiita記事 WEBサービス起業したい人に読んで欲しい20のコト ウェブカツ生を雇わない?転職できない?著作権無断使用の炎上から1年を経て思うところをぶっちゃける。 テックキャンプをウェブカツ!! 顧問が徹底レビューしてぶった切ってみた ■運営サービス一部 http://crazy-wp.com/ フリーランスエンジニアを育成するオンライン最大級のプログラミングスクール「ウェブカツ」 http://webukatu.com/ ■プログラミングスクール「ウェブカツ」の出版 「小学生からでもプログラミングを楽しく学べる漫画作りたいなー」と思い立ち、外注してウェブカツで漫画を作りました。KADOKAWAさんより出版しています。 はたらくプログラミング 完全版 (コミックエ

    PHP - エンジニアで稼ぐために大切な19のコト - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 「お前らのフリーランスになるメリットは間違っている」というお話 - Qiita

    どうも、かずきちです。 何やらエンジニア界隈ではいつの間にか有名人になっているようで。 ◾️Qiita記事 エンジニアで稼ぐために大切な20のコト WEBサービス起業したい人に読んで欲しい20のコト ウェブカツ生を雇わない?転職できない?著作権無断使用の炎上から1年を経て思うところをぶっちゃける。 テックキャンプをウェブカツ!! 顧問が徹底レビューしてぶった切ってみた ■運営サービス一部 http://crazy-wp.com/ フリーランスエンジニアを育成するオンライン最大級のプログラミングスクール「ウェブカツ」 http://webukatu.com/ ■プログラミングスクール「ウェブカツ」の出版 「小学生からでもプログラミングを楽しく学べる漫画作りたいなー」と思い立ち、外注してウェブカツで漫画を作りました。KADOKAWAさんより出版しています。 はたらくプログラミング 完全版

    「お前らのフリーランスになるメリットは間違っている」というお話 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Webサーバをセキュアに保つ設定のまとめ - Qiita

    はじめに Webサーバをセキュアに保つ為、個人的に行っている設定をざっくりまとめてみました。 設定内容はApache 2.4での運用を想定していますので、他のHTTPdをお使いの方は適宜読み替えてください。 各設定項目は以下のオンラインテストサイトでA+相当を取ることを目指しています。 設定ファイル生成 Mozilla SSL Configuration Generator オンラインテスト Mozilla Observatory Qualys SSL Server Test 前提条件 以下で設定する項目は特にHTTPS接続や攻撃防止に関するものになります。 HTTPdそのものに関する基設定については別記事をご参照ください。 SSLProtocol 危殆化した古いプロトコルを有効にしている場合、古いプロトコルを標的としたダウングレード攻撃等を受ける可能性がある為、新しいプロトコルのみを有

    Webサーバをセキュアに保つ設定のまとめ - Qiita
  • フリーランスエンジニアの単価を決める - Qiita

    記事概要 書いた目的 フリーランスエンジニアの単価設定に「情報の非対称性」ある フリーランスは市場動向掴んで「売り手」になるべき エンジニア応援したい、優秀なエンジニア年収伸ばせば良いし、キャリアミスマッチしてるエンジニアは再構築すれば良い 読者想定はフリーランスエンジニア、qiitaに多そうだから投稿 記事の内容 1. 自分のプロフィールと単価を公開 前職年収900万円で、フリーランス日額6.5万円〜10万円 40社ぐらい営業して、1/3は話が進む 2. この単価設定にした根拠を説明 前職基準、採用市場、派遣、フリーランス市場、英語圏 3. 終わりに 「こんな人材求められてるんじゃないかな」、「こうしたらキャリア積めるかも」を記載 正社員に戻って修行するなら、開発チームが強い(CTOが役員として存在)イケてるWeb企業で正社員キャリア積むことを目指すべき フリーランスのままでも「チーム

    フリーランスエンジニアの単価を決める - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 実際のところ「ブラウザを立ち上げてページが表示されるまで」には何が起きるのか - Qiita

    9月15日(土) DNSについて追記しました。バックエンド?今はクラウドがきっと上手くやってくれるので深く考える必要は無いんですよ(知らないので書けません😔) 問題のツイート 面接の質問で「ブラウザを立ち上げてページが表示されるまでの仕組みを全て知ってる限り説明してください」ってのをやると結構Web系の知識どれだけあるか分かると思ってる — 🍛🍺 (@tan_go238) September 10, 2018 解釈 今回は「ChromeのURL欄に入力してからページが表示されるまで」をやります。ブラウザの起動云々はWeb系の話じゃないと信じてます。 1. HTTPリクエストが飛ぶ HTTP2のヘッダ圧縮技術に全て書いてありました。 (追記)下のリクエストヘッダはテキストで書かれていますが、実際にはこれをバイナリにしたものが飛んでいるとのことです。segfoさんありがとうございます!

    実際のところ「ブラウザを立ち上げてページが表示されるまで」には何が起きるのか - Qiita
  • なぜ我々はいまだに文字列でコメントを書いているのか - Qiita

    あるいは、画像コメントのすすめ。 TL;DR 画像コメントのほうが意図が伝わりやすい 画像URLからツールチップで画像表示してくれるVSCode拡張機能があるよ その場で画像を作るSVGエディタもあったよ 問題提起 みなさんは、少し複雑なアルゴリズムを書くことになったときどうしていますか。 たいていの場合、いきなりコーティングに取り掛かるのでなく、 雰囲気をつかむためメモやホワイトボードに落書きすると思います。 特に幾何計算では簡単なものでも図を描いた方がいいです。こんな感じ。 図を書いたら後はコードに落とすだけです。 ね、簡単でしょう? // 指定した直線を対称軸としたときの指定した点の鏡映位置を返す function flipVectorByLine(p: Vector, line: Line): Vector { // TODO: よくわかるコメントを書く const ln = ne

    なぜ我々はいまだに文字列でコメントを書いているのか - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Webパフォーマンス虎の巻

    Webパフォーマンス向上施策のために、今更ながら超速1を読んだので、今までの自分の知見と合わせてまとめてみます。 なるべく柔らかく、改善施策ってまず何をどうすればいいの?という疑問を持った人に向けて書いています。 ▪️格言 そもそもWebは速い。遅くしているのは我々です。大抵は技術の問題ではなくて、人の問題。 引用元: テクニックではなく、今、気で取り組むべきWebパフォーマンス (html5jパフォーマンス部 部長 竹洞さん) 心得 パフォーマンス向上に対する施策は大別すると以下の2通り 軽量化 (単純にやりとりするデータ容量を小さくすること) 圧縮 削除 最適化 (その時に最も適している実装・実行をとること) 経路・順番の変更 非同期 もっとも遅くしている原因を探して、それを対策するのが原則。「対効果」が絶対的正義である。手段から入るのは愚策。まず先に原因を知ることが重要。 ▪️1

    Webパフォーマンス虎の巻
  • オブジェクト指向をより理解するために実際に書いて解説する

    はじめに こんにちは、yoship1639です。 普段はゲームエンジンを用いない個人ゲーム開発を行っております。 記事は、オブジェクト指向がいまいち理解できない人、なんとなく理解はしたけどプログラムに落とし込めない人を対象に、 簡単なプログラムをオブジェクト指向満載で実際に書いて、理解を深めてもらおうと思い記述しています。 プログラミング言語は普段私がよく使うC#で記述しますが、オブジェクト指向は言語の壁を越えて利用できる概念ですので、 言語の記述ではなく、その記述の持つ意味を昇華させ俯瞰的に見ていただけると、より理解が進むのではないかと思います。 記事の背景・目的 オブジェクト指向に関する記述はとても増えてきました。しかし、一部を除いては理解を妨げる解説をしている記事が多数見受けられます。 具体的な用語の説明をならべても、抽象化し過ぎた解説しても、プログラミングに落とし込むことはでき

    オブジェクト指向をより理解するために実際に書いて解説する
  • JavaScriptの { } を理解する - Qiita

    結果はどうなったでしょうか。 自分が今使っているGoogle Chromeだとこうなりました。 結果は{a: 10}というオブジェクトです。まあ、これは当然ですね。3 + 5と入力すれば実行されて8が返ってくるのですから、{a: 10}というオブジェクトリテラルを書けば{a: 10}というオブジェクトが作られるのは当然です。 ……。 ここで、一部の人は「おいふざけんなよ」と思っているかもしれません。というのも、この例は環境によっては違う結果になるのです。具体的には、Chrome以外2のブラウザのREPL(FirefoxやEdgeなど)が該当します。あと、ts-nodeのREPLも該当するらしいです。これらの環境では、結果は{a: 10}ではなく次のようになります。 オブジェクトを作ったはずなのに結果が10とか意味不明ですね。そもそも、こんな簡単なプログラムで結果が全然違うとか、JavaSc

    JavaScriptの { } を理解する - Qiita
  • とても強い計算量クラスのコンピュータとその実現方法 - Qiita

    この記事は武蔵野アドベントカレンダー19日目の記事です。 物理のステートメントはだいぶ雑ですが、計算のステートメントには一応正確さに気を使って書いているつもりです。何か誤りがあった場合は、@iKodackまでご連絡いただけると幸いです。 (2018/12/22に「宇宙破壊コンピュータはセールスマン巡回問題の最適化問題を解けるか? 」「時間遡行コンピュータで無限ループすると何が起きるか?」を記事末尾に追加しました。) (2018/12/28に「宇宙破壊コンピュータは答えが無い場合に全ての宇宙を破壊する?」について記事末尾に追加しました。) 前書き より速い計算機が欲しい、という欲求は全ソフトウェアエンジニア共通であることが知られています。 最近、業務において500GBのSSDや16GBのメモリを最低水準にするべきではないか、という議論がネットで活発になされていますが、生産性を限界まで高める限

    とても強い計算量クラスのコンピュータとその実現方法 - Qiita
  • 新人にドヤ顔で説明できるか、今風フロントエンド開発ハンズオン(git/node.js/ES6/webpack4/babel7) - Qiita

    新人にドヤ顔で説明できるか、今風フロントエンド開発ハンズオン(Git/Node.js/ES6/webpack4/Babel7)JavaScriptNode.jses6webpackbabel 概要 今風の手法でJavaScriptアプリを作ろうとすると色々ツールがあって便利な反面、複雑でわからないことがたくさんあります。 わからないことがあったら、それを放置せず、しっかり理解して大いに寄り道しつつブラウザで動作するJavaScriptアプリをゼロから作っていきます ブラウザ上で動作するフロントエンドアプリを作ったら、ライブラリ化してnpmモジュールとして公開します 対象読者=今風のJavaScript開発の入門者、初心者 11年前からタイムトラベルしてきたひと ブラウザ用アプリを作りたいが今風の手法の初心者(jQueryだけでなんとか生きてきた人とか) Node.jsの環境をつかってフロン

    新人にドヤ顔で説明できるか、今風フロントエンド開発ハンズオン(git/node.js/ES6/webpack4/babel7) - Qiita
  • ライトニングトーク(LT)準備の参考資料まとめ - Qiita

    LT発表を行う際の参考資料を集めました。社内用に記事をまとめていたけど、機密性がないことに気が付いたので公開。 不定期的に更新します。 「これもこれも」というのがあったらコメントで教えてください。独断と偏見で追加します。 はじめに ※公開して何年も経っているのに参考にしてくださっている方がいらっしゃるようなので追記 唯一無二のLTのはじめ方 準備やネタの用意よりも先にまずは申し込みましょう。 これは冗談というわけではなく、申し込まないと永遠に発表する機会は訪れません。最初の一歩の「えいやっ」が大事。 発表の成功/失敗よりも発表することがえらい! 勉強会イベントは、肝となる発表者が確保できるかどうかがイベントの成否を握ります。 参加費用のある勉強会だとまた趣が違うかもしれませんが、参加費無料の勉強会でめちゃくちゃ面白い発表を要求する人はいません(いても周りから空気が読めない人だと思われるだけ

    ライトニングトーク(LT)準備の参考資料まとめ - Qiita
  • 深層強化学習アルゴリズムまとめ

    はじめに 深層強化学習の分野では日進月歩で新たなアルゴリズムが提案されています. それらを学ぶ上で基礎となるアルゴリズム(というより概念に近い?)はQ学習, SARSA, 方策勾配法, Actor-Criticの4つだと思われるので, これらを軸としてまとめてみたいと思います. 以下の4点はあらかじめご了承ください. コードは書いていません. 概念のみの説明です 他のアルゴリズムの基礎となりうる重要な概念については詳しく書きました. その他については簡潔に書きました 深層学習についてはある程度理解している読者を想定しています 書いているうちに規模がどんどん大きくなってしまったので, どこかに必ず間違いや不足があります. 「この式がおかしい!」「このアルゴリズムも追加するべき!」などコメントがあればぜひお願いします 全体像 扱うアルゴリズムを相関図にしてみました(私のイメージです). まず,

    深層強化学習アルゴリズムまとめ
  • 3つだけ覚える「flexbox」の使い方 - Qiita

    3行で説明、flexboxとは CSS3から導入されたfloatに変わる新しいレイアウト方法です。 伸びたり並んだりします。 俺、flexboxのプロパティ何回ググるんだろう問題 flexboxのプロパティめっちゃ多いですね。正直覚えきれませんし、覚えるつもりもなくなってきます。それに、別に複雑なことをやりたいわけではないですね。 具体的には、下記のようなことができれば十分なんです。 リキッド2カラムレイアウト スティッキーフッタ(最下部に吸い付くフッタ) この程度のものであれば、覚えるべきflexbox関連のCSSプロパティの数も絞れそうです。 覚えておくべき3つのプロパティ display: flex flex: 1 flex-direction: column これだけでわりとこなせます。以下で、実例をもとに説明します。 2カラムレイアウト さて、よくある2カラムレイアウトです。 で

    3つだけ覚える「flexbox」の使い方 - Qiita
  • JavaScriptの等値比較を全部理解する - Qiita

    皆さんこんにちは。今回の記事ではJavaScriptの等値比較について見ていこうと思います。 「どうせ==と===の違いとかだろ? 今さらそんな記事書くなよバーカw」と思った人はぜひ期待せずに読み進めてみてください。 「じゃあObject.isでしょ? 知ってる知ってる、使ったことないけど」と思った人はまあ読まなくても大丈夫です。 さて、等値比較というのは、2つの値が等しいかどうか判定することです。JavaScriptにおいて等値比較はどのように行うのか、そしてどのような場面で等値比較が発生するのかをこの記事では余すことなく紹介します。 以降、この記事で仕様書という場合はECMAScript® 2018 Language Specificationを指すものとします。 ==と=== とはいえ、まずは==と===の話をしないことには始まりません。==はJavaScript初心者がとりあえず習

    JavaScriptの等値比較を全部理解する - Qiita
  • JavaScriptのプリミティブへの変換を完全に理解する - Qiita

    JavaScriptでは、オブジェクトからプリミティブへの暗黙の変換が発生することがあります1。その結果、例えば次のような楽しい事態が生じます。 console.log(["foo", "bar"] == "foo,bar"); // true console.log([""] == 0); // true console.log((123 ^ {}) === 123); // true const obj1 = ["😂"]; const obj2 = ["😂"]; console.log(obj1 == "😂", "😂" == obj2); // true true console.log(obj1 == obj2); // false このような挙動は面白いので、Twitterとかで誰かが話題にするたびに多少は話題になります。しかしいい加減飽きたので、皆さんにはこんなの常識とし

    JavaScriptのプリミティブへの変換を完全に理解する - Qiita
  • iOS/Android セキュリティガイドライン - Qiita

    必須: 基的に対応が必要。何らかの要因で対応できない場合は関係者への同意をとる。 できれば:状況的に困難でなければなるべく対応する。 基対応なし:特別な要件がなければ対応しない。 直近修正履歴(2018/11/21) [OS共通] ログ出力の対策にproguardによる方法を追記 [iOS] 通信データのキャッシュの対策に一部問題があったため修正 [OS共通] 通信の暗号化 対応要否:必須 リスクの詳細 HTTPで通信を行うと通信データが平文でネットワークに流れるため、情報漏洩の危険性がある。 対策 通信を行う場合はHTTPS(SSL/TLS)通信を利用する [OS共通] SSL証明書のチェック 対応要否:必須 リスクの詳細 通信やWebViewで行われるSSL証明書の正当性検証を無効化すると、ネットワーク管理者などにより通信経路上のデータ改竄、傍受が可能になる。 対策 試験環境で証明

    iOS/Android セキュリティガイドライン - Qiita
  • Vue.jsで開発を始める前に決めておきたい事 - Qiita

    ここ1年ほど実務でVue.jsを利用してWebアプリケーションを開発しています。 今回はVue.jsを使ってチームあるいは個人で開発を始める上で予め考慮しておくと良さそうな事をいくつか書きたいと思います。 コンポーネントルール Vue.jsは単一ファイルコンポーネントによって、とてもシンプルな記述でコンポーネントを作る事ができます。しかし、開発者同士でコンポーネントの認識を揃えておかないと同じようなコンポーネントが作られてしまい、保守性を低下させる要因になってしまいます。 そのため、昨今ではAtomic Designなどの考え方をベースにコンポーネントを管理する方法が用いられています。Atomic Designを用いたコンポーネント設計方法については、以下の記事が参考になるかと思います。 Vue.js × Atomic Design - it's an endless world. いずれ

    Vue.jsで開発を始める前に決めておきたい事 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 新卒からの質問をソシャゲっぽい仕組みにしたら捗った話 - Qiita

    ディップ Advent Calendar の4日目です。 はじめに こんにちは。 ディップでUXデザインや速度改善、潤滑油などをやっている@ysktsunaです。 今回は自分のチームに新メンバーを受け入れた時に発生した悩みと、それをソシャゲ風に解決した方法について書きます。 読んでほしい人 先輩として若手(特に新卒)の面倒を見る人 こんな話ありませんか? 仲間が増えた 僕らのチームに新たなデザイナーが参画しました。 :新卒ちゃん(デザイナ見習い) :僕(おっさん) < 新しくチームに入りました! よろしくお願いします! < こちらこそよろしく。分からないことは何でも聞いてね! < ありがとうございます! たくさん質問しますね! < 遠慮なくどうぞ~。(素直そうで良い子だなぁ) 元気も良くチームにも馴染んでくれそうで安心していました。 質問してくれた < すいません、ここについて分からないん

    新卒からの質問をソシャゲっぽい仕組みにしたら捗った話 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 【危険シェル芸】☠️禁じられた闇の魔術とその防衛術💥 - Qiita

    はじめに Shellには決して使ってはいけない禁呪文と呼ばれるものが存在する。もし社用サーバに対しこれを故意に使えばアズカバン送りは免れ得ないであろう恐ろしい闇の魔術である。(果たしてそれだけで済むのか・・・?) しかし、無知故に、意図せずこのような闇の魔術を発動させてしまうことはインフラエンジニアにとっては、ごく稀にある出来事と言える。無知ゆえに事故を起こさないためにも、🔰初心者🔰にこそ読んでほしい。 今回は、闇の魔術の発動原理と、そのような闇の魔術に対する防衛術を伝授したい。 ‼️注意‼️ ここにある記事の闇の魔術を実行したことによる責任は”一切”取れませんのでご注意ください。 また、禁忌呪文は魔法省から使用が禁じられているので、具体的な抜け方などが未検証なコマンドもいくつか存在します。(は?)詳しい情報をお持ちの偉大なる魔法使いの方は情報提供の方をぜひお願いいたします。 参考サイ

    【危険シェル芸】☠️禁じられた闇の魔術とその防衛術💥 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 変更に強いアーキテクチャについてIT業界19年目の僕が超ザックリ説明する - Qiita

    この記事は、設計・アーキテクチャ Advent Calendar 2018 の第7日目の記事である。 はじめに この記事では、IT業界19年目の僕が実践している変更に強いアーキテクチャについて、出来るだけ難しい表現を避け、教科書的なありきたりな内容ではなく現場の肌感覚に近い切り口で「超ザックリ」な解説を試みてみようと思う。 普段自分がよく用いている実装パターンの紹介ともいうべきかも知れない。 この記事で説明すること いざ「変更に強いアーキテクチャとは」とズバリ訊かれても、一概に「これだ!」という答えはない。 プログラミング言語や、フレームワークによっても条件が異なるし、利用可能な技術や開発チームの特性、業務要件や運用要件の特性によっても様々であるし、インフラや開発プロセスまで含めて考えると考慮すべきことは無限にある。 ここでは主にソフトウェアの構造という観点から、"変更に強い" ということ

    変更に強いアーキテクチャについてIT業界19年目の僕が超ザックリ説明する - Qiita
    hbKOT
    hbKOT 2020/05/06
  • ネットワーク越しでパイプしたり、あらゆるデバイス間でデータ転送したい! - Qiita

    何を解決したいか? Mac, Windows, Linux, iPhoneAndroidのスマホ・タブレットとかのデバイス間でデータの転送したいことがあります。 SlackとかLineとかSkypeとかAirDropとかあっても 送りたい相手と共通して使っているサービスを探す必要とか、 GUIのソフトウェアのインストールが必要とか、 AirDropだとApple系OSである必要 があるなどの転送の障壁があって、GUIが使えないデバイスに送りたいときなどは困ってしまいます。 すでにたくさんのファイル共有系のサービスがありますが、コマンドを使ったCUIベースにあまり親切な設計なものはあまりないと思います。 そこで、上記の問題を解決するために、以下のようなファイル転送の仕組みを作りました。 他デバイス間でデータ転送ができ、 別途ソフトウェアのインストール不要で、 パイプにとても親和性が高くエン

    ネットワーク越しでパイプしたり、あらゆるデバイス間でデータ転送したい! - Qiita
  • Bundler概要 - Qiita

    bundlerについて分かってる風になっていたので、一度整理します。 特徴 ・Gemパッケージの種類やバージョンの管理 ・複数PCで必要なGemパッケージをインストールする仕組みを提供 ->チーム間で同一の開発環境を簡単に構築することが可能に。 運用方針 基的に、gemコマンドでインストールするのはBundlerのみで、その他のgemパッケージは、Bundler経由でインストールするという方針。

    Bundler概要 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 翻訳: WebAPI 設計のベストプラクティス - Qiita

    これは Enchant の開発者である Vinay Sahni さんが書いた記事「Best Practices for Designing a Pragmatic RESTful API」1を、ご人の許可を得て翻訳したものです。 RESTful な WebAPI を設計しようとすると、細かなところで長考したり議論したりすると思います。また、他の API に倣ってやってはみたものの、当にそれでいいのか、どうしてそうしているのか分からない、何てことも少なくはないと思います。 この記事では、そのようなハマリどころについて Vinay さんなりの答えを提示し、簡潔かつ明快に解説してくれています。 今後 WebAPI を設計される方は、是非参考にしてみてください。 なお、誤訳がありましたら編集リクエストを頂けると幸いです。 まえがき アプリケーションの開発が進むにつれて、その WebAPI を公

    翻訳: WebAPI 設計のベストプラクティス - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 再帰関数を学ぶと、どんな世界が広がるか - Qiita

    0. はじめに 再帰関数は初めて学ぶときに壁になりがちで なんとなくわかった...けれど どんな場面で使えるのだろう...いい感じの例を探したい! という気持ちになりがちです。再帰関数は、なかなかその動きを直感的に想像することが難しいため、掴み所が無いと感じてしまいそうです。 そこで記事では 再帰関数の動きを追いまくることで、再帰関数自体に慣れる 再帰的なアルゴリズムの実例に多数触れることで、世界を大きく広げる! ことを目標とします。特に「再帰関数がどういうものかはわかったけど、使いどころがわからない」という方のモヤモヤ感を少しでも晴らすことができたら嬉しいです。なお記事では、ソースコード例に用いるプログラミング言語として C++ を用いておりますが、基的にはプログラミング言語に依存しない部分についての解説を行っています。 追記 1. 再帰関数とは 再帰の意味はとても広いです。自分自

    再帰関数を学ぶと、どんな世界が広がるか - Qiita
  • アプリクライアントがリソース指向なサーバAPI設計に期待すること - Qiita

    酔いどれ設計ナイト2019 - connpassの発表資料です。 イベントのテーマ 「DB設計とAP設計をつなぐナニカ」 ということでこの記事では、アプリケーションサーバの利用者であるクライアントの視点から、どういう構造が嬉しいのか語ります。 自己紹介 iOSアプリ設計パターン入門というの前半で、「設計とは何か」という主語の大きい話をしたり、GUIアーキテクチャの40年の歴史をまとめたりしました 題材をSwiftに絞っただけで、内容としては他プラットフォームにも通用する感じのやつなのでよかったらおひとつどうぞ Qiitaだと、お前らがModelと呼ぶアレをなんと呼ぶべきか。近辺の用語(EntityとかVOとかDTOとか)について整理しつつ考える - Qiitaという記事がよく読まれてます 議論の前提 今回の議論にはいくつかの前提があります。 クライアントチームとサーバチームが充分に協調し

    アプリクライアントがリソース指向なサーバAPI設計に期待すること - Qiita
  • お前らがModelと呼ぶアレをなんと呼ぶべきか。近辺の用語(EntityとかVOとかDTOとか)について整理しつつ考える - Qiita

    お前らがModelと呼ぶアレをなんと呼ぶべきか。近辺の用語(EntityとかVOとかDTOとか)について整理しつつ考えるmodelDDD設計 みなさんは、Modelと言われたときに何をイメージしますか? こんなアレを思い浮かべた方も多いかと思います。 マサカらせてください。やはりお前らのModelは間違っている。 アレをModelと呼ぶと何が不味いのか すみません、早速言い過ぎました。半分は正しいです。MVCの発明者、Trygve Reenskaug氏による1979年の説明によると、 Models represent knowledge. A model could be a single object (rather uninteresting), or it could be some structure of objects. 1 このように「Modelは単体のオブジェクトであっても

    お前らがModelと呼ぶアレをなんと呼ぶべきか。近辺の用語(EntityとかVOとかDTOとか)について整理しつつ考える - Qiita
    hbKOT
    hbKOT 2020/05/06
  • AIのバイアスのほんとうの問題は人間が気づかないバイアスだ - Qiita

    これまでにも何度か紹介してきた、シリコンバレーのA16Zというトップクラスのベンチャーキャピタルの気鋭のアナリスト、ベネディクト・エバンスが、「AIのバイアス」についての考察をまとめていました。 いわゆる「AIのバイアス」といえば、例えば、白人の方が黒人より多い画像データで作ったAIシステムは白人を認識するのは得意だが黒人はそうでない、といったもののように、私達にとって想像つきやすいものについつい目が行ってしまいがちです。しかし実は、私達人間には認識すらできないもの、例えば光の当たり加減や、音の領域などがバイアスとしてデータに入ってきてしまった場合におきるAIのバイアスこそが、難しい問題なのではないかとベネディクトは言います。 いつものように、鋭い考察でいろいろな角度からAIのバイアスに切り込んでいきますが、彼のエッセイがおもしろいのは、もちろん彼の分析力、クリティカル・シンキング能力が素

    AIのバイアスのほんとうの問題は人間が気づかないバイアスだ - Qiita
  • LaTeXにおける正しい論文の書き方 - Qiita

    他人の論文や, ソースコードを見ているといろいろと思うことがあるので, 私が正しいと思っている書き方を以下に記す. あくまで自己流なので, 他の方のご意見 (コメント)も参照すると良いかと思います. ,(半角カンマ)や.(半角ピリオド)の後は必ず半角スペースをいれる 日語論文では, "半角カンマ+半角スペース"の代わりに"全角カンマ"を推奨しているところもある (ピリオドも同様に) 逆に,や.の前に不自然なスペースをいれない ソースコードは見やすいように, インデントと改行を心がける 2回以上改行すると段落が変わるため注意 特別な理由がない限り, ハイパーリンクをつける: こちら 略称は定義して使うこと: (例) Support Vector Machine (SVM) 三点リーダー (・・・)の使い分け \ldots: カンマに使う. $i=1, 2, \ldots, n$ \cdot

    LaTeXにおける正しい論文の書き方 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • webpackとBabelの基本を理解する(1) ―webpack編― - Qiita

    独学の内容をまとめたものです。誤りがございましたら、ご連絡いただけると幸いです。 リンク 1. webpackとBabelの基を理解する(1) ―webpack編―(記事) 2. webpackとBabelの基を理解する(2) ―Babel編― 3. webpackとBabelの基を理解する(3) ―webpackとBabel編― 4. webpackとBabelの基を理解する(4) ―React編― 5. webpackとBabelの基を理解する(5) ―Sass編― 概要 この記事の概要 目的 フロントエンドの環境構築に利用されるツールへの理解を深める 記事のゴール webpackでJSファイルを結合する方法を知る 対象者 WEBフロント担当者 HTML,CSS,JavaScript(es2015含む)の基的な構文を理解している人 npmの利用方法を理解している人 環境

    webpackとBabelの基本を理解する(1) ―webpack編― - Qiita
  • Nuxt.jsの本格導入で遠回りしないためのTips v1.1 - Qiita

    記事はVue meetup #5で発表させていただいた「Nuxt.js格導入で遠回りしないためのTips」のスライド発表の内容をQiita向けの記事としてまとめ、内容を一部追加したものです。これからNuxt.jsを格的に使ってみようという方の助力になれば幸いです。 記事では、そこそこな規模の格的なアプリケーションにNuxt.jsを導入する場合に多くの方が直面するであろう問題や、知っていると助かりそうなことを紹介します。 Tips 1. ドキュメントを読もう 格的なウェブアプリケーションをNuxt.jsで作ろうとしているならば、VueとNuxtのドキュメントを先にしっかり読みましょう。VueやNuxtは使い始めるのに多くのことを知る必要がなく、少しずつ利用の幅を拡げていけます。これはVueやNuxtの良いところです。しかし、格的なウェブアプリケーションを構築する場合、結局のとこ

    Nuxt.jsの本格導入で遠回りしないためのTips v1.1 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 世の中のエンジニアの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
    hbKOT
    hbKOT 2020/05/06
  • お前らのSSH Keysの作り方は間違っている - Qiita

    GitHubのHelpに記述されているSSH Keysの作成方法が僕の知っている作成方法と 微妙に異なっていたので、書いてみました。 以下の参考にしています。 Generating SSH keys - User Documentation SSH Keysの確認 既存のSSH Keysの確認をする必要があるので、以下を実行 デフォルトでのSSH Keysの名前は以下のうちのどれか id_dsa.pub id_ecdsa.pub id_ed25519.pub id_rsa.pub 現在使用している鍵の暗号強度の確認 以下のコマンドにて鍵長が2048以上かつ暗号化方式がRSA、或いはECDSAやEd25519であればOK $ ssh-keygen -l -f ~/.ssh/id_rsa.pub 4096 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    お前らのSSH Keysの作り方は間違っている - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 暗号技術勉強メモ - Qiita

    JCA (Java Cryptography Architecture) を学ぶための前提知識として、暗号技術の基的なところを勉強したときのメモ。 JCA の使い方についてはこちら。 用語 暗号について説明する際に利用される用語について、先に整理しておく。 平文 暗号化されていないメッセージのこと。 暗号化 平文に暗号処理を施して、第三者から内容がわからないようにすること。 暗号化後のメッセージを暗号文と呼ぶ。 復号 暗号文を元の平文に戻す処理のこと。 「復号化」というと怒られる。 アリスとボブ 暗号について説明するときに慣例的に使用される仮の名前。 アルファベットの A, B, C... の順番で名前が考えられており、 Alice, Bob, Carol(もしくは Charlie)... のような感じになっている。 名前ごとに役割が決まっていて、アリスは送信者、ボブは受信者、キャロルは

    暗号技術勉強メモ - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい - Qiita

    これは Swift Tweets の発表をまとめたものです(次回開催はこちら)。イベントのスポンサーとして Qiita に許可をいただいた上で投稿しています。 ありがとうございました!Q&Aは他の人の発表中でも構わないのでリプを飛ばして下さい。 続いては僕 @koher の発表で、タイトルは "Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい" です。 #swtws — koher (@koher) 2017年1月14日 第 1 部: Swift の 4 種類のエラーについて あまり知られてませんが、エラー処理について、 Swift 2.0 設計時に Core Team がまとめた "Error Handling Rationale and Proposal" というドキュメントがあります。このドキュメントは、僕が去年 try! Swift で発表した際にも参考文献にしまし

    Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい - Qiita
  • commitlint の紹介 - Qiita

    commitlint というツールをご紹介します。 commitlint とは、Git のコミット規約(commit convention)に従わせるための npm ツールです。ESLint のように、ルールを JavaScript で設定・開発できます。 commitlint helps your team adhering to a commit convention. By supporting npm-installed configurations it makes sharing of commit conventions easy. commitlint はチームがコミット規約に従うのを助けます。npm インストールされた設定をサポートすることにより、簡単にコミット規約を共有することができます。 「コミット規約」といえば、Angular チームの規約 が有名です。そのコミット

    commitlint の紹介 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 敗北者のTypeScript - Qiita

    TypeScriptJavaScriptに静的型を導入したプログラミング言語で、登場から現在までその人気を増し続けています。 動的型付き言語であるJavaScriptに静的型の安全性(コンパイル時にバグ・間違いを発見することができる能力)を与えることで、TypeScriptJavaScriptによる開発の効率を上げてくれます。 裏にJavaScriptがあるという特性もあり、TypeScriptは「部分的に静的型チェックをする」というような挙動をサポートしています1。詳しくは後述しますが、これによりJavaScriptからTypeScriptへの移行が可能となっています。TypeScriptは@ts-check(あるいは@ts-ignore)などを通じてこのようなユースケースも手厚くサポートしています。 このことの裏返しとして、TypeScriptを利用するときは注意すべき点があります

    敗北者のTypeScript - Qiita
  • リレーションシップ駆動要件分析(RDRA) - Qiita

    リレーションシップ駆動要件分析(RDRA)とは? 要件定義において、重要な要素が3つあります。 「網羅性」:システムの目的や、それを実現するための要件が漏れや重複無く定義されている 「整合性」:各要件の整合性が取れている 「表現力」:それぞれの要件が分かりやすく表現されている 複数の人間で共同作業する際にも、網羅性によって要件定義に必要な情報の枠組みが決まり、整合性によって作業の手順が決まり、表現力によって共通認識を確立します。 リレーションシップ駆動要件分析(RDRA)とは、要件定義において重要なこれらの3要素を高いレベルで実現するための要件分析フレームワークです。 RDRAでは要件定義を4つの構成要素に分け、UMLを拡張した表現方法で要件分析を行います。 よくあるように要件をリストでただ並べるのではなく、UMLの視覚効果を利用することで表現力を実現します。 要件定義についてはこちら↓

    リレーションシップ駆動要件分析(RDRA) - Qiita
  • 地獄からの使者、その名はTypeScript ~ 固かった型の形 ~ 2 - Qiita

    TypeScriptは便利である。変な書き方をしていれば教えてくれるし、開発環境が入力補完の支援もしてくれる。まさにヘブンである。しかし書き方を知らないと、その世界は地獄と化す。真っ赤なエラーに焼き尽くされた地獄に。 地獄を回避するためには解決法を知ることである。TypeScriptは今も刻一刻と進化しており、昨日の知識は原始の人間が棒の握り方を覚えたに等しい。 ということで地獄を渡り、天国へ到達するための知恵の一部を紹介していきたいと思う。たぶん他にもあるような気がするのだが、TypeScriptを使い始めてだいぶ慣れてしまったので、何に困ったのか全てを覚えていない。思い出したら、記事を追記して投稿していこうと思う。こういう場合にどう解決するべきなのかという疑問があれば、それを考えていきたい。 1. JavaScriptからTypeScript移行時に最初に訪れる試練、連想配列 これを一

    地獄からの使者、その名はTypeScript ~ 固かった型の形 ~ 2 - Qiita
  • Jsonnetの薦め - Qiita

    JsonnetというJSONテンプレート言語を紹介する。 後で見るように、これはJSONを生成するための汎用テンプレートというよりはむしろ、計算や依存関係を含む設定を静的に書き下すために便利なのではないかと考えられる。 実際Jsonnetの仕様はGoogleのBCLに似ている。BCLはGoogleでコンテナクラスタシステムBorgの設定を記述するために使われている言語だ。 JSONテンプレート言語 ある意味でJsonnetは毎度おなじみのやつだ。JavaScriptの文法の不便さに対してalt JSが多数出てきた。CSSにおけるネストの分かりづらさやの記述の重複に対してCSS preprocessorが多数出てきた。それと同じようにして、Webにおける機械可読データのLingua FrancaたるJSONを記述するのが不便なのでJSONテンプレートが出てきた。 Jsonnetはその中の1つ

    Jsonnetの薦め - Qiita
    hbKOT
    hbKOT 2020/05/06
  • こんな時代だからこそ要件定義の重要性を思い出せ! - Qiita

    はじめに SIerからマーケティング会社に転職したため、最近はあまり行っていませんが、 どの業種においても、業務をきちんと進める上で要件定義の進め方・考え方は参考になるため、 久しぶりに要件定義のポイントについて振り返ってみました。 特に要件定義はシステム開発の上流工程に位置するので、難しい、、、というか、 如何にクライアントと、これから作るシステムの「認識を合わせられるか」、 お互いの「合意が取れるか」が肝になってくるので大事なフェーズと言えます。 そもそも「要件」って ようけん 【要件】 1. 大切な用事。 2. 必要な条件。 「資格―」 Google先生に聞くと要件とは「必要な条件」と出てきます。 つまり、クライアントの要望や課題を洗い出して、 システムを作る上で「必要な条件」を定義するということになるのでしょうか。 要件定義で定義する項目 とにかくたくさんあるので抜粋します。 シス

    こんな時代だからこそ要件定義の重要性を思い出せ! - Qiita
  • 優れた開発者の習慣:Apple系ソフト開発者以外にもオススメのWWDC2019で発表されたセッション和訳 - Qiita

    初投稿です。 先日、WWDC2019に行ってきたのですが、そこである素晴らしいセッションに出会いました。 "Great Developer Habits" (優れた開発者の習慣) by Josh Tidsbury SwiftUIでもなければ、iOS13の新機能でもない。 一見するとあまり花のないセッションタイトルでしたが、内容はとても素晴らしいものでした。 忘れ去られるにはもったいないセッションでしたので、トピックを要約・和訳させていただきました。 Apple系の開発者に依存しない内容がほとんどです。 ぜひ、自分の開発体制を見直したりする一助としていただければと思います。 この記事の元セッション セッションのビデオ(約35分) 導入 私たちのチーム(Technology Evangelism)は真に素晴らしいアプリをデベロッパーの人たちに作ってもらうために存在している。 今日紹介するTip

    優れた開発者の習慣:Apple系ソフト開発者以外にもオススメのWWDC2019で発表されたセッション和訳 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Seleniumアレルギーのための処方箋 - Qiita

    何年も前、SeleniumやWebDriverの話で盛り上がった記憶があります。ただ、その当時はまだRailsなどバックエンド中心の文脈でした。今、フロントエンドに軸足が移る中、ブラウザテストの状況はどうなったのでしょう? 不思議なことに、フロントエンド界隈でそれほど話題に上がって来ないですよね (私の周りだけ?)。結構大事なのに。実は皆さん、「Seleniumアレルギー」なんじゃないですか? 公式サイトに漂う ゼロ年代感(下図)。Javaへの躊躇、「めんどくさい」と聞かされ続けた過去、無意識に避けてしまうのがSeleniumです。 ただ、フロントエンドの文脈でこそ、ブラウザテストは重要度を増しています。そこで「Selenium触りたくない病」の筆者が、 四苦八苦した背景 と、2016年だからこそ 見えてきた落とし所 を書いてみたいと思います。 註: 思ったより長文になってしまいました。先

    Seleniumアレルギーのための処方箋 - Qiita
  • Facebook製のJavaScriptテストツール「Jest」の逆引き使用例 - Qiita

    はじめに みなさん、日頃JavaScriptのテストはどのように行っていますか? 昨今ではAngularJSやReactJSを始め、JavaScriptのフレームワークやライブラリを使用してのフロントエンドの開発が当たり前のようになってきております。 ではそのフロントエンドJavaScriptのテストはどんなツールを使っていますか? mochaやpower-assert、chaiKarma、Jasmine等を組み合わせて使用してテストしているでしょうか。 前置きが少し長くなりましたが、Facebookが開発したオールインワンな「Jest」というツールのReactでのHowto的な使い方から実際のテストでの使用例を交えて紹介したいと思います。 ちなみにこのJest、最近リリースされて話題になったパッケージ管理のYarnでも使われています。 対象バージョン Jest:22.0.4 Reac

    Facebook製のJavaScriptテストツール「Jest」の逆引き使用例 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 一番分かりやすい OpenID Connect の説明 - Qiita

    はじめに 過去三年間、技術者ではない方々に OpenID Connect(オープンアイディー・コネクト)の説明を繰り返してきました※1。 その結果、OpenID Connect をかなり分かりやすく説明することができるようになりました。この記事では、その説明手順をご紹介します。 ※1:Authlete 社の創業者として資金調達のため投資家巡りをしていました(TechCrunch Japan:『APIエコノミー立ち上がりのカギ、OAuth技術のAUTHLETEが500 Startups Japanらから1.4億円を調達』)。 2017 年 10 月 23 日:『OpenID Connect 全フロー解説』という記事も公開したので、そちらもご参照ください。 説明手順 (1)「こんにちは! 鈴木一朗です!」 (2)「え!? 当ですか? 証明してください。」 (3)「はい! これが私の名刺です!

    一番分かりやすい OpenID Connect の説明 - Qiita
  • なるべく切れない回線のつくりかた(物理) - Qiita

    ◆なるべく切れない回線とはなんですか? 「落ちないシステムなんてない」 「切れない回線なんてない」 エンジニアの方なら理解してくれると思います。 しかし、理解はしつつも回線断を体験したことがある人はあまりいないのではないでしょうか。 じつはその「あまり」中にあなたが含まれないのは、わりと運が良いだけなのかもしれません。 今日もたくさんの回線が切れています。今もどこかで切れています。月額5000円のベストエフォート回線でも、月額1000万円の10G専有回線でも、切れるときはいつでも切れます。明日もたくさん切れるでしょう。明後日も。来年も。10年後も。古来電信回線から今後5Gになっても、人類が通信をし続ける限りは切れ続けます。その時に切れるのは、もしかするとあなたに関係があるネットワークかもしれませんし、運良くそんな事態には遭遇しないのかもしれませんし、気づかないうちに復旧しているかもしれませ

    なるべく切れない回線のつくりかた(物理) - Qiita
  • 初級者向け:データベース選択の必要性について - Qiita

    はじめに 記事では、データベースに求められる要件の多様化についてまずは触れ、なぜ最適なデータベースを選択する必要があるのかについてお伝えします。 こちらはAWS Summit Tokyo 2019 Breakout Session 「【初級】 AWSにおけるデータベース選択指針」を基にした内容となっております。 目的 なぜデータベースの選択が必要なのかを理解すること 各種データベースの特徴と考えられるユースケースを理解すること 対象 データベースの選定を行う方 リレーショナルデータベースを使ったアプリケーション開発経験をお持ちの方 リレーショナルデータベース以外のデータベースの知識はお持ちでない方 アプリケーション要件の多様化 人事システムやCRM、ERPなど、主に社内ユーザ向けのエンタープライズシステムで使われるデータベースといえば、Relational Database(RDB)が主

    初級者向け:データベース選択の必要性について - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 競技プログラマーにおすすめするセキュリティエンジニアというお仕事 - Qiita

    はじめに 目的 競技プログラミングの経験が活きるケースの一例を示したいから 加えて、競技プログラマーセキュリティエンジニアの適性が一定あるのではないか、と思っているから 自分は学生時代セキュリティエンジニアという職業の存在すら知らなかったから そもそも研究と競プロしかしてなかったのでほぼ開発経験がなかった 「へー、セキュリティ仕事なんてあるんだ。コーナーケースを指摘することが仕事になるんだ。」 ってことが伝われば幸いです。 もちろん、コーディング力やコードを読む力、というのが役に立つのは、ここでは比較的自明なので特筆していません。 セキュリティでどんなことやってるのか ここに書いていることをやってました。 2014年から新卒でセキュリティ仕事を始めました。 https://www.slideshare.net/dena_tech/ss-87959976 https://www.sli

    競技プログラマーにおすすめするセキュリティエンジニアというお仕事 - Qiita
  • 🎉React 16.8: 正式版となったReact Hooksを今さら総ざらいする - Qiita

    来たる 2 月 4 日、ついに React 16.8 の正式版がリリースされます。この React 16.8 には、アルファ版が公開されて以来常に React ユーザーたちの関心をほしいままにしてきたReact Hooksが正式版となって追加されます。 ※追記:アメリカ時間で 2 月 5 日になっても React 16.8 がリリースされませんでした。事前情報で 2 月 4 日と言ってたのに……。いつになったらリリースされるのかはよく分かりません。2 月 6 日に React 16.8 がリリースされました! 熱心な React ユーザーの方は、当然 React Hooks の情報を常に追っており正式版がリリースされたらすぐにでも自分のコードで使いはじめる準備ができていることと思います。しかし、この記事をご覧の方々の中には React を使っているにも関わらず「React Hooks のこ

    🎉React 16.8: 正式版となったReact Hooksを今さら総ざらいする - Qiita
    hbKOT
    hbKOT 2020/05/06
  • Java のバージョンを上げるだけで、プログラムは速くなるのか - Qiita

    (この記事は 地平線に行く とのマルチポストです) よく Java の実行バージョンを上げるだけで速くなるという話を聞きます。 でも、当にそうなのでしょうか。また、当だとしたらどれぐらい速くなるのでしょうか。 そこで、簡単なプログラムで実験してみました。 実験概要 実験用に、数独を解く Java のプログラムを作成しました。 このプログラムは単純な演算を繰り返し行ってるだけなので、Webアプリケーションのような複雑なプログラムとはおそらく傾向が違いますが、参考程度にはなるかなと思います。 これをJava 1.1 でコンパイルし、Java 1.1 ~ 12 の各 Oracle JDK (32bit/64bit) で数独100万問のデータセットを読み込んで解き終わるまでの時間を測定しました。1 細かい測定条件は以下の通り。 実行環境 Windwos 10 Home 1809 (64bit)

    Java のバージョンを上げるだけで、プログラムは速くなるのか - Qiita
  • スパコンないない - Qiita

    はじめに エンジニアないないという記事を読んで、「そうそう、専門の人と一般の人って、結構認識違ってたりするよなぁ」と思ったので、スパコンについて似たようなことを書いてみようと思います。オープンキャンパス的なイベントで来訪者にスパコンについて説明したりしている時に質問されたことが中心です。 スパコン使えばものすごいゲームできるんですか? これ、わりとよく聞かれるんですが、基的にはできません。「ものすごいゲーム」のイメージは、例えば「ものすごいグラフィック」「ものすごく精密な物理エンジン」「ものすごく大量のキャラクター」なんかだと思うんですが、そもそも一般的なスパコンはリアルタイム処理向けに作られておらず、「バッチジョブ」という形で計算を予約して、計算資源が空いたら実行される、みたいな使い方をします。スパコンは「一ヶ月かかる計算を1日で処理する」みたいな加速は得意ですが、「0.1秒かかる処理

    スパコンないない - Qiita
  • なぜ昨今のJavaScriptではイミュータブルであるべきと言えるのか歴史的背景を踏まえて言語化する - Qiita

    先日JavaScriptに慣れていない人のコードをレビューする機会があり、constで宣言されたオブジェクト内部に副作用を与えている記述がありました。 その時に「今の動作に問題ないけど、今風のJSならイミュータブルの方が良いかも」と指摘したものの、JSに疎い人からすれば背景が分からないはずで、理由を自分なりに説明したものの案外言語化が難しかったことがありました。 難しい理由として、イミュータブルであることは実利面と同時に、Facebook発祥のトレンドという側面も多分に含んでおり、JavaScript自体の潮流も踏まえておく必要があるからです。 今回は実利面に加えてトレンド面も交えて、なぜイミュータブル性がJavaScriptで重宝されるのかを見ていきましょう。 フロントエンドの世界では状態を持ち、時間やインタラクションと共に変化するから サーバーサイドの世界から見た場合、HTTPはステー

    なぜ昨今のJavaScriptではイミュータブルであるべきと言えるのか歴史的背景を踏まえて言語化する - Qiita
  • 至高のDockerイメージ生成を求めて -2019年版- - Qiita

    この記事は@yugui氏の書いた至高のDockerイメージ生成を求めてに感謝しつつ、記事が投稿された当時には無かったさまざまな事情を組み込んで再度まとめたものである。 良いDockerイメージ 良いDockerイメージとは何だろうか。Dockerの利点は次のようなものだから、それを活かすイメージが良いものであるに違いない。 ビルドしたイメージはどこでも動く 適切にインストールされ、設定されたアプリケーションをそのままどこにでも持っていける。 コンテナ同士が干渉し合うことはないので、任意のイメージを互いに配慮することなく柔軟に配備し実行できる 必要のないサービスがコンテナ内で走っていないので、セキュリティの向上に資する イメージの転送が効率的である ベースイメージ部分は一度送ればいちいち再転送する必要がないので、ベースイメージを共有する複数のイメージを効率的に転送できる 標準のレジストリAP

    至高のDockerイメージ生成を求めて -2019年版- - Qiita
    hbKOT
    hbKOT 2020/05/06
  • コンテナ・セキュリティ入門 と Kubernetes - Qiita

    Dockerコンテナは、プロセスの一種であり、コンテナホストのカーネルを共有するために、セキュリティ上のリスクがある。このコンテナの動作原理上のリスクを軽減するために、さまざなの試みが実施されている。そこで、Dockerコンテナの基的仕組みから、コンテナの隔離性を高めるためのOSSプロジェクトを整理する。 Dockerコンテナの仕組みとセキュリティ Dockerコンテナの仕組みの基は、次の3点である。 Kernel namespaces (カーネル・ネームスペース) Control groups (コントロール・グループ) Linux kernel capabilities (Linux カーネル・ケーパビリティ) これら3点について、セキュリティの観点から確認していく。 カーネル・ネームスペース docker runを使ってコンテナを起動すると、バックグラウンドで、カーネル・ネームス

    コンテナ・セキュリティ入門 と Kubernetes - Qiita
  • 統計と制御におけるフィルタの考え方の差異 - Qiita

    1.はじめに 先日、下記のqiita記事を投稿しました。 最も簡単な「一次のローパスフィルタ」を作る方法 この記事、1時間程度でさくっと書いたのですが想定外にいいね!が伸び、結果として私が書いた記事の中で最多いいねになりました。初歩的な内容であるにも関わらず、です。 この反響に対し私が気付いたのは、制御屋(しかもコテコテの古典制御屋)の私にとってはローパスフィルタは当たり前技術なのですが、qiita読者の当たり前ではなかったということです。 じゃあqiita読者の当たり前は何かというと、恐らくですが移動平均フィルタです。ちなみに私の移動平均フィルタに対する印象は下記になります。 n回平均フィルタ、カットオフ周波数がいくつか分からないから好きじゃない。カットオフが分からないと制御系の設計できないじゃん。 — モータ制御マン (@motorcontrolman) September 28, 2

    統計と制御におけるフィルタの考え方の差異 - Qiita
  • 技術書を書く技術 - Qiita

    Intro こちらの技術書を執筆しました。15Stepで踏破 自然言語処理アプリケーション開発入門 稿は書籍そのものの紹介ではなく、私が技術書を執筆するために利用した技術・用意した環境についての解説です。 私が執筆を始めた当時(2017年下旬)はWebを漁ってもあまり技術書執筆のノウハウがなく、稿の内容も割と手探りでした。今ググってみると技術書展のおかげで大量に情報が出てきますね。それらと被る部分もありそうですが、自分が1冊書いてみて得たノウハウみたいなものをここに吐き出してみたいと思います。 執筆フォーマットの決定 まずは執筆に使うツールを決めます。 商業誌の場合、出版社(編集者)がそのフォーマットでの入稿を受け付けてくれるかどうかにも依るため、執筆者の一存で決められないこともあるようです。 私の場合は幸運にも、こちらの希望に合わせてくれる編集者が入ってくれました。 色々調べて↓あた

    技術書を書く技術 - Qiita
  • Deep Metric Learning 入門 - Qiita

    1. Deep Metric Learning 概要 Metric Learningとは日語で「距離学習」と呼ばれる方法で, 入力空間におけるサンプル同士の類似度が, ユークリッド距離やコサイン類似度などの尺度と対応するように別空間に埋め込むための変換を学習する方法です. この別空間のことを埋め込み空間や特徴空間といいます(以後, 埋め込み空間で統一). DMLは, この変換をDeep Neural Networkによって非線形に設計します. とりわけ入力が画像であれば, DNNとしてConvolutional Neural Networkが用いられます. 犬種を用いた例をあげます. $x_1$, $x_2$はチワワの画像を表しており, $x_3$は柴犬の画像を表しています. $x_1$と$x_2$は同じ犬種なので画像としての類似度が高いと言えます. 一方で$x_1$と$x_3$は異なる

    Deep Metric Learning 入門 - Qiita
  • 「採用手伝って!来週から!」と言われたエンジニアのやるべき準備を総まとめ - Qiita

    とある日... 👨‍💻エンジニア 「おはようございます〜!」 🙍‍♂️上司 「おはよう!」 👨‍💻エンジニア 「今日も開発するぞ〜!...ん?」 👨‍🦳偉い人 「👨‍💻さんにエンジニア採用お手伝いいただくことになりました!来週からです!」 👨‍💻エンジニア 「...(間違いメールかな?)...上司さん〜これって間違いメールですかね?」 🙍‍♂️上司 「間違いじゃないで。来週からエンジニア採用手伝ってな。」 👨‍💻エンジニア 「...。(急に決まってて草)」 急に「来週からエンジニア採用業務手伝ってね!」と上司から言われた、全てのエンジニアが路頭に迷わないために。 これは何? 普段採用のことなんて1bitも考えていないエンジニアに向けた、エンジニアエンジニアによるエンジニアのための採用業務チュートリアル的なものをまとめておきます。 「採用業務で迷惑をかけないよう

    「採用手伝って!来週から!」と言われたエンジニアのやるべき準備を総まとめ - Qiita
    hbKOT
    hbKOT 2020/05/06
  • スーパーマリオのジャンプのアルゴリズム - Qiita

    先日、気持ちのいいジャンプを目指してというQiitaの記事を見かけました。記事中では、マリオのジャンプについても触れられています。マリオというと、マリオブラザースやスーパーマリオブラザース等々、色々あるのですが、これはおそらくスーパーマリオブラザースの事だと思われます。ジャンプアクションゲームといったらスーマリですね。 そのマリオのジャンプの仕組みは「マリオの速度ベクトルを保存しておいて座標を計算するんじゃなくて~」と書かれていて、別サイトのブログへのリンクが張られています。 マリオのジャンプ実装法とVerlet積分 ただ、この記述については不正確であるという別のブログもあったりします。 マリオの完コピvol.28 ジャンプの解析と修正 ホントのところはどうなんでしょうか?世界で最も有名なゲームジャンプがどのように処理されているのか気になったので調べてみることにしました。 原典にあたる

    スーパーマリオのジャンプのアルゴリズム - Qiita
  • 量子のQの字も知らない人間が3量子ビットでのGHZ状態を計算してみた - Qiita

    続編はこちら:3量子ビットでのGHZ状態を行列計算してみた 会社の先輩がすごい量子の人(語弊)で、憧れて量子コンピュータの勉強を始めたものの、量子学どころか物理をまともに学習していないのでちんぷんかんぷんな日々です。 そんな私ですが、湊雄一郎さん( @YuichiroMinato )の「いちばんやさしい量子コンピューターの教」で勉強をしていたところ、1つの回路が目に止まりました。 「量子もつれ」のトピックで紹介されていたGHZ(グリーンバーガー=ホーン=ツァイリンガー状態) 回路は以下のようになります。 この回路では出力が $\left|000\right>$ と $\left|111\right>$ に偏るらしいです。 見ただけだとよくわからないので、とりあえず手計算していきましょう! 気合の手計算 先輩からご教授をいただきつつ、式に落とし込んでいきます。 回路を以下のようなフェーズに

    量子のQの字も知らない人間が3量子ビットでのGHZ状態を計算してみた - Qiita
  • ゲームボーイのエミュレータをGoで作った話 - Qiita

    前置き 1か月ほど前にbokuwebさんのゲームボーイエミュレータをGo言語で書いたというブログ記事を見ました。 ゲームボーイ世代(正確にはGBC)であったのとGOで何かしたいと思っていたのもあって、僕もゲームボーイのエミュレータに取り掛かってみることにしました。 追記(2020/1/24) 記事を執筆したときから機能面の大幅な向上があるため加筆を加えました できあがったもの GoでGameBoyエミュレータを自作しました いつぞやのファミコンエミュレータと違って今度は60fps出てます 将来的にGBCに拡張予定です よかったら遊んでみてくださいhttps://t.co/MHwjCmA3PX pic.twitter.com/PvS89Qkvrn — アカツキ (@akatsuki_py) November 11, 2019 ゲームボーイカラーにも対応しました ゲームボーイカラーのソフトに対

    ゲームボーイのエミュレータをGoで作った話 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • コードレビューのポイント - Qiita

    例外の握りつぶしがないか catchブロックで発生した例外によってもとの例外が消えないか。 例外を別の例外でラップする際、もとの例外を含めているか e.printStacktrace がないか(コーディング規約などによって認められる場合を除く ログに出力する、 e.addSuppressed など、発生した例外の情報が追えるようにしておく。 握りつぶしても良い場合は握りつぶしても良いとする理由をコメントで明記する (特定の状況を除いて)変数の上書きがないか 上書きしなければならない変数は通常カウンタぐらい。 早期リターンを適用可能な状況でブロックのネストをしていないか if(isXXX) {} など if ブロックで処理している場合、 if(!isXXX){ return; } が適用できないか検討する。 リソースのクローズ漏れがないか InputStream/OutputStream等の

    コードレビューのポイント - Qiita
  • 過去の難案件 PS2のカーネル開発 - Qiita

    はじめに 時はPlayStation2も そろそろ終わり。 PS2互換機がゲームセンター等で使われていた時代の事です 私は当時 超新人だったんだけどね ただ私は 大学を3ヶ月で光速中退して すぐにフリーランスになった変な経歴持ちです そんな時 ある人物が 掲示板に メモリマネージャやDMA、3DCGについて質問をしていた ちょうどその時期 仕事が楽だったので 光速で回答しました。 メモリマネージャ作りたいっていうので、簡単な方法として、連結リストでAllocateしていくと簡単だよ DMAについては 方向のふらぐがこーであーするだけだよ 3DCGについては DirectXを知識は入れてたので なんとなく回答 すると やり取りから1週間で 仕事してもらえますか? PS2の自社タイトルを作ってます。コアエンジニアが不足しています とメールアドレス宛にメッセージがきたので 請ける事に これがすべ

    過去の難案件 PS2のカーネル開発 - Qiita
  • コードレビュー虎の巻 - Qiita

    レビューガイドライン(Review GuideLine) ここで述べているレビューはピアレビューについての方法です。 (作業成果物の欠陥と改善の機会を探すレビュー) 「最悪を最初に」を基としてレビューすべき、 たとえば、仕様やアルゴリズムに欠陥があるのに、typoにこだわってもしょうがないので、なにが最悪かを考え、それを防ぐための物からレビューをします。 誤りがプロダクト全体に影響し、手戻りのコストが高くつく、あるいは失敗するようなリスクがないかを考慮にいれてレビューの対象を選択します。 たとえば、基的な初期フェーズの要求仕様や、クリティカルな決定の基礎になる仕様、使用頻度が高いモジュールなどを重点的にレビューします。 以下に書く項目はレビュアーに負担をかけないようにするのが前提なのでレビュアーに出す前にそもそもテストしたい項目です。 参考: あなたのおっしゃるレビューってどのことかし

    コードレビュー虎の巻 - Qiita
  • 「ループ・再帰・gotoを使わず1から100までの数値を印字する」Conner Davis 氏の回答の考察 - Qiita

    2019年6月に以下の記事が投稿されました。 ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?に対するIchi Kanayaさんの回答 - Quora 英語版の記事「How to print 1 to 100 in C++ without a loop, goto or recursion - Quora」から興味深い回答を抜き出して、それにランク付けをしながら和訳してくださっている記事です。 初級や中級は「まぁあるよね(C++知らないけれど……)」という感じですが、 上級とされた「マイクロソフト社のデータサイエンティスト Conner Davis 氏」の回答が面白かった ので、ご紹介を兼ねてその発想の源泉を推測してみることにしました。 以下に Conner Davis 氏の回答の和訳を引用します。 マイクロソフト社のデータサイエンティスト Conn

    「ループ・再帰・gotoを使わず1から100までの数値を印字する」Conner Davis 氏の回答の考察 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • チャットやメールの文章をないがしろにする人はチーム全体の開発効率に悪影響を与える - Qiita

    この記事のターゲット読者 この記事はなんらかのチームに所属しているまだ経験の浅いエンジニアの方や、組織の業務効率に課題を感じていらっしゃる方に向けた内容です。 設計や実装スキル以前に求められるスキル、コミュニケーション能力 エンジニアとして活躍する上で技術的な知識・スキルだけでなくコミュニケーション能力もとても大事です。コミュニケーションをないがしろにすると、いくら技術力があったところでコミュニケーション能力が足枷となってしまい、パフォーマンスを最大化することができません。コミュニケーション能力と一口に言っても様々ありますが、この記事ではチャット(Slack等)やメールなどの文字を利用したコミュニケーションにおいて意識すべき点を私なりに纏めます。 コミュニケーションをないがしろにするとどんな問題が起こるのか? 開発を進める上で工程や立場にかかわらず、基的に誰しもが誰かしらとコミュニケーシ

    チャットやメールの文章をないがしろにする人はチーム全体の開発効率に悪影響を与える - Qiita
  • N高等学校でプログラミング教育をはじめて4年が経ちました - Qiita

    はじめに N高等学校のプログラミング教育の担当者としてもう4年経った、元々ニコニコ生放送の開発者だった @sifue (吉村総一郎)です。 この4年間、当に沢山の生徒たちとの出会いがありました。 N高に出会ってプログラミングを学び、自らの人生を切り開いていった生徒たちがいました。将来に対して希望を失っていた生徒が、最後は自信を持って大学に進学するのを見届けてきました。小さなコミュニティの中で尖っていたため社会に馴染めずにいた若者が、プログラミングの力で社会を良くしようと社会に巣立っていくのも見届けてきました。これからも彼らの人生がより実りあるものになり、また多くの人たちを助け、社会をより良いものにしていってくれることを切に願っています。 このエントリーについて このエントリーは、N高等学校アドベントカレンダー1日目の記事です。 このエントリーでは、この4年間で試行錯誤のうえ至ったプログラ

    N高等学校でプログラミング教育をはじめて4年が経ちました - Qiita
    hbKOT
    hbKOT 2020/05/06
  • https://www.papasensei365.info/entry/2020/03/04/002140

    hbKOT
    hbKOT 2020/05/06
  • VSCodeの操作ミスでGCP Cloud Composerの裏側k8sをお掃除した話 - Qiita

    tl;dr 筆者はvim派でVSCode初心者。でも勧められたので数カ月ぶりに起動してみた。 Pluginを色々入れていたので、サイドバーにはたくさんのアイコン。なにこれ楽しい。 Cloud Codeタブを触っていたら…指先が震えてトラックパッド誤操作。「Delete Cluster」を押してしまう。 その時たまたま偶然、GCPのオーナー権限を持つIAMで認証していた。 盛大にやらかして復旧が手間だったが、いくつかの理由で障害として顕在化しなかった。 というお話 何をやらかしたのか やらかし当時、筆者はGCPでデータ処理基盤の開発を行っていました。vimとzshが大好きで、開発のすべてをこの2つで済ませてましたが、同僚にVSCodeを猛プッシュされたので使ってみることにしました。 VSCodeは数ヶ月前にインストールしたもののそのときは結局使わず。数ヶ月ぶりの起動でした。 インストール時に

    VSCodeの操作ミスでGCP Cloud Composerの裏側k8sをお掃除した話 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • VR向けUI/UXの検討と、その歴史 - Qiita

    記事は DMMグループ Advent Calendar 2019 の11日目の投稿です。 先日12/10は @mimickn さんの neo4jでグラフ同士の差分を取る でした。 はじめに DMM.com VR研究室の クレウス(kleus_balut) です。 2018年2月からVRChatユーザーで、2019年4月からDMM.com VR研究室配属、 2019年8月末にリリースしたVRゲーム BOW MAN では、UI実装を中心に担当しました。 個人では VIVEBatteryInfo という、VRソーシャル向けのVRオーバーレイツールを開発/頒布しています。 VR向けUI/UXについて VRのコンテンツでは「VRならでは」を求めがちですが、UI/UXもそうであるとは限りません。 むしろ、旧来のUI (記事では以下「2D-UI」) をそのままVR空間に3Dオブジェクトとして配置した

    VR向けUI/UXの検討と、その歴史 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 高校生がアルゴリズムとスパコンの力で、京都の碁盤目状道路を13.9%効率化した話 - Qiita

    2. 研究で解く問題 「いざ研究しよう!」と思っても、条件や設定を決めないと何も始まりません。 まずは研究を分かりやすくするために、「一つの問題」に落とし込むことにしました。 問題設定 縦 $N$ 行・横 $N$ 列の大きさの碁盤の目があります。隣り合う交差点間の距離は 1 です。つまり、交差点が合計で $N^2$ 個あり、それぞれ座標 $(1, 1), (1, 2), ..., (1, N),$ $(2, 1), (2, 2), ..., (N, N-1), (N, N)$ に位置すると考えることもできます。 下の図は、$N = 4$ の場合の交差点の位置です。 あなたは、碁盤の目の交差点の位置は変えずに、道路の並びのみを変えることができます。上手く道路の並びを変えることで、できるだけ「便利」な道路網を建設してください。 「便利な道路網」って何? 私は、以下の 2 つの条件を満たす道路

    高校生がアルゴリズムとスパコンの力で、京都の碁盤目状道路を13.9%効率化した話 - Qiita
  • 【決定版】スーパーわかりやすい最適化アルゴリズム -損失関数からAdamとニュートン法- - Qiita

    オミータです。ツイッターで人工知能のことや他媒体で書いている記事など を紹介していますので、人工知能のことをもっと知りたい方などは気軽に@omiita_atiimoをフォローしてください! 深層学習を知るにあたって、最適化アルゴリズム(Optimizer)の理解は避けて通れません。 ただ最適化アルゴリズムを理解しようとすると数式が出て来てしかも勾配降下法やらモーメンタムやらAdamやら、種類が多くあり複雑に見えてしまいます。 実は、これらが作られたのにはしっかりとした流れがあり、それを理解すれば 簡単に最適化アルゴリズムを理解することができます 。 ここではそもそもの最適化アルゴリズムと損失関数の意味から入り、最急降下法から最適化アルゴリズムの大定番のAdamそして二階微分のニュートン法まで順を追って 図をふんだんに使いながら丁寧に解説 していきます。 それでは早速最適化アルゴリズムとは何

    【決定版】スーパーわかりやすい最適化アルゴリズム -損失関数からAdamとニュートン法- - Qiita
  • デイサービスで自社システムを作って楽をしています - Qiita

    今回の記事はQiitaのアドベントカレンダーに参加しています。 https://qiita.com/advent-calendar/2019/filemaker ※追記 個人ブログのリンクを貼っていましたが、同じ内容でQiitaで書いています。 https://hotspiringday.hatenablog.com FileMaker導入の経緯 実家のデイサービスで事務として働いていますが、もともと顧客情報がスタッフの記憶だったりエ○セルや紙で管理されていて、それらは更新されたりされていなかったりする‥といった状況でした。業務の流れに沿って情報が行き来する、ということがなかったので、データベースを作ろう、ということでFileMakerに行き着きました。まずはお試し無料期間で顧客情報から作りはじめ、そのまま購入、その後すぐにFileMakerServer導入‥というように、当に小さく始め

    デイサービスで自社システムを作って楽をしています - Qiita
    hbKOT
    hbKOT 2020/05/06
  • バッチ処理について考える - Qiita

    TL;DR ひとくちにバッチといっても色々ある 夜間バッチをもう作るな オンラインバッチはSQL以前にDB設計がんばれ はじめに Twitterのタイムラインで以下のようなツイートが回ってきました。 バッチ処理をみんな舐めてかかったり、ショボイとか思ってる人多い印象なんだけれども、数十万~数千万件規模のデータを処理したことあるのかな。テンプレ通りのコードじゃ動かないよ?ネットににも答え載ってないよ?低レイヤも意識しないと動かないよ? 2020年1月10日 ツイートされたわだっしーさんの意図がどこにあるかは確認してないですが、極限の世界でテンプレート的な処理では対応出来ないのはあるよな、と思いつつもある程度はバッチの作法としての書き方があると思っています。 このツイートとその関連ツイートを読みながら、そういえばバッチ処理に関して書いてある記事はあまり見ないなぁ、とおもったので他のネットや

    バッチ処理について考える - Qiita
  • 一度入れたJavaScriptライブラリは二度とアップデートされることはない - Qiita

    以下はCloudflareによるレポート、JavaScript Libraries Are Almost Never Updated Once Installedの日語訳です。 JavaScript Libraries Are Almost Never Updated Once Installed Cloudflareは、WebページにJavaScriptやその他のフロントエンドリソースを配置するための一般的な方法である、CDNJSを支援しています。 今回我々は、CDNJSチームの許可を得て、CDNJSへのリクエストから匿名化・集約されたデータを収集し、インターネットでWebサイトがどのように構築されているかを分析することにしました。 今回のエントリでは、ひとつの疑問に焦点を当てています。 すなわち、いちどJavaScriptライブラリをサイトにインストールしたあとで、ライブラリは更新さ

    一度入れたJavaScriptライブラリは二度とアップデートされることはない - Qiita
  • 意外と役に立つ最適化問題の定式化手法 - Qiita

    機械学習で予測したり、分類したりという分析手法が大流行している中で数理最適化は今となってはかゆいところに手が届く技術です。一時期は強化学習があるからいらないんじゃないか、と考えたこともあったのですが、実用性を考えると即座に実装できたり、運用のしやすさといった点で数理最適化の強さが活きる局面はまだまだ多いでしょう。特に最近では量子コンピュータの実用化の研究がされており、もし普及した場合には間違いなく再注目される技術です。 今回は数理最適化をする上で知っておきたい定式化テクニックをまとめました。たぶん数式は間違ってないですが、もしかしたら間違っている可能性もあります。 論理積 バイナリ変数$x, y$の積は線形な式のみで$xy$と等価な式を作れます。 z \geq x + y - 1 \\ x \geq z \\ y \geq z \\ x, y, z \in \left\{0, 1\righ

    意外と役に立つ最適化問題の定式化手法 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 「ソフトウェア技術者のための英語習得法の案」を試すまでたどりつかない人のための英語習得法の案 - Qiita

    私の書くQiita記事の中で,英語に関する記事は,いいね改めLGTMを得やすいようですね。次の3つの記事はどれもLGTMが100を超えました。 parcel に Pull Request を送って merge されるまでの顛末記〜生まれてはじめて国際的に OSS への貢献をしてみたら,とても歓待された ソフトウェア技術者のための英語習得法の案 続・ソフトウェア技術者のための英語習得法の案 今回私が書く記事は,そこまでたどり着かない人向けの記事です。 前提としては,4技能の傾向が,reading > writing > speaking > listening という感じなんだけど,reading, writing にも大して自信がない,という人が当てはまります。 基的な考え方 まず,reading, writing に自信をつけるところから始めるのが良いと思います。目標としては次のような

    「ソフトウェア技術者のための英語習得法の案」を試すまでたどりつかない人のための英語習得法の案 - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 見たら「ん?」となるエラーバーのグラフ - Qiita

    はじめに 実験でも数値計算でも、観測に誤差が伴うものをグラフにする時にはエラーバー(誤差棒)をつけると思います。エラーバーのつけ方には流儀がありますが、とりあえず1シグマ、つまり「誤差の乗り方がガウス分布だと仮定した時の標準偏差」をエラーバーとすることが多いです。 で、エラーバーは1シグマなので、「真の値をそのエラーバーの中に含む確率」が68%です。つまり観測点の3つに1つは「真の値」がエラーバーの範囲外にあることになります。なお、ここでは「真の値」を「観測を十分な回数繰り返した時に収束する値」のこととします。 さて、発表を見ていて、たまに「ん?」と思うようなグラフを見かけます。以下では、そんな「ん?」なグラフの実例と、その原因について見てみようと思います。 ケース1:正しい誤差棒 入力値$x$に対して、観測値$y$が$y=x$となる単純な系を考えましょう。ただし、観測するたびに誤差$\v

    見たら「ん?」となるエラーバーのグラフ - Qiita
    hbKOT
    hbKOT 2020/05/06
  • 自然言語処理の王様「BERT」の論文を徹底解説 - Qiita

    オミータです。ツイッターで人工知能のことや他媒体で書いている記事など を紹介していますので、人工知能のことをもっと知りたい方などは気軽に@omiita_atiimoをフォローしてください! 2018年10月に登場して、自然言語処理でもとうとう人間を超える精度を叩き出した ことで大きな話題となったBERT。それ以降、XLNetやALBERT、DistillBERTなどBERTをベースにしたモデルが次々と登場してはSoTAを更新し続けています。その結果、GLUEベンチマークでは人間の能力が12位(2020年5月4日時点)に位置しています。BERTは登場してまだ1年半程度であるにもかかわらず、被引用数は2020年5月4日現在で4809 にも及びます。驚異的です。この記事ではそんなBERTの論文を徹底的に解説していきたいと思います。BERTの理解にはTransformer[Vaswani, A.

    自然言語処理の王様「BERT」の論文を徹底解説 - Qiita