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

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

アプリで開く

はてなブックマーク

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

はてなブックマーク

トップへ戻る

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

    新年度はじまる

『agtn.hatenablog.com』

  • 人気
  • 新着
  • すべて
  • フレームワークを作れる人に憧れながら、ユーティリティを作る - 右上↗

    12 users

    agtn.hatenablog.com

    エンジニアとして働くにあたって、無意識に気をつけていたことを自覚するたびに、言語化しておきたいなと思うようになりました。 今日はフレームワークを作らないようにしている話を書いてみます。 (個人ブログを育てていたのですが、なんとなくはてなブログに復帰することを検討しているので、こっちに書いてみる) なぜフレームワークを作らないのか フレームワークの定義は正直いまだに厳密にはよくわかっていませんが、ここでは「その仕組みの上に乗っかってプロダクトコードが書かれるような基盤となる仕組み」全般をフレームワークと呼びます。(Reactは自称libraryですが、このブログではあれはフレームワーク扱いしたい、くらいのふわっとした独自定義でいきます。そもそもグラデーションなので、あまり厳密なものでもありません。) なぜ僕がフレームワークを作らないようにしているかというと、すごく単純な話で、自分でフレームワ

    • テクノロジー
    • 2024/07/28 21:53
    • エンジニア
    • あとで読む
    • 人
    • 考え方
    • 仕事
    • Rust で Unix のシグナルを channel 経由でキャッチする - 右上↗

      5 users

      agtn.hatenablog.com

      Rust でシグナルハンドリングをする必要があったのですが,あまり自分の用途にあるライブラリがなかったので作りました. 僕が Windows のことをほとんどわからないので,Windows 未対応です. github.com docs.rs https://crates.io/crates/signal-notify golang の signal.Notify に寄せた API になっていて,標準ライブラリの std::sync::mpsc::{Sender, Receiver} 経由でシグナルを待ち受けることができます. extern crate signal_notify; use signal_notify::{notify, Signal}; use std::sync::mpsc::Receiver; fn main() { let rx: Receiver<Signal> =

      • テクノロジー
      • 2018/05/14 01:05
      • HaskellのConcurrentについて調べてまとめる (MVar編) - 右上↗

        3 users

        agtn.hatenablog.com

        どうもこんにちは. 前回(HaskellのConcurrentについて調べてまとめる (IORef編) - プログラミングのメモ帳➚)の続きです. 今回はスレッド間協調のためにMVarを使う方法について調べたので, まとめたいと思います. MVar Haskellにかかわらず, 最近の並行処理はメッセージパッシングでやれみたいなのが流行ってますね (ScalaのAkkaやgolangのchanなど). MVarはHaskellにおける, 容量1のメッセージボックスのようなものです. MVarを使うことで, スレッド間でメッセージのやり取りを協調的に行うことができます. 複数のスレッドが1つのMVarに対して, メッセージを入れたり取り出したりすることでスレッド間協調を行います. 基本となるAPIはこのような感じ newEmptyMVar :: IO (MVar a) newMVar ::

        • テクノロジー
        • 2018/01/18 08:20
        • Golang での文字列連結に関するベンチマーク - 右上↗

          3 users

          agtn.hatenablog.com

          まず結論 append しよう. bytes.Buffer はそんなに速くない. きっかけ こんな記事を見かけました. Goでは文字列連結はコストの高い操作 - Qiita buf += "abc" はコストが高いよーっていうお話ですね. これは golang にかぎらず, Javaとかでもよく話題になる一般的な問題だと思います. Java だと StringBuilder を使うのが良いとされていたと思いますが, golang だと解法がいくつかあるようです. そこで, 解法をそれぞれ紹介した後, ベンチマーク結果を載せてみたいと思います. 1. 普通に += まずは普通に += で連結していく方法です. func AddString(n int) string { base := "abc" buf := "" for i := 0; i < n; i++ { buf += base

          • テクノロジー
          • 2017/12/19 00:05
          • Rust でグラフ構造や木構造を作る - 右上↗

            17 users

            agtn.hatenablog.com

            プログラムを書いていると何かしら木構造っぽいものやグラフっぽいものを作りたい場面が多々あると思います. Rust は所有権や Size の都合で,これらを作ろうと思うと地味にハマるのでまとめておきます. Rust で木構造 最も単純な木構造は Rust だと enum Tree<T> { Leaf(T), Node(Box<Tree<T>>, Box<Tree<T>>), } といった形で表せます. Rust では明示的に boxing してあげないと再帰的なデータ構造は作れないのでちょっと複雑に見えるかもしれませんが,まぁ単純です. この木構造を書き換えたい場合は,ownership をとって書き換えた値を返すこともできますし,&mut Tree<T> をとって in-place に書き換えることもできます. fn inc(&mut self) { match *self { Tree:

            • テクノロジー
            • 2017/04/11 13:04
            • rust
            • Programming
            • あとで読む

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

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

            『agtn.hatenablog.com』の新着エントリーを見る

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

            j次のブックマーク

            k前のブックマーク

            lあとで読む

            eコメント一覧を開く

            oページを開く

            はてなブックマーク

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

            公式Twitter

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

            はてなのサービス

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