タグ

ブックマーク / qiita.com/yyu (9)

  • Markdownから素晴しいPDFをTravis CI上で作成することの考察 - Qiita

    はじめに かつて僕はGitBook MarkdownからPandoc+LaTeXで美しいPDFを生成するという記事を書きました。その後、Scala Text PDFの次のプロジェクトとして“プログラミング言語Rust: 2nd Edition”の日語版PDFの開発に関わりました。僕がTravis CIを利用してMarkdownからLaTeXの処理系を利用して最終的にPDFを作成するという作業をはじめてから——こればかりをずっとやっていたわけではありませんが——それでも2年ほど経ち、いろいろな知見がアップデートされてきました。2年前からの大きなアップデートとして、最も大きな知見はTravis CI上に生でPandocやTeXLiveを展開するのではなく、Dockerイメージを利用するようにしたなどがあります。また、最近はいろいろな技術文書がMarkdownで執筆されるようになり、これをPD

    Markdownから素晴しいPDFをTravis CI上で作成することの考察 - Qiita
  • “プログラミング言語Rust: 2nd Edition”の日本語版PDFを作成した - Qiita

    はじめに https://doc.rust-jp.rs/book-ja-pdf/book.pdf プログラミング言語Rust: 2nd Edition1の日語版PDFを公開しました! 組版上のエラーなどを見つけたら気軽にIssueなどで報告してほしいです 改善してほしい点なども歓迎します! 頃合いをみてrust-lang-jaに移すかも 移した 実はWeb版もあります! https://doc.rust-jp.rs/book/second-edition/ HTML版のソースはhazamaさんのMarkdownからRustコミュニティがフォークしたもので、PDF版と同じものを参照しています GitHub Repository https://github.com/rust-lang-ja/book-ja-pdf エラー報告などをお待ちしています。 追記 アスキードワンゴさんから出版されま

    “プログラミング言語Rust: 2nd Edition”の日本語版PDFを作成した - Qiita
  • ブロックチェーンを利用した公平なガチャ - Qiita

    はじめに この記事は第2のドワンゴ Advent Calendar 2017の9日目の記事である。 2015年からはじめた公平なガチャという研究テーマは、“コミットメント”といった暗号技術を利用する方針で研究が進んだ。一方でコミットメントではなくブロックチェーンを利用した公平なガチャを実装しようという研究がSCIS 2017で佐古さんらによって提案された。またCSS 2017において江原さんらはEthereumを利用した方法を提案した。この記事ではこれまでのコミットメントを利用した公平なガチャについておさらいしつ、江原さんらの論文に基づくブロックチェーンによる公平なガチャについて説明する。 なお、もしこの文章に間違いなどがあったとしてもそれは記事を書いた筆者の落ち度であり、上記の論文の著者らは無関係である。もし間違いを見つけたり、あるいは疑問がある場合は気軽にコメントで報告してほしい。 公

    ブロックチェーンを利用した公平なガチャ - Qiita
  • LaTeXとTravis CIでヒラギノフォント埋め込みPDFを作る - Qiita

    注意 この記事で紹介しているテクニックを用いて作成した文書を、配布したり販売したりしてよいかについては現在調査中であるので、この記事の内容はあくまでも「そういうこともできる」程度に考えて欲しい。また、もしTravis CIで作成した成果物のライセンスなどに関する情報をお持ちの方がいらっしゃいましたら、この記事のコメントなどで知らせて欲しいと思う。 2016/6/25 AppleのLegal Questionに問い合わせメールを送ったものの、返答がありません……。 はじめに や冊子などをLaTeXで作成する際には、フォントにこだわりたくなることがある。有名なフォントとしてヒラギノフォントがあるが、ヒラギノフォントは有償なので、フォントを購入するかあるいはMacを買う必要がある。この記事では、Travis CIを使ってお金を支払うことなくヒラギノフォントが埋め込まれたPDFをLaTeXで生成

    LaTeXとTravis CIでヒラギノフォント埋め込みPDFを作る - Qiita
  • pyenv の Anaconda/Miniconda 対応について - Qiita

    2015 年は td-client-python のリリースに始まって (正確には 2014 年の Advent Calendar の Python Pandasからトレジャーデータを叩く?)、Treasure Data にとっての Python 元年と呼ぶことのできる年だったと思います。 何か td-client-python について書こうかとも思ったのですが、ソース読めば分かるようなことを書き下してもあまり面白くないので、ソースを読んでもよく分からないと一部で評判の pyenv および pyenv-virtualenv の実装についてこの機会に一部説明しようと思います。ぶっちゃけ Treasure Data とあんまり関係ないけど、td-client-python のテストにも pyenv 使ってるし Advent Caledar に書いても許される... はず。 pyenv とは

    pyenv の Anaconda/Miniconda 対応について - Qiita
  • Dependency InjectionとDSL

    Dead-Simple Dependency Injection in Scalaという発表で、Dependency Injection(依存の注入)をReaderモナドなどを用いて行うという技術があった。下記がその発表である。 この記事ではまず、Dependency Injectionについての説明と、Readerモナドについての説明を行い、次にReaderモナドを使ったDependency Injectionについて述べて、Freeモナドを用いて小さなDSLを作るアプローチを紹介する。 この記事はモナドやDependency Injectionなどに関する前提知識がなくてもある程度読めるように意図しているが、Scalaの文法的な知識を前提としている。また、もし説明が不足している点や文章の意図が分かりにくい部分があれば、気軽にコメントなどで指摘して欲しい。 注意: 記事の中にあるコードは

    Dependency InjectionとDSL
  • FreeモナドとTagless FinalによるDependency InjectionのためのDSL - Qiita

    前回の記事では、ReaderモナドやFreeモナドを使ってDependency Injectionを行うための小さなDSLを組み立てた。今回の記事では、まず前回組み立てたDSLの課題であるExpression Problemと、それを解決するための機能Injectと、さらにはTagless Finalを用いたDSLについて述べる。 この記事は前回の記事の知識を前提としているので、分からない言葉などがある場合はまず前回の記事を参照して欲しい。また、文章について不明なことや意図が分かりにくい部分があれば気軽に指摘して欲しい。 注意: 記事の中にあるコードは読みやすさのためにimportなどを省略しているので、このままでは動かない。動かしたい方はGithubのリポジトリを使うとよい。 Expression Problem Expression Problemとは、こちらのサイトを引用すると次のよ

    FreeモナドとTagless FinalによるDependency InjectionのためのDSL - Qiita
  • 正規表現のJITコンパイラを実装する - Qiita

    前回の記事で、正規表現(の抽象構文木)からLLVMの中間表現(LLVM IR)1へコンパイルするという試みを行ったところ、Twitterで次のような投稿をいただいた2。 @_yyu_ https://t.co/UPV535fqbB とかを使うと、Mokkosuから動的コード生成ができてきっと楽しいです。 — ラムダ太郎 (@lambdataro) 2015, 5月 11 つまり、プログラムの実行時に正規表現に対応するバイトコードを生成して、それを実行すれば速度が早くなったりするかもしれないということである。これは一般的にJust in Time(JIT)コンパイルと呼ばれているもので、正規表現技術入門というでも紹介されている。Mokkosuで実装してもよかったが、たぶんMokkosuのプログラマはそれほど多くないだろうということで、今回もScalaを使って実装することにする。 正規表現の

    正規表現のJITコンパイラを実装する - Qiita
  • 正規表現からLLVMへのコンパイラを実装する - Qiita

    正規表現技術入門というの中に、正規表現のJITコンパイルという技術が紹介されている。VM型の正規表現エンジンは以前作った1ので、これをLLVMへコンパイルすればおもしろいのではないかと考えて、実行することにした。なお、実装にはScalaを用いた。 追記: また、JVMのバイトコードへJITコンパイルする実験も書きました。 正規表現のJITコンパイラを実装する 正規表現の抽象構文木 VMの実装の時に用いたものと同じく、次のデータ構造を用いる。 sealed trait Regex case object Empty extends Regex case class Let(c: Char) extends Regex case class Con(a: Regex, b: Regex) extends Regex case class Alt(a: Regex, b: Regex) ext

    正規表現からLLVMへのコンパイラを実装する - Qiita
  • 1