タグ

ブックマーク / qiita.com (1,292)

  • bpftraceでテトリス - Qiita

    みなさんこんにちは.突然ですがbpftraceってご存知でしょうか? 名前から明らかなようにbpfを利用したトレーシングツールです.bpftraceの設計は以前から存在するDTraceやSystemTapに影響を受けています.それらのツールに馴染みのある人にとってはむしろ,bpftraceはDTraceやSystemTapのBPF版と言った方が(非常に雑ですが)分かりやすいかもしれません. 一般にBPFを利用してトレーシンングを実施する場合は,1) BPFプログラム体 と 2) トレーシング結果を表示するためのユーザランドのプログラム を書く必要がありますが,bpftraceでは独自のスクリプト言語により,それらを特に意識せずにトレーシング処理が記述できます.例えば,プロセス別にシステムコール発行数を集計したい場合は以下のようにしてできます.便利ですね. % bpftrace -e 't

    bpftraceでテトリス - Qiita
    gfx
    gfx 2020/01/21
  • WASM3の末尾呼び出しVMがかしこい - Qiita

    (EDIT: 末尾呼び出しVMって何だ.. direct-threading VMを末尾呼び出しで実現しているのが面白いと思ったもんで...) WebAssemblyの インタプリタ であるWASM3( https://github.com/wasm3/wasm3 )が良いデザインをしていると思うメモ。 (WASM3はM3と呼ばれていたインタプリタプロジェクトが移動してきたもの。というわけでWASMのバージョン番号ではない。) かしこい所 基的にはリポジトリの README.md に述べられている。 コンパイラの末尾呼び出し最適化を期待してシンプルに記述 WASM3のVM命令は以下のようなC言語関数で実装される: d_m3OpDef (GetGlobal) // ★ これはマクロで次節のようなプロトタイプに展開される { // ★ 次の2行が実際の処理 i64 * global = im

    WASM3の末尾呼び出しVMがかしこい - Qiita
    gfx
    gfx 2020/01/10
  • AWSボリュームの暗号化の必要性について - Qiita

    AWSボリュームに暗号化は必要なのか? 当初、実際にAWSのデータセンターの実サーバーに物理的に侵入された場合や、AWSの管理システムへのハッキングした時くらいにデータを守れるという認識だったのでそれが正しいのかどうかAWSサポートに問い合わせをしてみた. AWSサポート問い合わせ結果(原文は載せれないので要約) 1. お客様のセキュリティあるいはコンプライアンス要件を満たせるようにご用意している機能 多くのユーザーはこのコンプライアンス基準へ準拠のためだけに、ストレージ暗号化の機能を利用しているのが現実らしい 2. AWSのデータセンターに対して物理的な侵害が発生した場合に、保護する事が可能になる これは想定していた当然のメリットである. 3. EBS と EC2 インスタンスとはネットワークを経由で通信するが、暗号化ボリュームを使用している場合この通信経路上も暗号化される これは少しび

    AWSボリュームの暗号化の必要性について - Qiita
    gfx
    gfx 2020/01/01
  • ソフトウェアのサポート業務とはどのようなものか - Qiita

    Help us understand the problem. What is going on with this article? はじめに ソフトウェアの世界にはいろいろな仕事があります。何も知らない人から見て一番脚光を浴びがちなのが開発者、とくにプログラマーでしょう。スーパープログラマーを題材とした漫画やアニメ、映画はたくさんあります。しかし、それ以外の仕事は実際やってみないと想像しづらいことより、あまり実情が知られていません。記事ではそれらの中からサポートエンジニアに注目して、この職種がどういうものなのかについて書きました。対象読者は開発者、とくに自分で作ったものを自分ないし近しい人だけが使うという経験しかしていない駆け出しの開発者です。 サポートエンジニアといっても色々なものがありますが、ここではSI企業において顧客システムでトラブルが起きたときにSEの依頼を受けて問題を解決

    ソフトウェアのサポート業務とはどのようなものか - Qiita
    gfx
    gfx 2019/12/31
  • リビングの環境監視ダッシュボードを60分で作る方法(Nature Remo Cloud APIとGoogleサービス連携) - Qiita

    はじめに アレクサで、古い家電を操作する目的で購入したNature Remo。 センサーがとても秀逸だったので、部屋のモニタリングする仕組みを作ってみました。 部屋の環境が一目でわかるようになり、色々活用できそうです。 Nature Remo Cloud APIを利用して、Googleのサービスで作ってみました。 GAS(GoogleAppsScript)でGoogleスプレッドシートにデータを頂いて、Googleデータポータルにまとめてみました。これでサーバーレスかつセキュアなクラウド型環境監視ダッシュボードが完成しました。 とりあえず、トリガーで1時間ごとに自動更新することにしました。 Nature Remo、Googleスプレッドシート、Googleデータポータルの順を現した写真 今回のゴール Googleデータポータルでリビングの照度、温度、湿度を監視。 1時間おきのログを目視的に

    リビングの環境監視ダッシュボードを60分で作る方法(Nature Remo Cloud APIとGoogleサービス連携) - Qiita
    gfx
    gfx 2019/12/30
  • Asyncify を使ってみた - Qiita

    TL;DR; Aysncify を使うことで、同期的な C/C++ 関数を、非同期なものにできます -s ASYNCIFY=1 をコンパイラオプションに指定した上で、 -s 'ASYNCIFY_IMPORTS=["関数1", "関数2", …]'のように非同期化する関数名を列挙してコンパイルします 出力される JS ファイルのサイズと、WASM ファイルサイズが増えます Aysncify とは Asyncifyとは、Emscripten の提供する機能の 1 つです。これを使うと次のことが可能になります。まさにマジック。 同期的なC/C++のコードを、非同期化します 非同期なJS APIの結果を、C/C++ 側では(擬似的な)同期的に受け取ることができます 何ができるのかを、試した結果をまとめました。まずは無限ループがあるコードを例にみてゆきましょう。 無限ループのあるコードが、メインスレ

    Asyncify を使ってみた - Qiita
  • SELECT文で本番環境を落としたお話 - Qiita

    (この記事は 地平線に行く とのマルチポストです) 番環境でやらかしちゃった人 Advent Calendarで、このパターンのやらかしはなかったのでキーボードを叩くことにしました。 番外編のつもりでお楽しみください。 この記事が、新たな障害発生を防ぐことにつながれば幸いです。 何をやったのか ある日、ちょっとした調査のために番データベースのデータを確認することになりました。 (個人情報が格納されているようなシステムではなかったので、必要であれば番データベースへのアクセスが許されていました) もしメンテナンスがあればそのタイミングでやればよかったのですが、直近では特に予定はないとのことでした。そのため、システムが動いている状態のまま作業をすることにしました。 ごく単純な SELECT を実行するだけのつもりだったので、システムに影響がないと判断したためです。 その際、万が一コピペをミ

    SELECT文で本番環境を落としたお話 - Qiita
    gfx
    gfx 2019/12/26
    お〜なるほど。面白い。
  • Party Parrot とは 〜イカれたオウムの歴史を紐解く〜 - Qiita

    Slackユーザでなくともエンジニアの方なら一度は見かけたことがあるであろうこのGif画像。 Party Parrot という名称で世界中で愛されています。 ただ、このParty Parrotが何者なのかご存知でしょうか。 奇妙でどこか愛らしい彼の、意外と知られていない歴史を紐解いていきます。 きっかけはBBC 全ての始まりは2009年9月4日にBBCが放映した「Last Chance to See」というテレビ番組の1シーンでした。 イギリスの俳優スティーヴン・フライ(Stephen Fry)と動物学者マーク・カーワーダイン(Mark Carwardine)は撮影でニュージーランドを訪れます。 目的は、世界で唯一飛べないオウムであるカカポ(和名:フクロウオウム)を撮影することです。 Mnolf - Photo taken on Codfish Island (Whenua Hou), N

    Party Parrot とは 〜イカれたオウムの歴史を紐解く〜 - Qiita
    gfx
    gfx 2019/12/25
    へえ!モデルはカカポだったのか。
  • Rustで動的ロードによるプラグインシステムを作る - Qiita

    はじめに この記事はRustその3 Advent Calendar 2019 23日目です。(空いていたので飛び入り参加で) Rustでプラグインシステムを実装する必要があったので、その時の知見をまとめてサンプルプロジェクトを作ってみました。 ここで言うプラグインシステムとは、例えばGIMPのプラグインのように、バイナリ形式のプラグインを実行時に読み込んで機能追加するものを指します。最近この手の拡張はスクリプト言語でやることが多く、この形式はあまり見かけなくなりました。しかしRustで実装したいならバイナリの動的ロードをするしかないだろう、ということでやってみました。 注意 以下のコードは手元の環境のRust1.40.0では動作していますが、Rustコンパイラが保証していない仮定をいくつか置いているので、動く保証はありません。不具合が致命的になるような環境では使わない方がいいと思います。

    Rustで動的ロードによるプラグインシステムを作る - Qiita
    gfx
    gfx 2019/12/24
  • macOS で再起動しても ssh agent に秘密鍵を保持させ続ける二つの方法 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    macOS で再起動しても ssh agent に秘密鍵を保持させ続ける二つの方法 - Qiita
    gfx
    gfx 2019/12/24
  • 書き込みがあるワークロードにおける ZOZOTOWN マルチクラウド構想とその検討停止について - Qiita

    この記事はZOZOテクノロジーズ #1 Advent Calendar 2019 23日目の記事です。 昨日の記事は弊チームの inductor による「GKEの内部負荷分散機能を使ってInternal Load Balancerを構築する」でした。面倒で困っているのでGCP様にはなんとかして欲しいものです さて記事では、残念ながら番運用には至らなかったのですが、私がここ暫くMLOps業の裏でやっていた「書き込みがあるワークロードにおける ZOZOTOWN マルチクラウド構想」の検討結果について供養のつもりで記そうと思います。 なお、今年は弊社では全部で5つのAdvent Calendarが公開されています。 ZOZOテクノロジーズ #1 Advent Calendar 2019 ZOZOテクノロジーズ #2 Advent Calendar 2019 ZOZOテクノロジーズ #3 Ad

    書き込みがあるワークロードにおける ZOZOTOWN マルチクラウド構想とその検討停止について - Qiita
    gfx
    gfx 2019/12/23
    "マルチクラウドにしたからと言って可用性が上がると言い切るのは難しい - 設計難易度と複雑性が跳ね上がるので、マルチクラウド化によってむしろ耐障害性が落ちる可能性すらあると感じた"
  • RustでWebAssemblyインタプリタ作った話 - Qiita

    はじめに RustWebAssemblyインタプリタを作ったのでその実装の話や、wasmの仕様についての記事です。 HListを使ったジェネリックプログラミングの話や、最後の方には「自作言語 on 自作wasmインタプリタ on 自作wasmインタプリタ」みたいな話も出てきます。 分かりにくい所や間違っている所は指摘してくださると助かります。 リポジトリ 作った成果物のリポジトリです。まだpublishはしていませんがクレートになっています。 cargoのexample実行に対応しているのでそれを見ればだいたい分かると思います。 今回はadc-2019-12-22というタグがついたコミットのソースを元に解説していきます。 https://github.com/kgtkr/wasm-rs/tree/adc-2019-12-22 仕様書 この記事では仕様書を読みながら順番に実装を解説していき

    RustでWebAssemblyインタプリタ作った話 - Qiita
    gfx
    gfx 2019/12/22
  • 2019年末版 形態素解析器の比較 - Qiita

    形態素解析は日語処理の初歩であり、文を単語に分割したり、品詞や活用形、基形を分析するために行います。記事では形態素解析のツールをいくつかの出力例を交えて比較していきます。 (SentencePieceでいいじゃん、という人はお呼びでないですが、そういう方には、Twitterのトレンドが変な分割になってたら嫌では?と申し上げておきたいです) MeCab 言わずと知れた形態素解析器。とりあえずMeCabを使うという人は今なお多いことでしょう。とにかく高速であるということと、システムと辞書が分離されているのが特徴です。またPythonから使うのも簡単になりました(Janomeというものがありましたがmecab-python3の方が高速です)。Javaから使いたい人はKuromojiを使えばmecab(+ipadic)相当の結果が得られるはずです。 辞書はIPA辞書が推奨されていますが、Un

    2019年末版 形態素解析器の比較 - Qiita
    gfx
    gfx 2019/12/18
  • Google Maps APIで50万以上使っていた話 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事は Wano Group Advent Calendar 2019 の7目の記事となります。 アドベントカレンダーに「なにか」書くといって7日を予約していたんですが、特にネタを考えてなかったら、前日にネタが降ってきたという話です。 ※後日談を追加しました(2019/12/15) 始まりは経理担当者のSさんの指摘 ちょうど昨日(12/06)のことです。経理担当者のSさんに「Google Cloud Service から38,653円がクレジットカードの明細にあるのですが、証憑がないんですが…」と相談を受けました。月初は会社に対する

    Google Maps APIで50万以上使っていた話 - Qiita
    gfx
    gfx 2019/12/16
    コードのバグでAPI叩きすぎたケース。こわい。それでも返金されたとのことでよかった。
  • Rustの `Arc` を読む(1): Arc/Rcの基本 - Qiita

    概要: Rustの Arc 型の実装は宝の宝庫です。そこで、これを隅から隅まで解説してみます。 第1回「Arc/Rcの基」では、実際に Arc のソースを読む前に Arc/Rc の使い方を解説します。 第1回 Arc/Rcの基 第2回 Rcを読む基編 第3回 Rcを読む発展編 第4回 アトミック変数とメモリ順序 第5回 Arcを読む はじめに Arc<T> はRustの基的な型のひとつですが、 Box<T> のようにコンパイラに特別扱いされているわけでもなく、実装も比較的コンパクトです(コメントやテスト、安定性に関する指示などを除いて500LOC程度) その一方で Arc は並行性制御や Deref, ドロップチェッカー, Unpin, Layoutの扱いなどRustをよりよく理解するための題材を多く含んでいます。そこで記事では Arc<T> の実装を読んでいきます。 とはいえ、

    Rustの `Arc` を読む(1): Arc/Rcの基本 - Qiita
    gfx
    gfx 2019/12/14
  • 25年前の未来の言語の話 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 私ごとですが、12月の9日に50歳になりました。そこでというわけでもないのですが、25年くらい前のプログラミング言語の技術について書きたいと思います。お話は大学院で学んだ動的型付けの並列オブジェクト指向の実装に偏っています。 背景 時は1990年代前半、今と同じようにCPUの性能は頭打ちになり解決策は並列化しかないということで盛んに並列処理の研究がされていました。もっとも、その後CPUは1000倍以上速くなっているのですが。 1981年にBYTE誌でSmalltalk-80を衝撃的に紹介されたのをきっかけにオブジェクト指向が注目されC+

    25年前の未来の言語の話 - Qiita
    gfx
    gfx 2019/12/14
    リフレクションについて。
  • 年末調整の元号表記に振り回された話 - Qiita

    これは SmartHR Advent Calendar 2019 12日目の記事です。 こんにちはりさきゃんです! 令和がはじまってから初めての12月!12月といえば年末調整! SmartHRの年末調整機能を実装するときちょっと困った元号への対応について書きたいと思います。 年末調整の書類 年末調整とは払いすぎた所得税を再計算して精算するための手続きのこと。 年末ごろに以下の書類を記入して会社に提出します。 今年の給与所得者の扶養控除等(異動)申告書(通称・マルフ) 来年の給与所得者の扶養控除等(異動)申告書(通称・マルフ) 給与所得者の配偶者控除等申告書(通称・マルハイ) 給与所得者の保険料控除申告書(通称・マルホ) 給与所得者の(特定増改築等)住宅借入金等特別控除申告書(社内呼称・マルロ) 年末調整の書類は毎年変更がある 実は、年末調整の書類は毎年変わっています。 ( 詳しくはこちらの

    年末調整の元号表記に振り回された話 - Qiita
    gfx
    gfx 2019/12/12
    HRTechの中の人が言うと説得力ある…。
  • Rustスマートポインタ比較表 - Qiita

    以下補足です。 効率 トレードオフを強調するために、相対的な効率を星の個数で表しています。しかし、効率をことさら気にする必要はありません。他の多くのプログラミング言語では、Rustでいうところの Arc<Mutex<T>> をデフォルトで使っているような状況です。要件にあったものを使うことが大事です。 ライフタイム 「短命」とついているものは基的に、ある関数のスコープに紐付いた形でしか使えません。特に慣れないうちは、これらの型を構造体に入れて使うのはやめておいたほうが無難でしょう。 例外として、グローバル変数 (static, lazy_static!) は &'static 参照として扱うことができます 共有 「ポインタ」と聞くと、参照先が共有されている様子を思い浮かべる人が多いと思いますが、所有権の概念のあるRustでは必ずしもそのイメージは当てはまりません。 &mut T と Bo

    Rustスマートポインタ比較表 - Qiita
    gfx
    gfx 2019/12/12
  • Linux on Chromebook のソフトウェア開発者向けカスタマイズ例 - Qiita

    設定は fcitx の後で起動します。入力切り替え設定は「全体の設定」タブの「ホットキー」です。 私は US 配列の Chromebook に合わせて Ctrl + SPACE にしています。スクショに写ってる Hangul は ErgoDox を外付けしたときイケてる設定にできないかなーと試行錯誤してるところです。 エディタ兼軽量 IDE として VSCode 「候補をトリガー」と fep のショートカットをずらす 私は FEP 切り替えを Ctrl + SPACE にしているので、VSCode 標準の候補表示トリガーとブッキングしてしまいます。ショートカットキー変更で候補表示を alt + SPACE にずらしています。 ショートカットキー変更は ctrl + k → ctrl + s です。または ctrl + SHIFT + p でコマンドパレットから open keyboard

    Linux on Chromebook のソフトウェア開発者向けカスタマイズ例 - Qiita
    gfx
    gfx 2019/12/10
  • Emscriptenのstandaloneモードについて - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Emscriptenのstandaloneモードについて - Qiita
    gfx
    gfx 2019/12/06