タグ

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

  • Windowsではページング ファイルのことを「仮想メモリ」と呼ぶ?件 - Qiita

    「仮想メモリ」はページング ファイルじゃない ずーっと昔から気になっていたんですが、世の中でどう思われているのか気になったので書いてみます。 Wikipedia の仮想記憶というエントリからちょっと引用。 「仮想記憶」という用語は「メモリスワッピング」と混同されることが多い。これはWindows系のオペレーティングシステム (OS) がメモリスワッピングの可 / 不可を設定する項目を "virtual memory" と称していることも一因と考えられる。実際、Windowsはその "virtual memory" を不可としても、ページング方式と仮想記憶を使用している[1][2][3]。Windows XP日語版では、"システムのプロパティ"→"詳細設定"→"パフォーマンスオプション"→"仮想メモリ"のことである。 実際、Windows に関して話している中で「仮想メモリ」という単語が出

    Windowsではページング ファイルのことを「仮想メモリ」と呼ぶ?件 - Qiita
    hycon
    hycon 2019/09/13
  • APIとかABIとかシステムコールとか - Qiita

    はじめに 記事はLinux環境における次のようなことをざっくり理解するための記事です。 Application Programming Interface(API)って何? Application Binary Interface(ABI)って何? システムコールとAPIとABIの関係って? それぞれ何がどう違うの? この手の情報はググればwikipediaやらにいろいろ情報が載ってるんですが、初心者が理解するには細かいことまで書かれすぎていて、かつ、それぞれの関係がわかりにくいです。なので、用語を逐一解説するのではなく、ありがちな質問のQAという形をとりました。人によって用語の意味の揺らぎがあったりするんですが、私の解釈ということで。あからさまに間違っていたら指摘していただけると嬉しいです。 これを書こうと思ったきっかけは、以前こんなtweetを見かけたことです。それから「そういえば最

    APIとかABIとかシステムコールとか - Qiita
    hycon
    hycon 2019/09/11
  • Cの可変長引数とABIの奇妙な関係 - Qiita

    printf に関する以下のツイートが流行っていました。 上のツイートでは割とあっさり説明されていますが、amd64 SysV ABIでこの現象が起こる理由にはもっと深遠なものがあると思うので、可変長引数とからめて説明してみたいと思います。 前提条件として「ABI」「可変長引数」「non-prototyped関数」の知識が必要なのでそこから説明します ABIとは ABI (Application Binary Interface) とは、機械語レベルでのインターフェースのことです。 機械語そのもののルールはISA (Instruction Set Architecture) によって規定されていますが、たとえばC言語の「関数呼び出し」などの概念を機械語でどのように表現するかについては規定していません。そのルールを定めたのがABIです。したがって、ISAとABIはおよそ1対多の関係にあります

    Cの可変長引数とABIの奇妙な関係 - Qiita
  • Debian/Ubuntuでカーネルの設定(.config)を変えて再構築(ビルド)する - Qiita

    追記(2021/11/15): clang-13 で Linux 5.15 をコンパイルする話はこちら。最近はclangでできることはgccではなくclangを用いている。カーネルコンパイルではclangを用いるとLTO, CFI, Shadow Stackなどgccでは選べない設定項目が選べる。 追記(2021/07/30): Intel/AMD系なら KCFLAGS=-march=native, それ以外なら KCFLAGS=-mcpu=native を付けるとコンパイルした計算機で動作が速くなる (KCFLAGSの説明)。たとえば make -j 4 KCFLAGS=-march=native bindeb-pkg など 最近の正しい手順はmake bindeb-pkg なのにqiita内の記事にはどこにも書いていない CONFIG_SYSTEM_TRUSTED_KEYS= を空文字

    Debian/Ubuntuでカーネルの設定(.config)を変えて再構築(ビルド)する - Qiita
    hycon
    hycon 2019/08/29
    make-kpkgなくなったんか
  • C で関数に * や & を付けられる件の説明 - Qiita

    規格として C11 (n1570) を参照する。 注意: 途中に入れた図が崩れるようなら、半角・全角比が 1:2 になるようなフォントを使って閲覧してください。 現象 wandbox で実行 ソース: ( &printf)(" &printf = %p\n", &printf); printf (" printf = %p\n", printf); ( *printf)(" *printf = %p\n", *printf); ( **printf)(" **printf = %p\n", **printf); (***printf)("***printf = %p\n", ***printf); この現象を解説する。 関数呼び出し まず、関数呼び出しについての規定を見る。 The expression that denotes the called function shall have

    C で関数に * や & を付けられる件の説明 - Qiita
    hycon
    hycon 2019/08/18
  • 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
    hycon
    hycon 2019/08/17
  • P++: 銀河に平和をもたらすための奇策と決着 - Qiita

    PHP 8から、PHPは「PHP」と「P++」という2つの言語を提供するようになる というキャッチーな紹介をするP++: 静的型付けをめざすPHPという記事がそれなりに話題になり、このニュースは目覚しく革新的な内容で、多くのひとの目を引き付けました。 これは早まった理解であり、ほとんど誤報と言ってもいい内容でした。2019年8月15日には提案者人も、少くとも「P++」の計画を短期的に実現するととは非現実的であり時期尚早であることを認めています。 この記事では、PHP開発の現状、なぜ野心的なP++計画が提案され、事実上撤回されたかの経緯について紹介します。 [中立性のための表示] この記事の著者@tadsanはPHPの静的解析を強く推進する立場です。 PHPゆるふわCI入門 PHP型検査・夢と理想と現実) 三行で要約 PHPはバージョンを経るごとに「歴史的経緯」による負債が削ぎ落されてきた

    P++: 銀河に平和をもたらすための奇策と決着 - Qiita
    hycon
    hycon 2019/08/14
  • JavaScriptの歴史をざっくりまとめたよ! - Qiita

    第一部 JavaScript、その起源 1995年 NetScape社のブレダン・アイク氏が開発 ポケモン赤・緑とタメ 最初はLiveScriptって名前だった 「Javaっていう言語が超ナウいらしいぞ」 1995年にJavaによるブラウザWebRunnerが、HotJavaという名で世界に公開 NetscapeがJavaのサポートを表明 今、Javaが熱い!! 「せや!名前もらったろ!」 改名 LiveScript -> JavaScript 第二部 スクリプト戦国時代 ライセンスの乱 1996年 MicrosoftがIE3.0を発表「JavaScript使わせてやー」 NetScape社「だが断る」 Microsoft「ほな勝手に作るわ」 => JScript誕生 各ブラウザベンダが独自言語を実装する戦国時代へ Webエンジニアは血の涙を流す 想像図 「JavaScriptってどうよ?

    JavaScriptの歴史をざっくりまとめたよ! - Qiita
  • なるべく切れない回線のつくりかた(物理) - Qiita

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

    なるべく切れない回線のつくりかた(物理) - Qiita
  • 我偽中国語翻訳機作成了 - Qiita

    のように、日語の文章から偽中国語を自動生成したい。 偽中国語とは 中国語のようでいて日人でも意味を理解できてしまう漢字の羅列のこと。 通常「私はご飯がべたい」を中国語では 我想吃饭 と書きます。一方で偽中国語は 我飯希望 と「私はご飯をべることを希望する」と読めなくもない表記で記します。 これが偽中国語です。以前からTwitterLINEなど各種SNSで使われてきたユーモアあふれる記法です。 そこで、日語の文字列を与えることで偽中国語に変換してくれる翻訳機を作りました。 サンプル 実行環境 macOS High Sierra 10.13.6 Python 3.5.1 方針 実装方法 偽中国語の慣例上 1 、 - 動詞「○○する」は「○○実行」と変換することが多い - 「明日お酒飲みに行かない?」のような提案する文章の場合、文末に「如何?」を付ける - 「私は◯◯したい」のよう

    我偽中国語翻訳機作成了 - Qiita
    hycon
    hycon 2019/06/25
  • ブラウザはCSSのセレクタを右から読む、ほんまか? - Qiita

    先日、 ブラウザ君「ワイはCSSのセレクタを右から読むんや」 という記事を読みまして、ちょっと気になったので後で確かめようと思っていたのですが、なんとなくそのままになってしまいやや旬を逃した感がありつつ、ツッコミを入れてみようと思います。 なお『ワイ「ほげほげ」』みたいな形式は使いません1。恥ずかしいので。 私は仕事Chromiumのソースコードをよく読んでいるので、ChromiumのソースコードからCSSの処理を見つけて、それを基準にして解説しようと思います2。そのため、他のブラウザのレンダリングエンジンと異なる最適化が施されている可能性があります。また、現在のソースコードがそうでも、将来的に別の方法に変更される可能性もあります。あくまで、ブラウザの処理の一例であることをご了承ください。 ChromiumC++で開発されていて、私もC++畑のですが、今回の記事は随所にリンクを挿入し

    ブラウザはCSSのセレクタを右から読む、ほんまか? - Qiita
    hycon
    hycon 2019/06/15
  • 0.0.0.0にはアクセスしないこと - Qiita

    はじめに この記事は2019年4月時点で調べたものをベースにしています。将来的に変わるかもしれません。 tl;dr 0.0.0.0を宛先に使うのは誤り ただしOSによっては 127.0.0.1 に到達するので支障がなかったりする 想定読者 0.0.0.0と127.0.0.1の違いをすぐに答えられない人が対象です。 ネットワークな人はわかっていることだと思うのでブラウザバックしてもらって構いません。 強い人は間違えているところコメントください。 環境 Ubuntu 16.04を利用します。 $ uname -a Linux parallels-vm 4.10.0-28-generic #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 簡単な例 Webの文脈ではWebサーバのQu

    0.0.0.0にはアクセスしないこと - Qiita
  • 【Python】コラ用に遊戯王カード名の組み合わせを自動検索するためのツールを作成しました【ソース公開】 - Qiita

    追記 コードを綺麗に書き直したものをGitHubで公開しました。すぐ試せるように単語リスト付き。 概要 いつ頃からか、次のような画像コラがTwitterで流行りだしました。 pic.twitter.com/vhA4S5bXD0 — りめん⎷aおかもと (@wixossccc) May 26, 2019 見ての通り遊戯王のカードを貼り合わせて任意の文字列を生成しています。 というわけで、どのカードを貼り合わせればいいかを自動生成するコードを考えてみました。 データ収集方法 まず、遊戯王のカード名一覧のデータセットを見つけてくる必要があります。 しかし、遊戯王カードWikiや公式データベースなどを見る限り、「カードパックごとの一覧」はあっても「全カード一覧」はなかなか見つかりません(全カードの枚数から考えると当然ではあるが)。 そのため、頑張ってコピペするか、スクレイピングするコードを書くなど

    【Python】コラ用に遊戯王カード名の組み合わせを自動検索するためのツールを作成しました【ソース公開】 - Qiita
    hycon
    hycon 2019/05/31
  • 「サイゼリヤで1000円あれば最大何kcal摂れるのか」を量子アニーリング計算(Wildqat)で解いてみた。 - Qiita

    サイゼリヤで1000円あれば最大何kcal摂れるのか」を量子アニーリング計算(Wildqat)で解いてみた。量子コンピュータナップザック問題量子アニーリングqubowildqat こんにちは!初投稿です! この記事が誰かに何かでためになれば幸いです! 背景 僕は先日、この記事↓↓を読んでふと思いました。 サイゼリヤ1000円ガチャをつくってみた(Heroku + Flask + LINEbot) 「サイゼリヤで1000円あったら最大で何kcal取ることができるんだろう?」と。 最近、最適化計算を得意とする量子アニーリングの勉強を始めたこともあって、ナップザック問題をそのまま使えば、計算できるんじゃないか?と思い、早速実験してみました。 ナップザック問題とは ナップザック問題とは重量制限のあるリュックに、値段と重さが定義されたアイテムを詰め込むとき、値段を最大化させるアイテムの組み合わせは

    「サイゼリヤで1000円あれば最大何kcal摂れるのか」を量子アニーリング計算(Wildqat)で解いてみた。 - Qiita
    hycon
    hycon 2019/05/16
  • 岡田を切る技術 - Qiita

    これはとある回顧録 何度も諦めかけましたが、数年の歳月を経て遂に岡田を切る技術が一旦の完成へと至りました。その技術を巡る奮闘の歴史と成果について、ここに記録を残していきたいと思います。 画像時代 まずは「切る」という動作が何を指すかを明確にしておきます。 厳密な定義というよりは、切った感を得るために必要そうなふるまいとして定義します。 平面上のある領域が、任意の直線を境界として分割されること 分割された領域は物理法則に準じてふるまうこと 要するに気持ちよく岡田を切ることができれば目標は無事達成です。 物理エンジン 切った感を高めるためにはやはり「物理法則」に準じたふるまいが欲しくなります。つまりブラウザ上で動く物理エンジンが必要です。 世の中にはフルスクラッチで物理エンジンを作れる人間と作れない人間が居ると思われますが、残念ながら私は後者でした。勝ち目の薄い勝負は避け、素直に巨人の方にすが

    岡田を切る技術 - Qiita
    hycon
    hycon 2019/05/06
  • ブラウザレンダリング入門〜知ることで見える世界〜 - Qiita

    はじめに 『レンダリングの仕組みなんて知らなくても、ブラウザが勝手にやってくれるじゃん!』 当時駆け出しのエンジニアだった私はそう思っていました。 実際、当時の私はレンダリングの『レ』の字も知りませんでしたが、特に業務上で問題はありませんでした。 しかし、その時は突然訪れました。 クライアントの要望でアニメーションを多彩に取り入れた案件を実装した際に、テスト段階で一部ブラウザ(S○f○ri、E○ge)でアニメーションがひどい状況になっていることが発覚しました。 (開発中はChromeで確認を行っており、Chromeでは特に問題はなかったので発覚が遅れました。) それからは、狂ったようにパフォーマンスの改善方法をググり、修正する日々が続きました。(最終的には、なんとかマルチブラウザでの動作も担保し、納品まで完了しました。) その案件が落ち着いた後、改めて自分の調べたことを振り返ると、局所的な

    ブラウザレンダリング入門〜知ることで見える世界〜 - Qiita
    hycon
    hycon 2019/04/28
  • 世の中のエンジニアの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
    hycon
    hycon 2019/04/10
  • 【結果】平成の次の元号を、AIだけで決めさせる物語(@完結編) - Qiita

    表の見方 総合評価値 = AI評価値×10 - 俗用度 AI評価値 = 文字の良さ+距離感の良さ、を基準に複雑な計算 俗用度 = Google検索結果より求めた俗用度 出典 日:日書紀、古事記、万葉集 中:四書五経(大学,中庸,論語,孟子,易経,書経,詩経,礼記,春秋)、史記 落:過去の落選元号 ※詳細は過去記事をご参照 裏話として、個人的には「常用」は最初から除外しようと思っていたが、 「常用」を入れないと同じような文字の組み合わせが増えてしまい、 テレビ的に「見栄え」が悪いので、 「常用」については個数を限定して、 上位のものだけ最終候補として入れることになった。 「常用」が無いとも言い切れなかったため。 出典としてどの文章を使うか? 常用を入れる入れない、画数はいくつ以下?などの 「設定値」はどうしても決めざるを得ない。 ただ、その状態においては、どの漢字/候補も平等に扱っている。

    【結果】平成の次の元号を、AIだけで決めさせる物語(@完結編) - Qiita
    hycon
    hycon 2019/04/09
  • UTF-8のコードポイントはどうやって高速に数えるか - Qiita

    UTF-8文字列からコードポイント数を計算するアルゴリズムについて紹介します。コードポイント数カウントは、シンプルに書くのはそれほど難しくないものの、高効率な実装は意外にややこしいです。 内容は二立てです。 実践的な実装について、Ruby(CRuby)の内部実装(string.c)で使われているものを紹介します。 標準Cの範囲を超えて、SIMD命令(AVX/AVX2)を使った実装についても述べます 軽く検索する限りだと既知のアルゴリズムが見当たらなかったので、アドホックな実装をひねり出しましたが、そんなに効率は悪くなさそうです おまけで簡単な性能評価をやってみました。 なお、UTF-8文字列はバリデーション済み(不正なシーケンスでないことが分かっている)であるとします。 Rubyの内部実装だとどうやっているか まずは、それがコードポイントの先頭バイト(leading byte)かを判定す

    UTF-8のコードポイントはどうやって高速に数えるか - Qiita
    hycon
    hycon 2019/04/07
  • 誰でもプログラムを書けるようになる方法が発見される!なんだこれは? - Qiita

    プログラムを書けるようになる方法を見つけた!なんだこれは? 眼鏡のフレーム端を耳の横に掛けたらなぜか書けるようになった。なんだこれは? このやり方をやれば誰でもプログラムが書けるようになると思います。頭も良くなった!と思う プログラムを挫折した経験がある方一度お試しあれ! このように耳の横にフレーム端を掛けてやる 自己責任で メガネのフレームを少し曲げる必要があります。破損しても自己責任で 個人差があると思います。人によってできない人もいると思います。 以上自己責任で試してみてください。 用意するもの 必須 メガネ (耳の横にかけれるもの フレームの横幅が広いものがいいです) 紫外線防止コーティング (眼鏡屋さんで3千円くらいでやってもらえます) お好み 片方は非球体の方がいい (目が疲れない) 黒縁じゃないほうがいい。(縁が太いと視野が狭くなる) やり方 フレームの端を耳の横に掛ける 目

    誰でもプログラムを書けるようになる方法が発見される!なんだこれは? - Qiita