タグ

関連タグで絞り込む (263)

タグの絞り込みを解除

programmingに関するkirakkingのブックマーク (356)

  • TeX言語でレイトレーシングを実装する話 - hak7a3が書き残す何か

    この記事はTeX & LaTeX Advent Calendar 2019の14日目の記事です。 13日目はmattskalaさんでした。15日目はaminophenさんです。 TL; DR TeX言語を使って,こんな画像を生成する話. レイトレーシング結果 はじめに 周知のとおり,TeX言語はチューリング完全なプログラミング言語である.すなわち,世界にある任意のプログラムはTeX言語で記述可能である.あの文法と評価規則からは直観的ではないが,CGのレンダリングも科学技術計算もその気になればTeX言語で記述できる. 今回は,久しぶりのTeX芸人活動ということで,TeX言語でレイトレーシングしてみた. レイトレーシングとは レイトレーシングとは,画素ごとにカメラに入ってくる光線を逆方向に追跡してCGのレンダリングをする技法である.光線の追跡では,経路上の物体に対する反射・屈折を考慮する.

    TeX言語でレイトレーシングを実装する話 - hak7a3が書き残す何か
  • スーパーマリオのジャンプのアルゴリズム - Qiita

    先日、気持ちのいいジャンプを目指してというQiitaの記事を見かけました。記事中では、マリオのジャンプについても触れられています。マリオというと、マリオブラザースやスーパーマリオブラザース等々、色々あるのですが、これはおそらくスーパーマリオブラザースの事だと思われます。ジャンプアクションゲームといったらスーマリですね。 そのマリオのジャンプの仕組みは「マリオの速度ベクトルを保存しておいて座標を計算するんじゃなくて~」と書かれていて、別サイトのブログへのリンクが張られています。 マリオのジャンプ実装法とVerlet積分 ただ、この記述については不正確であるという別のブログもあったりします。 マリオの完コピvol.28 ジャンプの解析と修正 ホントのところはどうなんでしょうか?世界で最も有名なゲームジャンプがどのように処理されているのか気になったので調べてみることにしました。 原典にあたる

    スーパーマリオのジャンプのアルゴリズム - Qiita
  • IsabelleによるCBC CasperのSafetyの証明をしました

    日記です。 リポジトリ: LayerXcom/cbc-casper-proof 概要 (私は LayerX の人ではないですが)LayerX 社の人と色々あって CBC Casper というブロックチェーンのプロトコルの検証作業を行いました。(主に定理証明士としてのお手伝い) 半年くらいかかったけどやりたかった証明についにたどり着いたよという話。 CBC Casper って何 わからん。(無知) 何かブロックチェーンのプロトコルの名前らしい。Ethereum 財団が目をつけてるらしい。いわゆるビットコインとは違ってブロックを頑張ってマシンをぶん回してマイニングしたりしないらしい(ビットコインは PoW で CBC Casper は PoS)。 詳しいことは詳しい人に聞いたほうがいいよ(真理)。 cf: CBC Casper と形式的検証 Isabelle で検証って何するの ブロックチェー

  • たのしく学ぶLinuxカーネル開発(第一回): `rm -rf /`実行時にカーネルパニックさせる - Qiita

    はじめに Linuxカーネル開発を学ぶためにhello worldモジュールからはじめて少しづつ強化する記事を過去にいくつか書きました。これはちゃんとやれば身に付くことは身に付くのですが、非常に地味なので、よほどカーネルに興味を持っている人以外には退屈でしょう。そこで、目的をもって特定の機能をカーネルならではの方法で実現する記事を書けば面白いのでは…となったのでここに初回を書くことにしました。 対象読者はCライクなプログラミング言語での開発経験がある人です。Cのポインタがわかればなおよし。もしできればOSカーネルについての基的な知識も欲しいです。 背景 UNIXが誕生してから現在に至るまでrm -rf /によって全ファイルをぶっ飛ばす事件が後をたちません。GNUのcoreutilsに入っているrmではルートディレクトリ("/")への操作を特別扱いして容易に悲劇を起こさなくするpreser

    たのしく学ぶLinuxカーネル開発(第一回): `rm -rf /`実行時にカーネルパニックさせる - Qiita
  • 自然の緑でクロマキー合成をする

    1992年三重生まれ、会社員。ゆるくまじめに過ごしています。ものすごく暇なときにへんな曲とへんなゲームを作ります。 前の記事:VR体験をしている人とゴーグルをかぶっているだけの人を見分けられるか > 個人サイト ほりげー クロマキー合成とは クロマキー合成について簡単に説明すると、緑色の布の前に立って撮影し、緑色の部分だけをコンピュータで抽出し、画像をはめ込むというものである。テレビ映画の撮影で合成を行う時に使われる。プリクラ機でも使われている。 まず、グリーンバックで撮影する。(画像はイメージです。) そして、緑の部分に別の画像をはめ込む。これにより、いつでも南の島に行くことができる。 数年前、ウェザーニュースにゲスト出演したガチャピンがクロマキー合成のせいで透明になってしまい、ネットで話題となった。実際に背景かどうかに関係なく、緑色のものを切り抜いて合成してしまうため、このようなこと

    自然の緑でクロマキー合成をする
    kirakking
    kirakking 2019/09/08
    MR感あって大変良い。
  • Haskell 解説本 小史 - golden-luckyの日記

    語圏におけるHaskellの解説には、これまで4回の波がありました。 それを思い出しながら、最後に『プログラミングHaskell 第2版』の紹介をします。 第1波 第2波 第3波 第4波 『プログラミングHaskell』が改訂されます 第2版ではプログラミングにおける型の理解が深まると思う ここで買えます 第1波 Haskell解説の1つめの波は、2006年、『入門Haskell』と『ふつうのHaskell』が出版された頃にありました。 このうち、『入門Haskell』は(おそらく)日初のHaskellです。 『入門Haskell』(2006年) 『ふつうのHaskell』(2006年) 『ふつうのHaskell』は、書名だけを見ると「特殊な言語」であるHaskellを「ふつう」に説明しているであるように思えるのですが、実はそうでもなくて、淡々と部品の説明をしていく感じの内容

    Haskell 解説本 小史 - golden-luckyの日記
    kirakking
    kirakking 2019/08/03
    名著「プログラミングHaskell」が改訂されたんだ。買う。練習問題が大学の講義レベルなので、Haskellによる関数型プログラミング入門として最適な本だと思う。。
  • 『微分可能プログラミング』はどこから来たのか - bonotakeの日記

    はじめに(8/3追記) この記事を一旦書いたあと、重要な追加証言が得られたため、追記修正しています。結論もやや変わっていますが、現時点のほうがより正確です。 編:ここから ディープラーニングが現在これだけ流行っている1つの要因は、TensorFlowやPyTorchなどのフレームワークが非常に便利だからです。ニューラルネットワークの設計、訓練、そして分類などの推論がフレームワークを使えばとても簡単に行なえます。 普通に使っている人達は、これらのフレームワークを『ツール』あるいは『ライブラリ』だとみなしていると思います。でも実際のところ、これらはプログラミング言語です。より正確に言えば、すべてのディープラーニングフレームワークはディープラーニング計算用DSL(Domain-Specific Language、ドメイン特化言語)と見なせます。このDSLは大抵、Pythonなど他の汎用言語への

    『微分可能プログラミング』はどこから来たのか - bonotakeの日記
  • Vue.jsでアホなジェネレーターを作る勉強会をやると予想以上にガチになる

    デイリーポータルZが「Vue.js勉強会」というWeb開発系のイベントを開催した。サイトを知っている人なら「え?あのデイリーが?なんでそんな真面目なイベントを?」と驚くかもしれない。 急に真面目なことをやりだすと、ヤンキー母校に帰る的な心変わりでもあったのかと心配になる。 僕自身がWeb開発の仕事をしているため「ふざけたサイトがやる勉強会なんて…」と最初は不安に思っていた。しかし、蓋を開けてみればエンジニア業務を擬似体験できるくらい内容のしっかりした勉強会だった。 大学中退→ニート→ママチャリ日一周→webプログラマという経歴で、趣味でブログをやっていたら「おもしろ記事大賞」で賞をいただき、デイリーポータルZで記事を書かせてもらえるようになりました。嫌いなべ物はプラスチック。(動画インタビュー) 前の記事:ドラクエに出てくる「やくそう」は現実だとどう使うのか専門家に聞く > 個人サイト

    Vue.jsでアホなジェネレーターを作る勉強会をやると予想以上にガチになる
  • パイプライン演算子の歴史 - まめめも

    (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

    パイプライン演算子の歴史 - まめめも
    kirakking
    kirakking 2019/06/16
    OCamlで使っているけどこんな経緯だったのか。そもそも高階関数の概念が無いと上手く式としてハンドリングできないと思う。
  • Haskellで解くAtCoder

    最近HaskellでAtCoderの問題を解いたりしているのでごく基的な知見をまとめておく。 テクニック集 多くは割と色んな人がすでに言っていることではある。また、想定解法を正しく実装すれば以下のようなことを守らなくても時間内に収まるだろうが、GHCは最適化が効かなければ10倍遅くなる言語であるので普段から守っておくに越したことはないと思う。 環境: AtCoderのGHCは2019.04現在7.10なので注意が必要。そのうち上がるかもしれないけど。 Strict拡張がない BangPatterns拡張はある 環境構築がhaskell-platformらしいのでそれに入ってるライブラリしか使えない 文字列 基はData.ByteString.Chan8 Stringは死んでも使わない(遅いので) Unicode文字列の扱いが必要(今の所みたことないけど)とかならtextを使うといいかも

  • yamayaさんの難読化シェル芸(フィボナッチ数列) 解説

    yamaya_fib.md yamayaさんの難読化シェル芸(フィボナッチ数列) 解説 経緯 (1) ある日、yamaya さんという怖い方がこのツイートを投稿する。 (2) シェル芸bot上で実行されたこのシェル芸は、結果として下記のようにフィボナッチ数列を出す。 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 433494437 701408733 11349031

    yamayaさんの難読化シェル芸(フィボナッチ数列) 解説
  • 再帰関数を学ぶと、どんな世界が広がるか - Qiita

    0. はじめに 再帰関数は初めて学ぶときに壁になりがちで なんとなくわかった...けれど どんな場面で使えるのだろう...いい感じの例を探したい! という気持ちになりがちです。再帰関数は、なかなかその動きを直感的に想像することが難しいため、掴み所が無いと感じてしまいそうです。 そこで記事では 再帰関数の動きを追いまくることで、再帰関数自体に慣れる 再帰的なアルゴリズムの実例に多数触れることで、世界を大きく広げる! ことを目標とします。特に「再帰関数がどういうものかはわかったけど、使いどころがわからない」という方のモヤモヤ感を少しでも晴らすことができたら嬉しいです。なお記事では、ソースコード例に用いるプログラミング言語として C++ を用いておりますが、基的にはプログラミング言語に依存しない部分についての解説を行っています。 追記 1. 再帰関数とは 再帰の意味はとても広いです。自分自

    再帰関数を学ぶと、どんな世界が広がるか - Qiita
    kirakking
    kirakking 2019/04/05
    ベースケースって言葉は(数学的)帰納法周りで使います。再帰関数は帰納的定義なのでそこまで不自然ではないかと > https://en.wikipedia.org/wiki/Mathematical_induction
  • 新元号 データ管理「和暦」使う企業 システム改修急ぐ | NHKニュース

    新しい元号の発表を受けて、データなどを管理するシステムに「和暦」を使っている企業では、改修作業が急ピッチで進められています。 これまで社名からとった仮の元号、「安明」を使ってプログラムのテストを行うなど準備を進めてきましたが、1日は午前11時過ぎから担当の社員らが集まって政府の発表をインターネットで確認しました。 その後すぐにプログラムの中で仮の元号「安明」を新しい元号「令和」に、ローマ字表記の頭文字、「A」を「R」に置き換える作業を行いました。 この会社では顧客に通知する文書やはがきなどに和暦を使っているというこで、今後は、来月1日以降の日付を入力した際に和暦が「令和」と表示されるか最終確認のテストを行う予定です。 明治安田生命情報システム部の打木靖人グループマネジャーは「いよいよ新しい元号が決まり、広範囲でチェックを重ねて行っていく。気が引き締まる思いです」と話していました。 改元に伴

    新元号 データ管理「和暦」使う企業 システム改修急ぐ | NHKニュース
  • 上達したいVim初心者のための設定・プラグインの見つけ方、学び方〈エディタ実践入門〉 - エンジニアHub|Webエンジニアのキャリアを考える!

    上達したいVim初心者のための設定・プラグインの見つけ方、学び方〈エディタ実践入門〉 Vimの深淵はとても深く、学ぶことは簡単ではありません。記事では、初心者がVimをどのように学べばよいか? を解説しています。Shougoさんの寄稿です。 こんにちは。Shougo(@ShougoMatsu)です。今回は、Vim初心者のための記事を執筆することになりました。よろしくお願いします。 私のことを知らない人のために簡単に自己紹介しておきます。私はこれまで10年以上もの間Vimに関わっており、deoplete、dein、denite、defx、neosnippetといった各種プラグインを作成したり、ときにはVim体にパッチを書くなどといった活動を行っています。 今回、初心者向けの記事を執筆することに決めたのは、勉強会などで「Vimをどのように学べばよいか?」について質問されることが多く、皆が同

    上達したいVim初心者のための設定・プラグインの見つけ方、学び方〈エディタ実践入門〉 - エンジニアHub|Webエンジニアのキャリアを考える!
  • さようなら遅延評価 - あどけない話

    Haskellがとっつきにくい原因の一つに遅延評価がある。入門書では、無限リストと遅延評価がことさら強調される。しかし、Haskellを業務で使ってみると、遅延評価が煩わしくなってくる。遅延評価なしでもほとんどのことは実現できるし、メモリーの使用量は推測できないし、あまりいいことはない。 Haskellの評価戦略が、他の言語と同じように正格評価だったらよかったのに。 今まで、このようなセリフを何度聞いたか分からない。 そもそも遅延評価が役立つことはあるのだろうか? ある。お世辞抜きに、少なくとも以下の3つでは当に役立つ。 リスト(あるいは類似のデータ構造)処理 純粋性に対する暗黙のテスト 効率的なCAS 1.はよいだろう。2.は純粋さを守るために必要だが、コンパイラを開発する人にとって重要なのであり、ユーザには関係ない。3.は、並行プログラミングの奥義である。atomicModifyIO

    さようなら遅延評価 - あどけない話
    kirakking
    kirakking 2019/02/15
    stackならpackage.yamlに"default-extensions:\n - Strict StrictData" > 迷わずに以下を cabalファイルに入れるのだ! default-extensions: Strict StrictData
  • COBOLってこんな言語

    日経xTECHの元記事を読んでもCOBOLの特徴があんまり伝わってこない感じだし、かといってそれをディスってもしょうがないので、書いてみた。 https://anond.hatelabo.jp/20190205192741 COBOL質的にはDSLなんだけど、一見汎用プログラミング言語に見えてしまってRubyPythonなんかと比較するのが誤解のもとではあると思う。今の人でも知ってそうなCOBOLに似ている言語はたぶんSQLで、データを処理するための専用言語。ただ、SQLは頑張ればすごく複雑なこともできるパワフルな言語で、だからこそ現代でも生き延びているわけだけど、COBOLはわりとシンプルなデータ処理を想定している感じ。 SQLだけでアプリケーションを作れないのは触ったことある人なら誰でもわかると思う。普通はJavaRubyで全体の流れを記述してデータベース入出力をSQLで書く。

    COBOLってこんな言語
  • cabal コマンドとの対応表

    注意点 このページの内容は cabal HEAD を追っているため、最新版の cabal ではまだ利用不可能な内容も含まれる場合があります。 参考となるサイト&記事 AWESOME-CABAL Why Not Both? Announcing cabal new-build: Nix-style local builds Introduction to Cabal The Haskell Cabal | Overview haskell/cabal-website stack と cabal $ stack --version Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2 $ cabal -V cabal-install vers

  • 定理証明リンク集

    定理証明、特に定理証明支援系(Proof Assistant)はその存在こそ少しずつ浸透しつつあるような気がしないでもないけれど資料とか全然まとまってないのが不便だなと前々から思っていたのでリソースをまとめておきます。 これも追加してほしいみたいなのあったら教えてください。 Proof Assistants 始めるなら次の中から選ぶのがよいと思います。 Coq Calculus of constructionsベースの型システムとリッチなコマンドを備えた言語 このリストの中では最もコミュニティが大きい、入門書等も豊富 型システムと項を書くためのGallina, コンパイラへの命令を記述するためのVernacular, タクティクスの定義に使うLtacなどの言語が混ざって出てくるのが初心者には混乱必至 結構複雑な言語なので使いこなすのはそれなりに大変 Agda Martin-Löf type

  • GitHub、無料ユーザーもプライベートリポジトリを使い放題に

    GitHubが、無料ユーザーもプライベートリポジトリを無制限に使えるようにした(共有は3人まで)。料金体系は変わらないが、有料プランの名称も少し変わった。 米Microsoft傘下の開発者向けのソースコード共有サービスGitHubは1月7日(現地時間)、無料ユーザーでもプライベートリポジトリを使えるようにしたと発表した。 これまでは、ソースコードを非公開にできるプライベートリポジトリを使えるのは月額7ドル以上の有料ユーザーのみだった。新プランでは、無料ユーザーでも無制限にプライベートリポジトリを使えるが、共有できるのは3人までだ。 また、有料プランの構成を変えた。従来「Developer」という呼称だった月額7ドルの個人向けプランは「Pro」に、GitHubのみで使うものと自社サーバでのホスティングも可能なものの2つに分かれていた2つのビジネス向けプランが1つになり、「Enterprise

    GitHub、無料ユーザーもプライベートリポジトリを使い放題に
  • 制御理論としての動的計画法 - Qiita

    はじめに:冷戦と動的計画法 動的計画法とは何でしょうか? いきなりですが、日語版Wikipediaを引用します。 動的計画法 - Wikipedia 動的計画法(どうてきけいかくほう、英: Dynamic Programming, DP)は、計算機科学の分野において、アルゴリズムの分類の1つである。対象となる問題を複数の部分問題に分割し、部分問題の計算結果を記録しながら解いていく手法を総称してこう呼ぶ。 おそらく、Qiitaを見る人の大半もこのような認識ではないでしょうか。 「あーなんかナップサック問題とか解くんでしょ? 表の数字を端から埋めていくやつ」 というイメージがあるのではないでしょうか(偏見)。 では次に、英語Wikipediaを見てみましょう。冒頭を日語訳します。 Dynamic programming - Wikipedia 動的計画法は、数理最適化手法ならびにコンピュ

    制御理論としての動的計画法 - Qiita