mod_poppoのブックマーク (15)

  • Python 3.11の新機能(その3)関数呼び出しのインライン化 - python.jp

    Python 3.11では、パフォーマンスチューニングの一環として、Python関数呼び出しのインライン化 が行われました。既存のPythonインタープリタのしくみを大きく変更する変更ですので、簡単に解説しておきます。 先に書いておきますが、今回行われた「関数呼び出しのインライン化」は、C/C++などの inline のように、ユーザ定義関数を呼び出し元で展開してオーバヘッドを削減するものではありません。また、Schemeなどにある末尾再帰の最適化でもありません。 cevalループ¶Pythonインタープリタは、Python 3.11の新機能(その2) 特殊化適応的インタープリタ で解説したように、Pythonのソースコードをバイトコードへ変換し、順次実行します。このバイトコードを実行する関数はPythonインタープリタの心臓部であり、CPythonソースツリーのファイル Python/c

    mod_poppo
    mod_poppo 2022/09/06
    VMの関数呼び出しでCスタックを使わないようにするのは「インライン化」ではなく「スタックレス化」なのでは
  • 軽率にGPUを使っていこう、OpenCL入門 - VVVVVVVVVVVVLSI

    はい、Cra2yPierr0tです。GPUを作る前に市販のGPUを触ってみるか、どうやらOpenCLってやつが標準化されてて良さそうだぞ。という動機でOpenCLを書き始めたら思いのほか辛かったし納得のいく入門記事が無かったので備忘録がてらOpenCL入門をここに置いときます。 目次 OpenCLとは OpenCLの思想 OpenCLの計算機システム ホストとカーネル OpenCLの次元 OpenCLホストプログラミング入門 概要 1. デバイス, コンテキスト, コマンドキューを定義する 2. カーネルをビルドする 3. デバイスメモリを確保する 4. カーネルの引数を設定する 5. キューにメモリとカーネルを転送する ベクトル加算のホストプログラム OpenCLカーネルプログラミング入門 OpenCLカーネルにおけるC言語 OpenCLカーネルのC言語における制約 OpenCLのメモリ

    軽率にGPUを使っていこう、OpenCL入門 - VVVVVVVVVVVVLSI
    mod_poppo
    mod_poppo 2022/06/24
  • パイプライン演算子の歴史 - まめめも

    (You can read this article in English.) Ruby の開発版にパイプライン演算子(pipeline operator)が試験的に導入されましたが、いろいろあってプチ炎上になっています(チケット)。 せっかくの機会なので、パイプライン演算子の歴史を調べてみました。付け焼き刃の調査なので、間違ってたら教えてください。 パイプライン演算子とは こんな感じのものです。 x |> f |> g |> h # h(g(f(x))) と同じ意味 h(g(f(x))) という関数適用の式は、関数が呼ばれる順序(f→g→h)と、プログラムの字面上の順序(h→g→f)が逆でわかりにくいとされます。この問題は、特に、関数が大きくなったときに顕著になります。 wonderful_process_h( marvelous_process_g( fantastic_process

    パイプライン演算子の歴史 - まめめも
    mod_poppo
    mod_poppo 2019/06/15
    メソッドチェーンがすでに一般的な言語にパイプライン演算子を入れようという動きとしては、ECMAScriptに対する提案がありますね https://github.com/tc39/proposal-pipeline-operator
  • 勤労統計問題は根深い問題である - まなめはうす

    アゴラ(池田信夫氏)のキャッチーな取り上げ方に騙されてはいけない。 agora-web.jp アゴラ:COBOLが原因 事実:開発で使われている言語を扱える者が少なかったことが原因(JavaでもPythonでも使える人が少なければ起きる) アゴラ:COBOLで書かれた特殊なプログラムなので高齢者しか読めず、そのミスがチェックできない 事実:COBOLで有名といえば「株式会社COBOL」だけれど、サイト見たとおりに若い女性が多数いる。私もちょっとだけ読めるけれど、COBOLなんて制御簡単で業務を記載する言語だろうから他の言語読めればほとんど読めると思う。 そんな感じでCOBOLTwitterでバズっているけれど、当の原因は何なのか。厚労省の報告書からプログラムのバグに関するところを読んでみた。 変更管理がされていない 抽出替え等によりシステム改修の必要性が生じた場合には、企画担当係とシス

    勤労統計問題は根深い問題である - まなめはうす
    mod_poppo
    mod_poppo 2019/01/24
  • 文系でプログラマーになったけど色々失敗して3年半で会社を辞めた話|denkigai

    2018年12月31日、新卒入社して3年半勤めた会社を辞めた。東京の八重洲にある、フリーペーパーやWebサービスを作る会社で働いていた。いわゆる「文系プログラマー」というやつで、文系学部を卒業後、会社に入ってからプログラミングを覚えた。現在は退職してフリーランスになり、個人で開発しつつ、ずっと漫画を描いている。 3年半のあいだ、大きく分けて2つの失敗をした。 1. プログラミング入門の仕方に失敗した 2. プログラミングを覚えてから何をすればいいかわからなかった 前者の失敗の結果、プログラミングを投げ出して京都に逃亡した。後者の失敗では精神を病み、3ヶ月休職をすることになった。前者は笑い話だが、後者は人生に暗い影しか落とさない。これからプログラミングを始めようと考えている人には同じような失敗を避けてほしい。そういう願いも込めてこの文章を書いている。 ※「文系プログラマー」という表現は適切で

    文系でプログラマーになったけど色々失敗して3年半で会社を辞めた話|denkigai
    mod_poppo
    mod_poppo 2019/01/21
    読み応えある
  • #技術書典 でチャレンジしたこと・うれしかったこと - 圧倒亭グランパのブログ

    おつかれさまでしたー!めちゃくちゃ楽しかったですね! #技術書典 撤収完了しました😆一般参加、サークル参加のみなさまご来場ありがとうごさいました🎉🎉🎉また来年、春の技術書典6でお会いしましょう🙏 pic.twitter.com/CPXL5UuY06— mhidakaあ11@技術書典5 (@mhidaka) October 8, 2018 次回に向けてのメモと感想を書いていきます。ブログを書くまでが技術書典。 まとめたスライド うれしかったこと 「何事も早めに」 締切駆動開発 Re:VIEW+CSS組版 ワンオペ 印刷部数 被チェック数の意味とは 当日までの準備や運用 初参加80部完売現象 みなさんとお会いできる まだまだ続く技術書典 まとめたスライド 技術書典5のあとに行われた「非公式アフター」でLTしました。そこでの資料になります。 techbook-and-ethanol.c

    #技術書典 でチャレンジしたこと・うれしかったこと - 圧倒亭グランパのブログ
    mod_poppo
    mod_poppo 2018/10/09
    “初参加80部完売現象” “ 「初参加の方は80部を刷る、そして2時間以内に完売」という現象 ” なるほど
  • 初めてLaTeXで技術書を書いて売るまでにやったこと - 3DプリンタとITとプリキュアのブログ

    先日、コミックマーケット94で「Dockerではじめるゲームボーイアドバンス開発」という技術書を頒布しました。 booth.pm BOOTHでモノクロ紙書籍+カラーPDFが購入できます。在庫余ってるのでみんな買ってください() 初めて技術書を書いたので、それまでに色々やったこととか困ったことについての話。 技術書を書いた経緯 技術書執筆の大まかな流れ LaTeX周りで使ったものとか 新しいパッケージのインストール 使ったパッケージ プリアンブルの細かい話 LaTeXの執筆環境 latexmk + Skim Gitとの連携 技術書を書いてみて良かったこと悪かったこと メリット デメリット 書いてから分かったこと 印刷について 売り上げについて 最後に 技術書を書いた経緯 僕が所属しているサークルで去年の冬コミ(C93)でHoloLensを出していて、僕もそういうやつやりたいなぁって思って

    初めてLaTeXで技術書を書いて売るまでにやったこと - 3DプリンタとITとプリキュアのブログ
    mod_poppo
    mod_poppo 2018/08/26
    “僕は章ごとにbranchを切って、書き上げた章からdevelopにmergeしていく感じにしました。”でかいLaTeX文書の執筆、その手があったか
  • 新しいプログラミング言語を学ぶということ

    去年の暮から一ヶ月ほど、Haskellを学んでいる。目的は色々あるが、まったく新しいプログラミング言語を学ぶ経験をもう一度するのが最大の目的だ。 C++17の新機能を余すところなく解説した「江添亮の詳説C++17」は3月に出版される。C++20にはまだ間がある。C++の入門書を書く絶好の機会だ。入門書というのは毎月腐るほど出版されているが、良書は少ない。結局、参考書の中で最も売れ行きが容易に予想可能なのは、最も読み手がいるであろう入門者向けのであり、入門書の出版がいたずらに増え、粗製濫造されているとみえる。入門書は上級者は読まないので適切な批判もされにくいのでこのような惨状になっているのだろう。 私の入門書はそのような悪書にしたくない。しかし、私はすでにC++の初心者ではないし、C++の初心者がつまづく点がわからない。というより、ここしばらくまったく新しいプログラミング言語を学んだことは

    mod_poppo
    mod_poppo 2018/02/10
    “管理できないからどうするか? とりあえずプロジェクトごとに特定のディレクトリ下に全部環境を構築しよう。”というのはcabal sandbox時代の発想で、stackはその点では改善されてる
  • F4, F5 アルゴリズムに関するサーベイ(A survey on F_4 and F_5 algorithms) - konn-san.com

    konn-san.com 建設予定地 数学関係をまとめておくばしょ F4, F5 アルゴリズムに関するサーベイ(A survey on F_4 and F_5 algorithms) Plan Because the original paper includes many errors and lacks strictness, read Steger’s thesis instead first. Then read F5C paper to improve it. Read the paper on termination and apply its argument to F5C. Current progress Reading Steger’s thesis. (2014/04/29) Implementing F_5, but is not yet working corre

    F4, F5 アルゴリズムに関するサーベイ(A survey on F_4 and F_5 algorithms) - konn-san.com
    mod_poppo
    mod_poppo 2018/02/09
  • 週刊 代数的実数を作る

    トゥート Feed このページについて これは、筆者 (@mod_poppo) が代数的実数をプログラミング言語上で実装する過程を、一連の記事として連載するものである。#16 までは「週刊」ということで定期的な連載を目指していたが、それ以降は不定期連載となる。 書籍化 2018年10月8日の「技術書典5」にこの連載を書籍化したものを出しました(加筆訂正あり)。詳しくは 技術書典5に代数的数を作るを出します を参照してください。 BOOTHでPDF版を購入・ダウンロードできます(1000円)。詳しくは以下のリンク先を参照: 「代数的数を作る 多項式の根と因数分解のアルゴリズム」 目次 #0 イントロダクション (2017年10月14日) 計算可能実数 #1 一変数多項式環 (2017年10月14日) 一変数多項式環, ホーナー法, ユークリッドの互除法, 係数膨張 #2 実根の数え上げ (

    mod_poppo
    mod_poppo 2018/02/09
  • こんさんドットコムを TLS (HTTPS) に乗り換えた話 - konn-san.com

    HTTPS に乗り換えた URLバーを見てもらえれば判ると思いますが、日を以て konn-san.com コンテンツを全て HTTPS (TLS)ベースにスイッチしました。 これはまあ現実逃避 Chrome が HTTPS 以外は野蛮で危険なウェッブだと宣言するようになったという話が入ってきていたので、証明書は既にLet’s Encryptで遥か前に取ってあったしこれを機に乗り換えるかー、と決心した次第です。 Nginxの設定書き換え でまあ僕のサーバは今はリバースプロキシやWebSocketsとかの対応状況を鑑みて Nginx を使ってるんですが、ウェッブの波に乗った結果ほんの数行設定ファイルを書き換えれば良いということがわかり、これは滞りなく済んだ。 もともとは、 server { server_name konn-san.com; listen 80; root /path/to/

    mod_poppo
    mod_poppo 2018/02/09
    はてブ数のところが力技だ
  • TypeScript、お前もか: nullやundefinedの扱いがイイカゲン過ぎ【事実誤認あり】 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    TypeScriptには期待してたんだけど、ガッカリだよ。 それでもまー、割と好きだけど。 *1 [追記]各所でご指摘いただきました(ありがとうございます)ように、コンパイル・オプション付きなら、シングルトン型のセマンティクスになります。この記事はほぼ言いがかりでした。事実誤認した経緯と、内容的修正を「TypeScript、僕が悪かった、ゴメン: nullやundefinedの扱いはマトモだった」に書きました。 この記事の文自体はそのままにします。事実誤認も含めて記録が残ってもいいかな、と思うので。ただし、この記事だけを読む人が同じ誤認をしないように、何箇所かに修正記事へのリンクは入れます。[/追記] 内容: 特殊な型や値の扱い方はイイカゲンになりがち 特殊な型とは TypeScriptの基型にnullは入らないと信じていた どんな伝統なんだよ TypeScriptにシングルトン型はな

    TypeScript、お前もか: nullやundefinedの扱いがイイカゲン過ぎ【事実誤認あり】 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    mod_poppo
    mod_poppo 2018/01/12
    Standard MLやHaskellにはサブタイピングはないわけだから、例外の型がnever型でないことを以ってStandard MLを「オカシイ」と言われても…。
  • Type-level TypeScript - ryota-ka's blog

    この記事は以下のページに移転しました. blog.ryota-ka.me この記事は CAMPHOR- Advent Calendar 2017 の21日目の記事です. @ryota-ka です.普段は HERP という会社でリードエンジニアとして働いています.一昨日19日にサービスのティザーサイトを公開したばかりなので見てください. herp.cloud さて,12月といえば,万人受けしなさそうなネタでブログを書いては「はてブが付かねえ」と文句を言う季節ですが,今年もそういう方針で,TypeScript での型レベル計算について書きます.型レベルでの自然数などが定義できると,リストに型レベルで長さを付けることができて,空リストの先頭の要素を取ろうとしてランタイムで落ちる,という悲劇が生じる可能性をコンパイル時に排除できてとても嬉しいですね. なお,使用している TypeScript のバ

    Type-level TypeScript - ryota-ka's blog
    mod_poppo
    mod_poppo 2017/12/21
    TypeScriptのバージョンによって型レベル計算の挙動が違うの、自分もハマったなあ(解決せず)
  • トポロジーへの招待 〜 2. 切り貼りで作る色々な曲面 - 34歳からの数学博士

    この記事は 数学とコンピュータⅡ Advent Calendar 18日目の記事です。 こんにちは、佐野です。前回の記事をたくさんの方に読んで頂けたようで嬉しいです。元々は 3 回で書き切るつもりでいたのですが、詰め込み過ぎてもよくないしちゃんと書きたい話はもっとあるので Advent Calendar 期間が過ぎてもシリーズを続けることにしました👍 座標も補助線も使わない「やわらかい幾何学」 切り貼りで作る色々な曲面 ← ... 前回の復習 トポロジーは同相写像で移り合う図形を「同じ」と見なし、その同一視の下で変わらない図形の性質(位相不変量)を調べる分野でした。位相不変量の例として、多面体の頂点・辺・面の個数から決まるオイラー数を紹介しました。 今回は球面やトーラスなどの身近な曲面から、日常では決して見ることのない不思議な曲面まで色々と観察し、それらを区別するにはどうすればいいか考え

    トポロジーへの招待 〜 2. 切り貼りで作る色々な曲面 - 34歳からの数学博士
    mod_poppo
    mod_poppo 2017/12/18
  • OCaml でも採用されているレベルベースの多相型型推論とは - はやくプログラムになりたい

    言語実装 Advent Calendar 2017 の16日目の記事です. GoCaml という OCaml のサブセットな言語を実装していて,多相型の型推論を実装するために論文を読んだり OCaml の実装をちょっと追ったりしていたので,その知識を整理する意味でこのエントリを書いています. この記事では OCaml の型推論器のベースになっている「レベルベースの多相型型推論アルゴリズム」について概略を直感的に説明しようと思います. 理論的になぜこのアルゴリズムで正しく動作するのかについてはこの記事で概要を把握した上で論文 のほうを読んでいただければ理解が速いと思います. また,この記事では最もシンプルな単相型のHM型推論については知っている前提で書きます. ご存知でない場合は, 住井先生の MinCaml の型推論実装の解説 五十嵐先生の型推論の解説 20日目の@uint256_t さん

    OCaml でも採用されているレベルベースの多相型型推論とは - はやくプログラムになりたい
    mod_poppo
    mod_poppo 2017/12/16
  • 1