今回は cats.effect.IO (以下、 IO ) を理解する上で最低限必要となる*1実装を選定して、cats を参考に IO を実装してみました。具体的には、下記の機能を実装してみます。 IO#pure IO#delay or IO#apply IO#raiseError IO#map IO#flatMap IO#unsafeRunSync …
Rust Advent Calendar 2019 25日目の記事です。 tide は現在開発途中の、 Rust の async/await に対応した HTTP サーバーを構築するフレームワークです。not ready for production yet なので本番にこれを使用するのは難しいかもしれませんが、いろいろな例…
全探索にもいろいろ種類があるそうで、今日は bit 全探索という方法を勉強したのでそれについてまとめてみます。まとめないと忘れる。 解きたい問題 この記事に載っている部分和の問題を解きます。説明のために問題文を拝借します qiita.com n 個の正の整数 …
今年も多くの技術書を読みました。その中で印象に残ったものをご紹介したいと思います。今年は忙しくて休日しか時間がなかったので、読んで知識を体系的に整理できたと思った本の冊数は少ないですが… Functional Programming 2019年の4月くらいに5年目がはじ…
数学を勉強している最中に話が出てきたので、少しまとめておこうと思います。理解に誤りがあったら教えて下さい♀️ なお、私はモノイドやモナドといった言葉は、その成立条件について Functional Programming in Scala などの本でさらっと理解しています。一…
Photo by: @katsumata_ryo まずはお礼をさせてください。10月26日に Rust.Tokyo を開催しました。ブログ等での反響を見る限り、みなさんお楽しみいただけたようで、主催者としては何よりです。カンファレンスを初めてやるメンバーが多い中で、前日まで準備に…
Rust を書いてる際にコンソールでいろいろ出力を出して遊びたいことがあると思います(?).コンソールの出力にふと色をつけたくなって,コンソール文字列の色づけって Rust ではどうやってつけることができるんだろう?と思って調べたらこういう crate が…
ググると Spring も込みの設定方法しか出てこなかったので,メモしておきます.言語は Scala,ビルドツールは sbt を使用しています.logback-classic を使用しているようです. やろうとしていること logback.xml 内で,開発環境/ステージング環境/本番環…
思い返すと、Rust をはじめて知ったのは2年前でした。ある Googler が記事の中で Rust に対して惜しみない賛辞を送っていた記事でした。私はこの記事に大変共感し、感銘を受けました。Rust がやりたくなった。 当時の私は、金融業界で使われるリスク管理計算…
先週で社会人4年目が終わり,今週から社会人5年目になりました.3年目で新卒入社した金融の会社を辞め,今は2社目に1年半弱在籍しています.振り返りをしておきたいと思います. ちなみに私は社会人になってからプログラミングをはじめたので,プログラミン…
最近 Functional Programming in Scala の勉強会をずっとしているのですが,ようやく12章の Applicative Functor に入りました.ところが,急に登場した Applicative という概念がいまいち勉強会の時点ではつかめておらず,少し頭の中を整理したいと思ったの…
『問題解決のPythonプログラミング』という本を読んでいたら出てきたエクササイズです.おもしろそうだったのでやってみました.もともとその章のお題だった配列をぶん回すという方針に従って,それを応用して今回はやってみました.各文字に対してカウンタ…
小ネタもうひとつ. Servo の開発をするとお世話になるのが highfive という bot です.新規コントリビュータの人が参加しやすいように作られた bot だそうです.アイコンかわいい. github.com お世話になる場面は下記の2つです. Issue を自身に割り当てる…
Mozilla 関係のプロダクトにコントリビュートするとよく見かける (?) ,bors というボットがいます.たとえば,普段コントリビュートするみなさんもこういったコメントを見たことがあるかと思います. @bors-servo r+ 普段は自分でキックすることはないので…
暇ではないです.言い出しっぺの人晒しときます. とりあえず確認してるのは- Go- Ruby- Perlあとなんかあったっけ?— ema (@ema_hiro) 2019年2月28日 歴代のタイトル 面倒なので,まずは日本語のタイトルを都合よく解釈して英語にしていきます. 赤・緑 (Re…
Scala の記事を書くのは地味に初めてかもしれません.今回は,Scala の cats-effect というライブラリの中にある IO モナドを使って Web アプリケーションを構築してみたいと思ってやってみたので,その話を簡単にメモしておきます. cats とは? Scala 界隈…
この記事は Rust Advent Calendar 2018 25日目の記事です. Rust 2018 edition より,Procedural Macros (以下もずっと英語表記します) という機能が新たに追加されました. Procedural Macros においては, TokenStream というストリームが概念の中心にあり…
こういう本好きなのと,話題になっていたので買ってみて真面目に読んでみています. 話題になってて気になってポチった本が届いた。ソフトウェアデザインをしていてよく思う迷いどころに対する解決策が載ってそう pic.twitter.com/CCUdzvB6wh— yuki (@helloy…
この記事は CyberAgent Developers Advent Calendar 2018 3日目の記事です. アドテクスタジオ所属の yuki です.社内の方向けに軽く自己紹介をしておくと,2017/11 中途入社です.アドテクスタジオの某プロダクトでテックリードをしています. Rust が好き…
11/21 に Shinjuku.rs で登壇しました.今回は actix-web に関する話をしました.もちろん LT ではすべてを話しきることができませんでしたので,今回も裏話を記事にして書き留めておこうかと思います (自身の頭の整理にもなるためです). forcia.connpass.c…
関数型プログラミング言語を触っていると,「モナド」という言葉が登場します.関数型プログラミングの文脈でのモナドは,圏論という数学の一分野が元ネタです.しかし,モナドにはさらに元ネタがいます.高校の倫理をやった方は,聞き覚えがあるかもしれま…
Rust LT#2 で話をしました.「インタプリタを作ってまなぶ Rust らしい書き方」という話です.内容は実は,Ruby のコードを Rust のコードに置き換えてみようという内容でした.Ruby 製のインタプリタを Rust に置き換えるセッションです. speakerdeck.com …
もしかすると一般的な話なのかもしれませんが,おもしろかったのでメモ書き程度に残しておきます *1.ソースコードはすべてアセンブリに直されているものだとばかり思っていましたが,そうではないんですね. 使ったツールは,Compiler Explorer というサイ…
先日開催された Rust LT #1 で話をしました.話は HTTP サーバーを自作してみるというものです.Rust に最近入門された方や,今回の LT ではじめて Rust に触れる方向けに,なにかお話できたらなと思い LT をしました. Rust で簡易 HTTP サーバーを作ってみ…
シェルをフルスクラッチしてみようと思い,まずは手始めに簡易的なシェルとして紹介されていた LSH を実装してみました. 実装したソースコードはこちらにあります. github.com LSH に実装されている機能 LSH には次のコマンドが実装されています. cd help…
3/23-2/25 で,Junction Tokyo というハッカソンに参加してきました.そして,Logistics 部門において見事,優勝をすることができました.3日間本当にお疲れ様でした.スタッフの皆さんもどうもありがとうございました. Junction Tokyo は,毎年5月頃に開催…
自分の好きなサイトのフィードを取得してリストアップしてくれるツールを簡単に作ってみました.ライブラリに関する知識を整理しておきたいので,記事として残しておきます. Rust で CLI ツール 先日,Rust が CLI ツールにも今後注力すると発表しました.…
先日,LINE の Meetup in Tokyo #28 に参加してきました.そのときに,Netty を作っている Apple の方が話をしていたのですが,彼の話す ByteBuffer や Channel ,Selector などの単語がよくわからず,帰ってから気になって調べてみました.そこで,java.nio…
lang_item とは具体的には rustc の下記の箇所で設定されている言語固有のアイテムのことを指しています。また、#[lang = "<lang_item_name>"] アトリビュートを使用することで、その lang_item の実装を書き換えてしまうことができます。 lang_item の一覧: rust/lang_items</lang_item_name>…
詳しいところはドキュメントを読みましょう事案なのですが、今作っているプログラムで次のような文言がはじめて出てきて、どういうことか整理しておきたいのでメモ程度に残しておきます。 出てきたアトリビュートは下記です: #![no_std] 以下、あいまいな理…