はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    WWDC25

『Deep Rain』

  • 人気
  • 新着
  • すべて
  • [Mac] DockerでCPU使用率が異常なときの対処法

    3 users

    www.deep-rain.com

    MacでDockerを使用していると、恒常的にCPU使用率が大幅に上がり、ファンが唸り声を上げることがあります。 原因 様々な原因がありますが、当環境では、com.docker.hyperkitが数百パーセントのCPU使用率を記録していることがわかりました。 com.docker.hyperkitは、dockerのコンテナにホストのdiskをマウントする機能の一部を担っていますが、どうもこれがあまり性能上良くないらしく、そのまま使っていると、CPU使用率が上がってしまうケースがあります。特に巨大なディスクをマウントすると起こるようです。 この問題は非常に長くの間議論されています。環境により、解消法は様々なようですので、それらを紹介していきます。 環境により、様々な対処法があり、有効なものも異なるようです。実行が簡単な順に紹介していきます。 OSごと再起動してみる もしかすると、他のプロセス

    • テクノロジー
    • 2021/01/17 19:44
    • Docker
    • Pocket
    • Mac
    • 安易にフラグ変数を利用すべきでない3つの理由

      3 users

      www.deep-rain.com

      プログラムが動作する上で必須に近い、「boolean」変数。安易に使いすぎると可読性の低下などにより、不利益を被ってしまうことがあります。 フラグの使用例 たとえば、改行コードを含んだ文字列の内容をheader部とbody部に分けるコードを考えてみましょう。 import java.util.*; public class Main { public static void main(String[] args) throws Exception { String input = "header\nbody1\nbody2\nbody3"; String[] lines = input.split("\n"); String header = null; List<String> body = new ArrayList<>(); // ヘッダー情報取得済フラグ boolean flag

      • テクノロジー
      • 2020/03/24 11:41
      • C#
      • programming
      • あとで読む
      • JavaScriptでのnull(undefined)チェック

        3 users

        www.deep-rain.com

        至るところで使われる、nullチェックの書き方をJavaScript的に考えてみることにします。 nullチェックとは プログラミングでは、よくnullという概念が用いられています。「何もない」という特殊な値ですが、実際には、これがしばしば悪さをすることになるのです。 Javaの例 以下のコードは実行時例外(NullPointerException)になります。 public class Main{ public static void main(String[] args){ boolean result = isExample(null); System.out.println(result); } private static boolean isExample(String s){ return s.equals("example"); } } これは、String型宣言が行われて

        • テクノロジー
        • 2020/02/04 11:00
        • 【JavaScript】Arrayの重複を排除する最もシンプルな方法

          6 users

          www.deep-rain.com

          RDBMSなどでは、Distinctという構文があったりするのですが、JavaScriptでは重複を排除するために少しの工夫が必要になります。 例えば、以下のような配列があるとします。 let arr = [0,1,1,2,3,4,4,4,5]; このうち、重複するデータが必要ないケースを考えてみます。 Setを使う ES2015(ES6)で導入されたSetは、今回のように重複を許さない使い方には非常に有効なオブジェクトです。 実際に配列を変換してみます。 let arr = [0,1,1,2,3,4,4,4,5]; let set = new Set(arr); console.log(set); // -> Set { 0, 1, 2, 3, 4, 5 } 簡単ですね。 SetからArrayへの変換 Arrayオブジェクトには、mapやfilterなどの便利なメソッドがありますが、Se

          • テクノロジー
          • 2019/09/12 00:23
          • 重複削除
          • array
          • javascript
          • map
          • web制作
          • 【HTML5】formのactionをsubmitボタン毎に変える方法(JavaScript不要)

            3 users

            www.deep-rain.com

            submit前にJavaScriptで書き換える方法がポピュラーなようですが、HTML5ではもっと簡単な方法があります。SPA全盛の現代にはあまりそぐわないですが、ご紹介しておきます。 SubmitボタンでActionをオーバーライドする 実は、HTML5から新たに属性が追加されており、これを指定することでFormのパラメータをオーバーライドすることができます。 以下のようなフォームの内容を、押したsubmitボタンによって複数のエンドポイントに送信できるボタンを追加してみます。 <form action="xxx" method="post"> <input type="text" name="param1" value="value1"> <input type="text" name="param2" value="value2"> <input type="text" name="

            • テクノロジー
            • 2019/06/27 15:59
            • html
            • html5
            • 技術
            • 【システム開発】パスワードの安全な保存方法

              3 users

              www.deep-rain.com

              パスワードといえば、最も流出させてはいけないセンシティブな情報のひとつです。パスワードが流出すれば、そのユーザーに偽装してWebサービスを利用したり、個人情報を盗み見るなどが容易にできてしまいます。 今回は、パスワードの安全な保存方法について考えてみましょう。 はじめに Twitter社がパスワードを平文でログに吐いていたという話は記憶に新しく、内部での漏洩とはいえ重大な事件として話題になりました。 複数のサイトで共通のパスワードを使わない、というのはセキュリティ意識の高いユーザーなら常識ですが、数多くあるウェブサイトのID、パスワードを全て適切に管理することは非常に難しく、共通のパスワードを利用しているユーザーもいるはずです。そうなると、平文のパスワードとユーザーIDとして扱われやすいメールアドレスなどが見える状態にあるのは非常に好ましくありません。 たとえ内部での漏洩であったとしても、

              • テクノロジー
              • 2019/06/06 23:41
              • JavaScriptでディープコピーを実現するための最もシンプルな方法

                3 users

                www.deep-rain.com

                var user = {name:"Bob", friends:["Alice", "Michael"]}; // deep copy var copiedUser = JSON.parse(JSON.stringify(user)); // Test copiedUser.friends.push("Charlie"); console.log(user); // -> {name:"Bob", friends:["Alice", "Michael"]} console.log(copiedUser); // -> {name:"Bob", friends:["Alice", "Michael", "Charlie"]} 非常に単純な話で、JSONオブジェクトはシリアライズ可能なので、シリアライズしてからデシリアライズすれば凄く簡単にオブジェクトのディープコピーが作れます。これは別の言語

                • 世の中
                • 2019/01/08 15:30
                • trouble
                • JavaScript
                • 【nginx】ifをlocationディレクティブで使ってはいけない理由

                  3 users

                  www.deep-rain.com

                  この記事は、公式サイトのIf is Evilを抜粋した簡易的な記事です。詳しい内容が必要でしたら、公式サイトのIf is Evilをご覧ください。 はじめに nginxでは、if文が利用できます。たとえば、Optionsリクエストを捌くときに使います。 location /xxx { if ($request_method = OPTIONS ) { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "GET, OPTIONS"; add_header Access-Control-Allow-Headers "origin, authorization, accept"; add_header Access-Control-Allow-Credentials "true";

                  • テクノロジー
                  • 2018/06/28 18:02
                  • neo4j入門 Cypherクエリと使い方の具体例

                    10 users

                    www.deep-rain.com

                    GraphDBのひとつである、Neo4jを触ってみたので、簡単に解説していきます。 GraphDBとは グラフと聞くと、Excelなどで作成できる棒グラフや折れ線グラフをイメージしますが、GraphDBが表すGraphとは、データ構造の概念のひとつで「ノードの関係の集合」を示す語とされています。 身近なところで言えばSNSのフォロー関係や、駅と線路の関係などもこれに当てはまります。 MySQLなどの昔からあるRDBMSでは、例えば「友達の友達」や、「駅間の最短経路探索」は苦手としており、いくつも連なるJOIN句を書いたり、複雑なテーブル構造を持ったりして無理矢理実装するしかありませんでしたが、GraphDBの登場によって、高速かつ簡潔な探索を実現することが可能となりました。 neo4jとは GraphDBの中でも比較的ポピュラーなデータベースエンジンで、Javaで記述されています。SQLラ

                    • テクノロジー
                    • 2018/05/20 23:17
                    • neo4j
                    • Javaにおける値渡しと参照渡し

                      4 users

                      www.deep-rain.com

                      しばしば、値渡しと参照渡しについて尋ねられることがあります。今回は、Javaの引数の渡し方について解説してみましょう。 引数の渡し方 CやC++などでよく見られた、いわゆる「ポインタ」はJavaの世界においては存在しません。また、.NET系言語にみられる渡し方の指定もできませんから、必然的に、引数の渡し方は固定されていることになります。 値渡しとは、変数の値自体を渡すことです。Javaではプリミティブ型がこの渡し方になります。 public class Main { public static void main(String[] args) throws Exception { int num = 1; System.out.println(num); // -> 1 increment(num); System.out.println(num); // -> 1 } private s

                      • テクノロジー
                      • 2018/03/31 15:14
                      • java
                      • Android
                      • コンストラクタの正しい使い方

                        4 users

                        www.deep-rain.com

                        コンストラクタとは newでインスタンス化するときに呼ばれる便利な初期化記述用のメソッドです。DTOなどでは、これを記述しない例も少なくありません。 よくない使い方 メソッドを記述する手間を省くためだけのコンストラクタ よくあるのが、以下のような使い方でしょう。 class User{ private Integer id; private String name; public User(Integer id, String name){ this.id = id; this.name = name; } @Override public String toString(){ return String.join(",", id.toString(), name); } } class Main{ public static void main(String[] args){ User

                        • 学び
                        • 2018/03/21 18:36
                        • あとで読む
                        • JavaScriptのbind(this)とself=thisはどちらを使うべきか

                          4 users

                          www.deep-rain.com

                          JavaScriptにおけるthisとは? JavaScriptでは、thisという特殊なオブジェクトがあります。例を挙げてみましょう。 function Person(name, age) { this.name = name; this.age = age; } Person.prototype.say = function(){ console.log("My name is " + this.name + ". I am " + this.age + " years old."); }; var person = new Person("Alice", 20); person.say(); // -> My name is Alice. I am 20 years old. この例で、personオブジェクトに格納されたnameとageは、thisを用いることによってアクセスできま

                          • テクノロジー
                          • 2017/12/16 14:58
                          • javascript
                          • あとで読む
                          • データベーススペシャリスト試験に3ヶ月で合格するために行ったこと

                            7 users

                            www.deep-rain.com

                            平成29年春季のデータベーススペシャリスト試験に合格したので、体験をもとに気を付けることや勉強方法などをまとめて記録します。 データベーススペシャリストとは システムにおけるデータを格納する技術のひとつである、リレーショナルデータベースを専門的に扱うための十分な知識があることを証明する資格です。 基礎理論のほか、論理設計、物理設計に関する知識、SQLの構文やパフォーマンスチューニングに関する知識も必須となっています。 最近ではNoSQLなどのモダンなデータベースを扱うことも増えてきましたが、販売管理システムや金融系のシステムなどを扱うにあたっては、当然のごとく要求されるスキルです。 資格の難易度 IPAの公式ページによると、H29実績で14.5%の合格率、約7人に1人が合格しています。 論文問題のあるプロジェクトマネージャやシステムアーキテクトよりはまだ簡単かもしれませんが、合格率を見るに

                            • テクノロジー
                            • 2017/10/27 20:27
                            • database
                            • JavaScriptのArray.forEachをbreak、continue、returnさせたい

                              11 users

                              www.deep-rain.com

                              Array.forEachとは ECMA-262標準で追加されたメソッドで、for文を書かなくても、Arrayの要素すべてに対してcallbackの処理を行ってくれる便利なメソッドです。 たとえば、配列の中身をすべて表示するようなコードを組んでみましょう。 // テストデータ const TEST_DATA = ["a", "b", "c", "d", "e"]; // 従来の記法 for(let i = 0; i < TEST_DATA.length; i++){ console.log(TEST_DATA[i]); } // forEachを利用した記法 TEST_DATA.forEach(value => { console.log(value); }); 関数型言語っぽい非常にシンプルな記述が可能ですね。 forブロック内における、break、continue、returnと同じ動

                              • テクノロジー
                              • 2017/08/30 16:44
                              • javascript
                              • tips
                              • あとで読む
                              • JavaScriptでのObject比較方法

                                7 users

                                www.deep-rain.com

                                修正とお詫び コメントにて、JSON.stringifyがObject順序を保証しない、というご指摘を頂きました。誤った情報を掲載してしまったことをお詫び申し上げます。 JSON.stringify()によると、 注: 配列以外のオブジェクトのプロパティでは、特定の順番で文字列化されることは保証されていません。文字列化された同じオブジェクトの中でプロパティの順番に依存しないようにしてください。 とのことでしたので、JSON.stringifyをObjectに適用する方法ではなく、es6より実装された`Object.entries`を利用し、配列に適用する方法に修正しております。 JavaScriptのObjectとは JavaScriptのObjectは、他の言語における、いわゆる「連想配列」です。 こうしたい const a = {"a":"a"}; const b = {"a":"a"

                                • テクノロジー
                                • 2017/08/12 11:27
                                • javascript
                                • tips
                                • 軽量マルチスレッドJavaScriptライブラリ「Thread.js」 1.0.0 リリース

                                  3 users

                                  www.deep-rain.com

                                  Thread.js 1.0.0をリリースしました。 公式ページはこちら Thread.jsとは WebWorkerAPIを、簡潔な構文で利用できるように考案したJavaScriptライブラリです。。 使い方などの詳細は、Thread.jsをご参照頂くとして、本稿では、その設計意図や経緯などをご説明します。 経緯 長らく、JavaScriptはウェブページ上の処理を一手に担っていました。しかし、重い処理を実行させると、ページがフリーズしたかのように応答しなくなることがあります。 これは、JavaScriptが常にシングルスレッドで実行される言語であるため、ページの描画やスクロールなど、本来優先されるべき描画処理を行うだけの割り込みを発生させられないことが原因でした。 回避策として、setTimeoutで擬似的に処理を他へ渡すことは出来ますが、setTimeoutはセットされたキューを順番に処

                                  • テクノロジー
                                  • 2017/06/16 18:58
                                  • javascript
                                  • あとで読む
                                  • どのようにしてクラス設計を行うのか?クラス設計の考え方とコツ

                                    14 users

                                    www.deep-rain.com

                                    今回は、詳細設計(内部設計)におけるクラス設計について、考えてみたいと思います。 クラス設計とは 外部的な振る舞いを設計する基本設計(外部設計)と違い、クラス設計は、プログラム内部の構造を設計する詳細設計フェーズに位置します。 極端な話、クラス設計などなくても、全ての処理をひとつのメソッドに書いてしまうこともできます。 では、なぜそうしないのか?先に述べたようなプログラムでは、様々なコストが掛かってしまう可能性が非常に高いからです。 劣悪な設計によるコスト増大 保守コスト たとえば、一人でプログラムを組むとしましょう。プログラムの隅々までしっかり把握しており、何か変更を加えなくてはならなくなったときでも、素早くその箇所に辿り着き、変更を加えることができます。 しかし、現実に、一人でそのプログラムを永久にメンテナンスすることはあり得ません。自分ひとりで運営しているサービスであったとしても、不

                                    • テクノロジー
                                    • 2017/06/14 17:28
                                    • 設計
                                    • プログラミング
                                    • あとで読む
                                    • DTOとは

                                      3 users

                                      www.deep-rain.com

                                      WebアプリケーションをMVCモデルで本格的に作ることになると、しばしば耳にする不思議な言葉があります。 Data Transfer Objectの略であり、その名の通り、データを運ぶだけのオブジェクトです。 なぜDTOが必要なのか 例えば、ログイン処理を例にしてみましょう。 public (型) doLogin(String id, String pass){ ログイン処理... if(ログインOK){ return 名前、性別、年齢、ログイン日時; } return null; } さて、返す型は何でしょうか。 通常ならMapでしょうか?Stringに詰めて送るという手段も無いわけではありません。しかし、いずれにしても、中身が分かりづらく、チーム開発では得策ではありませんよね。 また、MapやStringで貰ってきた値をせっかく解析して各変数に格納できたとしても、次に呼び出すメソッドへ

                                      • テクノロジー
                                      • 2017/06/14 17:25
                                      • あとで読む
                                      • 【java】OutOfMemory発生時の調査方法

                                        3 users

                                        www.deep-rain.com

                                        ヒープ領域設定などが適切に設定されていることが前提です。 これらを読む前に、まず-Xmsや-Xmxの値を見直してみてください。 メモリリークを理解する 通常、メモリリークはプログラム上のミスであることが大半です。 java7では、AutoCloseableまたはCloseableインターフェースの実装クラスはtry-with-resourcesという構文が利用でき、煩雑なfinally句を書く必要がなくなりました。反面、構文ミスによるリソースの閉じ忘れが発生することもあり・・・。 たとえば、 public class A implements AutoCloseable{ public void close(){ System.out.println("A was closed."); } } public class B implements AutoCloseable{ private

                                        • テクノロジー
                                        • 2017/06/14 16:20
                                        • java
                                        • 【単体テスト設計】どのようにしてテストコードを書くのか?

                                          6 users

                                          www.deep-rain.com

                                          テストコードは重要なものです。対象のコードの品質を担保してくれるばかりでなく、自動テストによって改修時のバグ発生を未然に防いだり、リグレッションテストの手助けにもなるでしょう。 反面、テストコードの作成には、それなりの工数が掛かることも周知のとおりですから、工数をかけたくないプロジェクトでは後回しにされてしまいがちです。 テストコードとは メソッドなどの実行結果が適切かどうかをコード上で試験するものです。以下に例を挙げてみましょう。 例は2つの引数を合計する単純なコードです。 public int sum(int a, int b) { return a + b; } これに対してテストコードを書いてみます。jUnitのメソッドを使ってみましょう。 public void testSum() { int result = sum(1,2); assertEquals(result, 3);

                                          • テクノロジー
                                          • 2017/03/08 11:50
                                          • 設計
                                          • テスト
                                          • プログラム
                                          • プログラミング
                                          • Javascriptでセミコロンを必ず付けるべき3つの理由

                                            4 users

                                            www.deep-rain.com

                                            一部で、javascriptにセミコロンを付けずに運用するコーディングルールが流行っているそうです。 コーディング規則にJavaScript Standard Styleを使うべき4つの理由 JavaScript の ; を省略する派 これは驚愕です。フロントエンドJavaScriptでは、セミコロンを付けることが常識であり共通認識だと考えてきました。 たとえば、セミコロン省略スタイルでは以下のようにするようです。 console.log("a") console.log("b") console.log("c") 最大の問題である、即時関数や配列リテラルについては、先頭にセミコロンをつけるようです。 console.log("a") ;(function(){ console.log("b") console.log("c") })() ;["d", "e"].forEach(funct

                                            • テクノロジー
                                            • 2017/03/08 04:01
                                            • javascript
                                            • jQuery不要論について考える

                                              6 users

                                              www.deep-rain.com

                                              jQueryは、長らくWeb開発の現場に君臨し、その発展を助けてきたJavaScriptフレームワークです。今回は、最近巷で囁かれている、「jQuery不要論」について考えてみたいと思います。 jQueryとは 古来、JavaScriptの実装がブラウザによって異なり、全てのブラウザ(特にIE)に対応しようとすると、その労力は計り知れないものでした。 そのブラウザ間の差異を吸収する選択肢のひとつがjQueryで、登場以来多くのプロジェクトで採用されることとなります。 また、コーディングが短く、簡潔になることも特徴のひとつで、生産性の向上に大きく寄与してきました。 // native javascript document.getElementById("element"); // jQuery $("#element"); しかし、時代が進むにつれ、JavaScriptの標準仕様も広く浸透

                                              • テクノロジー
                                              • 2017/02/03 14:32
                                              • jQuery
                                              • 【PlayFramework】Cloud9(ubuntu14.04)にPlayFramework2.5(typesafe activator)を導入する方法

                                                4 users

                                                www.deep-rain.com

                                                PlayFrameworkとは? java/scalaのフレームワークで、「設定より規約」、ホットリロードなどの、開発者の生産性を向上させることに特化したMVCフレームワークです。 クライアントサイド(テンプレートエンジン)はscalaですが、サーバーサイドは、java、scalaいずれでも使用できることもあり、比較的人気の高いフレームワークとなっています。 Java8のインストール Cloud9にワークスペースをblankテンプレートで作成し、java8を導入します。 Cloud9のubuntuバージョンは14.04ですが、このバージョンですとjava8がリポジトリに含まれておらず、通常のaptコマンドではインストールできませんので、以下のようにして対応するリポジトリを追加します。 $ sudo add-apt-repository ppa:webupd8team/java 途中、メッセ

                                                • テクノロジー
                                                • 2016/10/27 10:28
                                                • あとで読む

                                                このページはまだ
                                                ブックマークされていません

                                                このページを最初にブックマークしてみませんか?

                                                『Deep Rain』の新着エントリーを見る

                                                キーボードショートカット一覧

                                                j次のブックマーク

                                                k前のブックマーク

                                                lあとで読む

                                                eコメント一覧を開く

                                                oページを開く

                                                はてなブックマーク

                                                • 総合
                                                • 一般
                                                • 世の中
                                                • 政治と経済
                                                • 暮らし
                                                • 学び
                                                • テクノロジー
                                                • エンタメ
                                                • アニメとゲーム
                                                • おもしろ
                                                • アプリ・拡張機能
                                                • 開発ブログ
                                                • ヘルプ
                                                • お問い合わせ
                                                • ガイドライン
                                                • 利用規約
                                                • プライバシーポリシー
                                                • 利用者情報の外部送信について
                                                • ガイドライン
                                                • 利用規約
                                                • プライバシーポリシー
                                                • 利用者情報の外部送信について

                                                公式Twitter

                                                • 公式アカウント
                                                • ホットエントリー

                                                はてなのサービス

                                                • はてなブログ
                                                • はてなブログPro
                                                • 人力検索はてな
                                                • はてなブログ タグ
                                                • はてなニュース
                                                • ソレドコ
                                                • App Storeからダウンロード
                                                • Google Playで手に入れよう
                                                Copyright © 2005-2025 Hatena. All Rights Reserved.
                                                設定を変更しましたx