並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 1316件

新着順 人気順

haskellの検索結果121 - 160 件 / 1316件

  • 「圏論とプログラミング」発表スライドメモ - Qiita

    この記事は、先日の 2020年01月25日に慶応大学で開催されたシンポジウム「圏論的世界像からはじまる複合知の展望」の登壇資料を文字起こししたものです。 Slide: 圏論とプログラミング / Category Theory and Programming - Speaker Deck Video: 圏論とプログラミング / 稲見泰宏 - YouTube 皆さん、こんにちは。稲見 泰宏と申します。 本日は、この圏論シンポジウムという貴重な場でお話しさせていただくことをとても光栄に思います。 私の方からは、圏論とプログラミングに絡めた話について発表します。 それでは、どうぞよろしくお願いします。 まず簡単に自己紹介します。稲見泰宏といいます。 現在は、フリーランスのiOSアプリ開発者として活動しております。 ここに書いてあるのは、私の過去10年間のプログラミング経歴ですが、 PHPとJava

      「圏論とプログラミング」発表スライドメモ - Qiita
    • Goとマルチコアスケール実装

      マルチコア化の未来予測 半世紀前にSF映画「2001年宇宙の旅」に登場するコンピューターHAL-9000が並列コンピューティングの未来を示しました。マルチコアで構成されたコンピューターの物理コアを取り除いてもすぐにクラッシュせずに性能ダウンして処理が継続するという演出がありました。 当時ですらシングルコアコンピューティングの限界が予想されていて、現状のコンピューティングがマルチコア化しているという未来をしっかり予測できていたことがわかります。 演出はコア数に応じてコンピューティング性能がスケールしていることを表現しています。これはマルチコアスケールするソフトウェア実装の未来を示していたと思います。 シングルコア性能向上の頭打ち 2003年以降あたりはCPUの動作周波数が伸び悩み出したところ。 https://queue.acm.org/detail.cfm?id=2181798 より その

        Goとマルチコアスケール実装
      • HERP における Nix 活用

        HERP における開発では Nix が広く活用されている.Nix は非常に便利な代物なのだが,ドキュメントの貧弱さ,急峻な学習曲線,企業における採用事例の乏しさなどが相まって,広く普及しているとは言い難く,ましてや国内企業での採用事例を耳にする機会はほとんどない.しかし,Nix の利便性は,複数人での開発においてこそ,その本領が発揮されると考えている.この記事は,HERP における活用事例の紹介を通じて,Nix の利便性ならびに企業での活用可能性について紹介することを目的としている. Nix とは# Nix は "the purely functional package manager" と銘打たれたパケッジマネジャーである.GNU Linux および macOS 上で利用できる. ビルド# Nix は the purely functional "package manager" なの

          HERP における Nix 活用
        • 「コンセプトから理解するRust」を読んでRustに入門する - パンダのプログラミングブログ

          3年前に抱いていた Rust に対するイメージ 「コンセプトから理解するRust」(Amazon)という書籍を読んで Rust に再入門してみました。 実は2019年に Rust のチュートリアルである「The Rust Programming Language」(通称 TRPL)を写経したことがあります(GitHub)。 しかし、当時の自分は PHP のバックエンドエンジニアとしての経験が2年ちょっとあるくらいで、TypeScript にもまだ入門しておらず静的型付け言語の経験はほとんどなかったように記憶しています。 当時から Rust は所有権などの概念が難解で初心者を拒むものの、 Stack Overflow のアンケートで開発者から人気な言語として高い地位を誇っているというイメージがありました。 自分自身、PHP 以外にもサーバーサイドで使える言語があるといいなという思い、Rust

            「コンセプトから理解するRust」を読んでRustに入門する - パンダのプログラミングブログ
          • スタートアップで戦い抜いてきたRailsアプリをどう直す? 既存Railsアプリを攻略する時にCTOが見ているポイント

            「初学者から上級者までが楽しめるWeb系の技術カンファレンス」をコアコンセプトに掲げる「Kaigi on Rails」。ここで登壇したのは、STORES株式会社 CTO・藤村大介氏。別会社が自社にジョインしたことにより、新しく加わったプロダクトのRailsアプリケーションを触り改善する中で、見ていたこと・考えていたことなどを発表しました。全2回。前半は、アプリの概要を理解するために見ていたものについて。 STORES株式会社 CTO・藤村氏の自己紹介 藤村大介氏:「既存Railsアプリ攻略法」というタイトルで、CTOが何をやっているのか、何を見ているのか、何を考えているのかをお話ししようと思います。 自己紹介です。藤村大介と申します。あらためてよろしくお願いします。僕は2008年ぐらいから、バックエンドでRailsを書くのを中心にソフトウェアエンジニアとして仕事をしていて、フロントエンドも

              スタートアップで戦い抜いてきたRailsアプリをどう直す? 既存Railsアプリを攻略する時にCTOが見ているポイント
            • 40歳から始める関数型言語、OCaml - すぎゃーんメモ

              動機 Why OCaml 学習方法 Real World OCaml Github Copilot と ChatGPT オンラインジャッジ (競プロ) Advent of Code その次? 所感 関数型という概念 OCamlの書き味 Rust, Python の経験 AIとの親和性 まとめ 某Nさんがここ最近Haskellとか勉強してて楽しそうで真似してみたくなって、自分も今さらながら何か関数型言語はじめてみるか〜と周りに相談したところOCamlをオススメされたので 今年に入ってからひたすらOCaml書く練習してる。AtCoder Boot camp for BeginnersのEasy 100をようやく終わらせたところ。 pic.twitter.com/POBWhvHHCn— すぎゃーん💯 (@sugyan) April 9, 2023 大西さんが動画の中で感極まっていたけど、宮川さ

                40歳から始める関数型言語、OCaml - すぎゃーんメモ
              • 経験5年のHaskellユーザがScalaを仕事で半年使ってみた

                haskell-scala-java ちょっと前までScalaを書いていたので、 Haskell好きな人がScalaを書いた感想を書きます。 タイトルは経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blogの模倣です。 あくまで1ユーザの感想です。 Scalaに慣れてしまうと違和感を忘れてしまうと思ったので、当時箇条書きで雑にメモしていたものを参照して書いています。 逆にScala使いがHaskellを知るメモに役立つかもしれません。 Haskell歴 when: 2013年から知って学び始めましたが、本格的に使い始めたのは2015年からで、5年ほど使っています where: どの言語を使っても良くて新しい言語を学ぶ必要がなければ基本的にHaskellを使っています what: 趣味OSSプロジェクトの大半 現在一番スターもらっ

                  経験5年のHaskellユーザがScalaを仕事で半年使ってみた
                • 多くのプログラミング言語に危険な脆弱性 ~Windows環境の引数エスケープ処理に不備「Rust」「PHP」「Node.js」「Haskell」などに影響/

                    多くのプログラミング言語に危険な脆弱性 ~Windows環境の引数エスケープ処理に不備「Rust」「PHP」「Node.js」「Haskell」などに影響/
                  • 『実践Rustプログラミング入門』を書きました - Don't Repeat Yourself

                    すごく今更感がありますが、先週末出版しました。 私のプライベートがとても忙しくしばらく書けませんでした。書籍を書きましたのでご報告です。 実践Rustプログラミング入門 作者:初田 直也,山口 聖弘,吉川 哲史,豊田 優貴,松本 健太郎,原 将己,中村 謙弘発売日: 2020/08/22メディア: 単行本 ちなみに、著者、まだ現物を受け取っていません。書店で現物を触りたいなと思って見に行きましたが、今週末は在庫切れで本屋さんにありませんでした。 電子書籍は調整中です。 私の担当は1章、3章の一部、11章の一部です。 他の共著者のみなさんの記事 (2020/09/22 追記) 共著なのにこの記事のタイトルを「書きました」としてしまったので、私もだぞ、とみなさんがタイトルで煽ってきています(違 私も『実践Rustプログラミング入門』を書きました - matsu7874のブログ 私だって『実践R

                      『実践Rustプログラミング入門』を書きました - Don't Repeat Yourself
                    • 達人出版会

                      探検! Python Flask Robert Picard, 濱野 司(訳) BareMetalで遊ぶ Raspberry Pi 西永俊文 なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 Jesse Storimer, 島田浩二(翻訳), 角谷信太郎(翻訳) 知る、読む、使う! オープンソースライセンス 可知豊 きつねさんでもわかるLLVM 柏木餅子, 風薬 1週間でAWS認定資格の基礎が学べる本 鮒田文平, 相川諒太, 日暮拓也, 川畑光平 徹底攻略ITパスポート教科書+模擬問題 令和5年度 間久保 恭子 徹底攻略Python 3 エンジニア認定[基礎試験]問題集 株式会社ビープラウド, 一般社団法人Pythonエンジニア育成推進協会, 株式会社ソキウス・ジャパン 徹底攻略 AWS認定 ソリューションアーキテクト − アソシエイト教科書 第3版[SAA-C03]対応 鳥谷部

                        達人出版会
                      • Java 注目の機能:Sealed クラス

                        クラスまたはインタフェースはsealedと宣言されている場合があります。これは特定のクラスやインタフェースの集合だけがそれを直接拡張できることを意味します。 sealed interface Shape permits Circle, Rectangle { ... } これは Shape と呼ばれる Sealed インタフェースを宣言します。permits リストは、Circle と Rectangle だけが Shape を実装できることを意味しています。(場合によっては、コンパイラが permits 句を推論できるかもしれません)。 Shape を拡張しようとする他のクラスやインタフェースは、コンパイルエラーを受けます(または、Shape をスーパータイプとして宣言しているラベル外のクラスファイルを生成しようとした場合は、実行時エラーとなります)。 私たちは、final クラスを介し

                          Java 注目の機能:Sealed クラス
                        • Deep Tabnine - Tabnine Blog

                          Update (August 19): We’ve released Tabnine Local, which lets you run Deep Tabnine on your own machine. TL;DR: Tabnine is an autocompleter that helps you write code faster. We’re adding a deep learning model which significantly improves suggestion quality. You can see videos below and you can sign up for it here. There has been a lot of hype about deep learning in the past few years. Neural network

                            Deep Tabnine - Tabnine Blog
                          • Wantedly における Go 導入にまつわる技術背景 | Wantedly Engineer Blog

                            (本記事は Go Conference 2019 Autumn にて無料配布した冊子『WANTEDLY TECHBOOK GoCon Edition vol.2』からの掲載です) 配布した冊子の前半では Go の導入にあたってどのような工夫をしてきたのかを紹介しました。そこに書かれていたように、新しいプログラミング言語を導入するにはそれなりの整備コストがかかります。それではなぜそこまでして Go を導入したのでしょうか。本記事では Go を導入した背景について説明していきたいと思います。 なぜ Go か技術的・事業的背景どのプログラミング言語を採用するかや、どのようなアーキテクチャを選定するかというようなことは非常に影響範囲の大きい決断になるため、会社全体の技術的・事業的なコンテキストと切り離しては語れません。そこでまずは Wantedly の技術的・事業的な背景について、この後の話をする

                              Wantedly における Go 導入にまつわる技術背景 | Wantedly Engineer Blog
                            • 数式は触ってみないと何も分からない|shi3z

                              数式って不便すぎないか? いやわからん。 俺は数学苦手だから。 でも例えば、プログラミング言語は、現代普通に使われるものだけ挙げても、C#、JavaScript、Ruby、Python、PHP、Java、Swiftとまあ軽く7種類くらい。C系で言えば、C、C++もあるし、C++もバージョンによってはほとんど別物になったりする。プログラミング言語ではない人工言語としても、HTML、SQL、VHDL・・・アセンブリ言語などがあり、使う人は少ないが恩恵に預かってる人が多い言語で言うとLISPやHaskellなんてのもある。 しかもこれらのプログラミング言語は、すべて「同じアルゴリズム」を記述することが可能なのだ。 「同じことを説明するのに複数の方法(言語)がある」と言うことが一体何の意味があるのか、プログラマー以外の人にはわかりにくいだろうが、プログラマーにとっては大問題である。 それぞれのプロ

                                数式は触ってみないと何も分からない|shi3z
                              • Rustでメモ化を行うためのシンプルなライブラリを作った - 純粋関数型雑記帳

                                TL;DR 一行追加するだけで関数をメモ化するマクロを作った。 成果物はこちら https://docs.rs/memoise/ 背景 同じ引数に対して同じ値を返す関数(いわゆる参照透明だったり数学的だったりな関数)では、 関数の計算結果を保存しておくことによって計算を高速化したりすることができます。 このようなテクニックを関数のメモ化(memoise, memoize, memoization)などと呼びます。 特に再帰的に定義される関数についてメモ化を行うことによって、 動的計画法の実装をシンプルで直感的なものにできたりします。 しかし、関数のメモ化はやりたいことが自明なのにもかかわらず、 毎回手で書いていると微妙に面倒だったり、うっかりメモ化忘れで計算量が爆発してしまったり、 ちょっと辛いところがありました。 特にRustを使っていると、グローバル変数を雑に使うことを許して貰えないの

                                  Rustでメモ化を行うためのシンプルなライブラリを作った - 純粋関数型雑記帳
                                • romgrk

                                  I often feel like javascript code in general runs much slower than it could, simply because it’s not optimized properly. Here is a summary of common optimization techniques I’ve found useful. Note that the tradeoff for performance is often readability, so the question of when to go for performance versus readability is a question left to the reader. I’ll also note that talking about optimization n

                                  • 直和型の代わりにユニオン型を持つ静的型付け関数型言語 Cotton

                                    // 割る2をする関数の引数が偶数であることを型によって強制する例(実用性はない) data O // 数字の0を表すデータ型 data S(A) forall { A } // +1を表すデータ型 // 型エイリアス type Nat = O | S[Nat] // 非効率すぎる他倍長整数 type Even = O | S[Odd] type Odd = S[Even] // 偶数を引数にとって2で割った結果を言語組込みの整数として返す関数 div2 : Even -> I64 = // 網羅性チェックつきのパターンマッチ | O => 0 | S(S(n)) => 1 + n.div2 TL;DR ユニオン型は直和型の上位互換である(追記あり)。関数型言語を作るときは直和型の代わりにユニオン型を採用するのもあり。 はじめに Cottonというプログラミング言語を2021年の夏頃から作

                                      直和型の代わりにユニオン型を持つ静的型付け関数型言語 Cotton
                                    • プログラムを「書き始める」「試しに実行する」コストを下げる工夫

                                      はじめに 物事を上達するためには反復を、というのはよく聞きますが、もちろんプログラミングでも大事なのかと思います。とくに自分は「一を聞いて十を知る」ような器用なことはできないので、何度も何度もプログラムを書いて、試していました。 このような反復を支援するためには、できるかぎり「書き始めるコスト」と「実行して確認するコスト」は低い方がいいと思っています。書き始めるのがだるいと、そもそも「ちょっと書いてみようかな」となかなか思わないですし、実行するための手数が多いと、「書いて→結果を確認」の回数が減ります。 本稿では、この「書き始めるコスト」と「実行して確認するコスト」を下げる私が20年くらい行っている工夫についてご紹介します。 筆者が Ruby が好きなので、Ruby の例が多いですが、別に Ruby に限った話ではありません。 プログラミング言語による違い たとえば、C 言語ですと、プログ

                                        プログラムを「書き始める」「試しに実行する」コストを下げる工夫
                                      • "simple"と"easy"はどう違う? Simple Made Easyを解説 Part1

                                        2019年7月29日、Opt Technologiesが主催するイベント「Fun Fun Functional (2) 関数型言語Lightning Talks!!」が開催されました。関数型プログラミングについて楽しく学び、知見を共有することを目的に開催されている本勉強会。今回は6名のエンジニアが、関数型プログラミング言語にまつわるユニークな発表を行いました。プレゼンテーション「"Simple Made Easy" Made Easy 」に登壇したのは、lagenorhynque氏。講演資料はこちら "Simple Made Easy" Made Easy lagenorhynque 氏(以下、lagenorhynque):それではよろしくお願いします。 (会場拍手) 今日は見たところScalaの人とかOCamlの人とかHaskellの人とか静的関数型言語勢の人が多くて、LISPの人や、と

                                          "simple"と"easy"はどう違う? Simple Made Easyを解説 Part1
                                        • Rustのトレイトは「高カインド多相のない型クラス」である - なんか考えてることとか

                                          Rustのトレイト(以降Rustトレイトとつなげて呼ぶことにする)は一体何なのか、様々な他言語の概念を通して調べていたが、やっと(「やはり」でもあるのだが)結論が出たので書いていこうと思う。 また、Rustトレイトはインターフェースなのか、MixInなのか、はたまたトレイトなのかということについて書き直したかったのでそれもついでに書く。 Rustのトレイトにおける否定 前置き Rustのトレイトはインターフェースではない RustのトレイトはJavaのインターフェースではない RustのトレイトはC#のインターフェースではない RustのトレイトはMixInではない Rustのトレイトはトレイトではない Rustのトレイトは「高カインド多相のない型クラス」だった 根拠1: 型クラスと用法が同じである 根拠2: 重複する関数があった際の挙動も同じ Rustのトレイトでは高カインド多相ができな

                                            Rustのトレイトは「高カインド多相のない型クラス」である - なんか考えてることとか
                                          • Haskell書いてるときになんとなく気をつけていること - LugendrePublic

                                            信頼性はない 都市伝説かもしれん 大体枕詞に特別な理由がなければがつく 思いついたら徐々に更新する それは違うよってことがあったら @Lugendre まで ghc 8.6.5の話(8.8.1は仕事で使ってなくてな......) コンパイル通るかの確認だけなら最適化オプションO0でコンパイルする stackでいうとstack build --fast 動かすときはO2ビルドしたほうがいいが,インライン展開に5億年消費する なんならこのくらいは静的解析に任せてもいいが,でかいプロジェクトだと一定時間動いてハングアップするのしか世の中にないのでオワリ VSCode のせい説もある ghcideに期待 CIするときは必ずキャッシュする 毎回一から依存関係やGHCのビルドが走って余裕で1時間超えるようになるので データ構造のフィールドは特に理由がない限り正格にする 意図しないサンクを潰すため 単相

                                              Haskell書いてるときになんとなく気をつけていること - LugendrePublic
                                            • 「関数型プログラミングが『銀の弾丸』であるという非常識な常識2022」の感想 - Qiita

                                              Ken Okabe氏による 関数型プログラミングが『銀の弾丸』であるという非常識な常識2022 https://kentutorialbook.github.io/functionalprogramming2022/ の率直な感想を書いていきます。 「【追記】」の部分はTwitterでの他の人の反応や氏のはてなブログによる反論を受けて記載したものです。 JavaScriptで演算子オーバーロードを実現しようとするのは筋が悪い 氏は二項演算子に拘っておられますが、JavaScriptにはユーザー定義可能な演算子オーバーロードはないのだから、JavaScriptに適したやり方(関数・メソッド)を使うか、演算子オーバーロードに適した言語(特にStandard ML, OCaml, Haskellなどはユーザー定義の演算子を書けます)を使うべきだと思います。 【追記】もちろんC++やRustでも演

                                                「関数型プログラミングが『銀の弾丸』であるという非常識な常識2022」の感想 - Qiita
                                              • 関数型はプログラミングスタイル

                                                「関数型プログラミングは関数型言語じゃないとできないんでしょ?」という質問をたまに受けます。答えは「いいえ」です。もちろん、言語のサポートはあれば越したことはないです。 そもそも命令型及び関数型はプログラミングスタイルです。そして、命令型と関数型の間は0/1ではなく、グラデーションがあります。 なので、関数型プログラミングは関数型言語以外でも使えますし、プログラムをよい設計へ導く考え方ですよ、というのがこの記事の主張です。コード例も交えて説明してみます。 関数型へのアプローチ ロジックを書くとき 可変の変数(var)を使わず、不変の変数(val)を使う 可変のオブジェクト(mutable)を使わず、不変のオブジェクト(immutable)を使う voidやUnitなどの戻り値のない関数は使わず、戻り値を返す(高階)関数を使う 関数を定義するとき 参照透明な関数を定義する 必ず意味のある戻り

                                                  関数型はプログラミングスタイル
                                                • Haskell社内勉強会とHaskell学習ツールの紹介 | IIJ Engineers Blog

                                                  日本Haskellユーザーグループ(愛称 Haskell-jp)発起人の一人にして、Haskell-jpで一番のおしゃべり。 HaskellとWebAssemblyとプリキュアとポムポムプリンをこよなく愛する。 こんにちは。IIJ-IIの山本悠滋です。 今日はここ数ヶ月私と有志で行っている、Haskellの社内勉強会と、そこで使用している自作のHaskell入門ツールについて紹介します。 Haskellの社内勉強会について 「社内勉強会 失敗しながら学ぶHaskell入門タイム」と称して、私はこれまでに8ヶ月近くもの間、週1回Haskellの勉強会を開催してきました。 この手の勉強会は連続して参加することが前提となっているため、どうしても最初の回から少しずつ人数が減っていくという残念なことになりがちですが、どうにか私含め4~5人程度を維持してここまで30回、18個目の課題まで進めることが出

                                                    Haskell社内勉強会とHaskell学習ツールの紹介 | IIJ Engineers Blog
                                                  • 「作りたいものをいかに早く完成させるかが正義」 まつもとゆきひろ氏が語る、ソフトウェア開発におけるベロシティの重要性

                                                    「作りたいものをいかに早く完成させるかが正義」 まつもとゆきひろ氏が語る、ソフトウェア開発におけるベロシティの重要性 #18 動的型付け言語と大規模開発 今回のテーマは「動的型付け言語と大規模開発 まつもとゆきひろ氏:こんにちは。まつもとゆきひろです。Matzチャンネル、18回目になりますね。今日は前回の続きで、「動的型付け言語と大規模開発」について話そうと思います。 本当は前回放送リリースした次の日ぐらいに放送できるようにと思っていたんですけど、意外と忙しくてですね(笑)。 今度、フィンランドのヘルシンキで、「Euruko」というカンファレンスが開かれるんですけれども、まだ物理で海外旅行する気にならないので、キーノートを録画しましょうという話になって、そのキーノートの準備をして、スライドを書いて、英語の講演を録画するみたいな作業をしていたら、あっという間に時間が経ってしまって、「Voic

                                                      「作りたいものをいかに早く完成させるかが正義」 まつもとゆきひろ氏が語る、ソフトウェア開発におけるベロシティの重要性
                                                    • x=x+1がわからないのは逐次実行がわかっていないからで、記号を変えても解決にならない - きしだのHatena

                                                      x = x + 1がわからないという話が流行ってました。 で、「=ではなく:=を使えば」とか「イミュータブルにすれば」とかいう話が出たりしてますが、問題をあとまわしにしてるように見えます。 結局のところ、逐次実行がわかっていないことが表面化している場合がほとんどではないかと。 https://speakerdeck.com/kishida/lets-code-a-process?slide=8 プログラム以外の文章は、基本的にひとつの状態を示していて状態が遷移するということがありません。 推理小説なども、最終的な状態が徐々に開示されるだけともいえます。途中から読むと犯人が変わるということはないですね。もちろんそのように途中から読むと犯人が変わるような叙述トリックは可能ですが、通常はそうではないからトリックになるわけで。 つまり、x = x + 1という式は、x + 1という演算を行ってから

                                                        x=x+1がわからないのは逐次実行がわかっていないからで、記号を変えても解決にならない - きしだのHatena
                                                      • 「競プロ典型 90問」Smallest Subsequence (最小部分列問題)

                                                        最小部分列問題 「 競プロ典型 90 問」の 006 - Smallest Subsequence(★5) (最少部分列問題) という問題を解いてみたのですが、最初は解説をみてもさっぱり分からず打ちひしがれていました・・・。 が、けんちょんの競プロ精進記録 を見るに、どうもこの問題を解く途中で出てくる nex という配列が「極めて汎用性が高いので、実にさまざまな問題で活用できます!!!」ということらしく、ちゃんと理解しといた方が良さそうだ・・・ということで気を取り直して取り組んでみたところなんとか理解できました。 せっかくなので忘れないうちに解説記事を作って記憶を定着させたいと思います。なお後半の実装パートは、Haskell で実装します。 けんちょんさんの解説記事にあるとおり、この問題 (を全探索で解く場合) の解法のキーになるのは事前に「任意の文字が i 番目以降に出現する位置」を二次

                                                          「競プロ典型 90問」Smallest Subsequence (最小部分列問題)
                                                        • 達人出版会

                                                          探検! Python Flask Robert Picard, 濱野 司(訳) BareMetalで遊ぶ Raspberry Pi 西永俊文 なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 Jesse Storimer, 島田浩二(翻訳), 角谷信太郎(翻訳) 知る、読む、使う! オープンソースライセンス 可知豊 きつねさんでもわかるLLVM 柏木餅子, 風薬 R/RStudioでやさしく学ぶプログラミングとデータ分析 掌田津耶乃 データサイエンティストのための特徴量エンジニアリング Soledad Galli(著), 松田晃一(訳) 実践力をアップする Pythonによるアルゴリズムの教科書 クジラ飛行机 スッキリわかるサーブレット&JSP入門 第4版 国本 大悟(著), 株式会社フレアリンク(監修) 徹底攻略 基本情報技術者教科書 令和6年度 株式会社わくわくスタディワール

                                                            達人出版会
                                                          • Parse, don’t validate

                                                            Historically, I’ve struggled to find a concise, simple way to explain what it means to practice type-driven design. Too often, when someone asks me “How did you come up with this approach?” I find I can’t give them a satisfying answer. I know it didn’t just come to me in a vision—I have an iterative design process that doesn’t require plucking the “right” approach out of thin air—yet I haven’t bee

                                                            • JavaScript で遅延評価を導入して起動を高速化した話

                                                              この記事は、JavaScript で Flash Player の実現を頑張った(もしくは現在進行系で頑張っている)人たちの集う Flash Advent Calendar 2020 に参加しております。 Flash Player を JavaScript で実装していた際に、現場から「起動の高速化」という難しい要求をもらった際、「遅延評価」を導入したところ大変効果がありました。今回、その遅延評価について簡単なご紹介をしたいと思います。 Flash Player 起動までのステップ 当時 Flash Player を JavaScript で提供していた際、当時のスマートフォン端末においてロード完了から最初の画面が出るまで大体 150ms くらいかかっていました。普通の Web ページであれば 150ms はロード時間の中に吸収され許容範囲になる可能性が高いのですが、当時 Flash Pl

                                                              • Markdownで書籍を作るとは - golden-luckyの日記

                                                                昨日まで何回かにわたり、多様なドキュメント形式の変換アプリケーションであるPandocのコアとなる仕組みを説明してきました。 特に、Pandoc構造とそれを生成するReader、生成されたPandoc構造を変換するPandocフィルターについて、少し時間をかけて紹介しました。 では、PandocのReaderとフィルターについて理解したところで、Pandocを使って本は作れるでしょうか? いままでの説明には登場しませんでしたが、Pandocの出力側を担うWriterには、「PDF生成のためのLaTeX Writer」や「EPUB Writer」など、「本」を作るのに使えそうなものがあります。 それらWriterを制御するためのコマンドラインオプションはいろいろ用意されており、独自のテンプレートを指定することも可能です。 ただ正直なところ、これらのWriterは、吊るしの状態では売り物の本を

                                                                  Markdownで書籍を作るとは - golden-luckyの日記
                                                                • paiza、大人気ゲーム「STEINS;GATE(シュタインズ・ゲート)」とコラボしたITエンジニア向けプログラミングゲーム「電脳言語のオルダーソンループ」を本日より無料公開!

                                                                  paiza、大人気ゲーム「STEINS;GATE(シュタインズ・ゲート)」とコラボしたITエンジニア向けプログラミングゲーム「電脳言語のオルダーソンループ」を本日より無料公開! ITエンジニア向け国内最大の転職・就職・学習プラットフォーム「paiza(パイザ)」を運営するpaiza株式会社(本社:東京都港区、代表取締役社長 片山良平)は、本日より、株式会社MAGES.が提供する大人気ゲーム「STEINS;GATE(シュタインズ・ゲート)」とコラボしたプログラミングゲーム「電脳言語のオルダーソンループ」を一般向けに無料公開いたします。 電脳言語のオルダーソンループ:https://paiza.jp/steins_gate ■大人気ゲーム「STEINS;GATE」とpaizaのコラボ「電脳言語のオルダーソンループ」について 「電脳言語のオルダーソンループ」は、プログラミング問題を解いて物語を進

                                                                    paiza、大人気ゲーム「STEINS;GATE(シュタインズ・ゲート)」とコラボしたITエンジニア向けプログラミングゲーム「電脳言語のオルダーソンループ」を本日より無料公開!
                                                                  • Bubble Tea でリッチなターミナルアプリケーションを作る #Go - 詩と創作・思索のひろば

                                                                    近年、普段の作業をマウスでやりたくない気持ちが高まっている(デスク周りが散らかってきたせいだという説が有力です)。メールは結局ターミナルでメールを読むことにしたため問題なく過ごせているが、その他のタスクをキーボードだけでやるには、ターミナル動くアプリケーションを作れる必要がある。それもリッチなやつだ。見た目は派手な方がいい。 この記事は Kyoto.go remote #32 LT会 で発表した 入門 Bubble Tea の増補版です。 Bubble Tea とは GitHub - charmbracelet/bubbletea: A powerful little TUI framework 🏗 Bubble Tea とは、Go でリッチなターミナルアプリケーション(TUI)を作るためのフレームワーク。Charm というプロジェクトの一部のようで、ホームページを見てもらったら分かると

                                                                      Bubble Tea でリッチなターミナルアプリケーションを作る #Go - 詩と創作・思索のひろば
                                                                    • フロントエンドの main() を合成関数として副作用を集約する

                                                                      これは未実装のアイデアを含む記事です。(後述する lint rule が未実装です) 要は EffectSystem を作ろうとしました。 https://www.eff-lang.org/ void に意味を込めたい こういうフロントエンドのコードについて考えてみましょう。 function mount(): void { const div = document.createElement('div'); div.textContent = "hello"; document.body.append(div); } function print(): void { console.log("hello"); } function maybeError(): void { // 低確率で例外が起こる関数 if (Math.random() > 0.999) { throw new Err

                                                                        フロントエンドの main() を合成関数として副作用を集約する
                                                                      • Railsで成功するには、 コンピュータ書鑑賞、本との出会い方【Rubyistめぐりvol.1 takahashimさん】 - STORES Product Blog

                                                                        Rubyist Hotlinksにインスパイアされて始まったRubyistめぐり。第1回は高橋征義さんをゲストに迎えて、お話を聞きました。こちらは後編です。前編はこちら。 Rubyが他の言語に与えた影響 藤村:第2部、高橋さんについて聞いてみようと思います。今更ながらRubyについて聞きたいんですけど、好きな機能とかありますか? 高橋:好きな機能ですか?あんまり機能としてこれというのなくて、全体的に使い勝手がいいですね。まあでも、そういう意味でいえばオープンクラスの方がいいんじゃないの?みたいな感じがしますね。オープンクラスじゃないRubyはつらそうだって。 藤村:確かに。 高橋:つらそうというかつまらなさそうですね。オープンクラスが原因でつらいことになるのはわかるんですけど、でもあれがないんだったら他の言語でもいいよね、って。 藤村:Rubyがああじゃなかったら他の言語は今のようになって

                                                                          Railsで成功するには、 コンピュータ書鑑賞、本との出会い方【Rubyistめぐりvol.1 takahashimさん】 - STORES Product Blog
                                                                        • 『プログラミングHaskell 第2版』の発売を開始しました

                                                                          ご来店ありがとうございます。 ラムダノートでは、Grahum Hutton氏によるプログラミング言語Haskellの定番教科書、 "Programming in Haskell" の改訂にあたる『プログラミングHaskell 第2版』(山本和彦訳)の発売を当直販サイトにて開始いたしました。 『プログラミングHaskell 第2版』(紙書籍+電子書籍)(税別3200円) 『プログラミングHaskell 第2版』(電子書籍のみ)(税別3000円) 「紙書籍+電子書籍」版のお求めでも、「電子書籍のみ」版のお求めでも、いますぐPDFのダウンロードが可能です。紙書籍については、8月22日(木)以降の発送開始を予定しています。書店(オンライン書店を含む)での紙書籍の発売も8月22日以降を予定しております。 なお、直販サイトでのお求めにあたってユーザ登録などは不要です(ただ、ユーザ登録をしていただくと、

                                                                            『プログラミングHaskell 第2版』の発売を開始しました
                                                                          • ユニットテストのための言語設計 - gfnweb

                                                                            ユニットテストとは,おそらくご存知の通り各コンポーネントが単独で操作的に意図通りの振舞いをしているかを具体例により確認する営みである. 「ユニットテストはどのように書かれるべきか」といった議論が為されるとき,もちろん言語横断的な議論が中心となるものの,しばしば特定の計算機言語やその処理系の性質を所与とした議論が含まれやすい.だが,言語仕様や処理系が天から降ってきたものではない以上,原理的にはむしろ言語こそが目的に応じて適切に設計されるべきものだ. したがってここでは,必ずしも明瞭な結論に到達するわけではないものの,「ユニットテストとは普遍的に何をするための仕組みなのか,そしてユニットテストをやりやすく意義のあるものにするためには計算機言語はどんな設計であるべきなのか」ということに関して考え,大枠のアイディアを練ってみたい.ここで触れている内容の一部はおそらくソフトウェア工学の文脈でとっくに

                                                                            • AWSで使うRust

                                                                              κeenです。この記事では IdeinでのAWSの利用例の開示の一環として、どのようにRustをAWS上で動かしているかをご紹介します。 Ideinの提供しているサービスActcastではサーバの主たる部分をRustで書いています。 はじめの頃は本当にRustだけだったのですが、各方面に秀でたメンバーが集まった結果、今ではHaskellやTypeScript、一部ですがGoも動いています。 そもそもRustの採用事例が少ないことからRustをAWSで扱う知見はそこまで多くなさそうです。 そこで今回はIdeinでどのようにAWS上でRustを動かしているか、動かすにあたって必要だった知見などを紹介していきます。 全体像全体の中で、Rustが動いている環境はECSとLambdaです。 ECSで動いているのはActcastのバックエンドAPIで、Actcastのサーバ本体とも言える部分です。 L

                                                                                AWSで使うRust
                                                                              • QUICをゆっくり解説(2):ネゴせよ | IIJ Engineers Blog

                                                                                Haskellコミュニティでは、ネットワーク関連を担当。 4児の父であり、家庭では子供たちと、ジョギング、サッカー、スキー、釣り、クワガタ採集をして過ごす。 QUICへの誘導 前回のブログで、ブラウザが HTTP/3 (HTTP over QUIC) に対応したサーバにアクセスしたときに、最初は HTTP/2 を使い、2回目の通信からHTTP/3を使うようになると説明しました。今回は、この過程でクライアントとサーバが何を折衝しているか、以下の順で解説します。 TLSのバージョン HTTPのバージョン HTTP/2からHTTP/3への誘導 QUICのバージョン TLSのバージョン あるURLで指定されたサーバにクライアントがアクセスすることを考えます。URLは、httpsで始まっていたとしましょう。つまり、TLSの中でHTTPが使われます。現在推奨されているTLSのバージョンは、1.2と1.

                                                                                  QUICをゆっくり解説(2):ネゴせよ | IIJ Engineers Blog
                                                                                • PyCon JP 2019で見たセッションの聴講記録20個分 / 資料・動画・関連リンクなど - フリーランチ食べたい

                                                                                  2019年9月16日/17日に開催されたPyCon JP 2019で自分が直接/YouTubeで聴講したセッションについてのまとめです。主に下記の内容を書いています。 スピーカーURL 配信動画 スライド 発表内で出てきたライブラリなどのURL 自分の感想 「あのセッションで話していたライブラリなんだっけ」と思い出したい方やざっくり内容が知りたい方に読んでいただければ幸いです。PyCon JPに自分も発表者としても参加し、スタッフとして参加し、Webサイトの開発もしたので、それについては改めて書きたいと思います。 pycon.jp PythonとAutoML / 芝田 将 スピーカー: https://twitter.com/c_bata_ 動画: https://www.youtube.com/watch?v=Whkwu46DgBs スライド: https://www.slideshar

                                                                                    PyCon JP 2019で見たセッションの聴講記録20個分 / 資料・動画・関連リンクなど - フリーランチ食べたい