並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 1316件

新着順 人気順

haskellの検索結果241 - 280 件 / 1316件

  • Scalaプログラマが圏論を学ぶためのオススメ文献 - 3選 - Qiita

    圏論は数学の一分野です。これを学ぶのには「数学書」を手に取るのが王道なのですが、残念ながらこれは大部分のプログラマに理解できる言葉では書かれていません。「定義・命題・証明」の積み重ねで書かれています1。ここで大半のScalaプログラマは苦い顔をすると思います。もう少し分かりやすいScalaプログラマ向けの圏論入門がないかと探してみると「Haskell」向けの記事が大量に引っかかるでしょう。ここで多くのScalaプログラマは心を折られてしまいます。「圏論」はまだScalaプログラマには早すぎたんだと・・・ 本記事ではそんなあなたに贈る3つの文献をご紹介したいと思います。 (本記事は自分のブログからの転載記事です。) はじめに 本記事は圏論に興味があるScalaプログラマを対象にしています。特にプログラマにとって実用的な圏論の知識をScalaを通して身につけたい方にオススメします。 プログラマ

      Scalaプログラマが圏論を学ぶためのオススメ文献 - 3選 - Qiita
    • 君の手で作るモナドは怖くない - builderscon tokyo 2019

      Abstract 本セッションの目的は、ずばり モナド (monad) に対する 初心者の心理的障壁を取り除くこと です。モナドはプログラミング言語 Haskell と関連して言及されることが多く、世間では何か得体のしれない難解な概念だというイメージが先行しています。しかし、実際にはどのプログラミング言語にもある「処理」の概念を一般化しただけで、プログラマにとっては顔見知りの相手に過ぎません。 本セッションでは、実際の使用場面から逆算してモナドを再発明することでその必然性を体感し、必要以上に強調された神秘性を引きはがすことを目標とします。受講後には、セッション内で扱わなかった Haskell の基本文法を少し補うことで、モナドを利用した単純なプログラムならすぐに書けるようになるでしょう。 そもそも、なぜモナドや、それを用いる Haskell にはこんなにも怖ろしげなイメージが先行しているの

      • NeoHaskell

        NeoHaskell is a dialect of Haskell that is focused on newcomer-friendliness and productivity. It is designed to be easy to learn and use, while also being powerful enough to release your app with minimum effort and maximum confidence.

          NeoHaskell
        • ユースケース層が投げうるエラーの型を「量化した open union」にしておけば複数のユースケースを合成したときに上の層でエラーハンドリングが楽にできて最高です! - ryota-ka's blog

          この記事は以下のページに移転しました. blog.ryota-ka.me この記事は Haskell Advent Calendar 2020 20日目の記事です. TL; DR タイトル 問題設定 ユースケース層とサーバ層が存在する Web アプリケーションを考える.サーバ層はユースケース層を呼び出すことができるが,ユースケース層はサーバ層について無知でなければならない. +----------------+ | server layer | +-------+--------+ | depends on +-------v--------+ | use case layer | +----------------+ このようなアプリケーションのAPI リクエストハンドラにおいて,複数のユースケースを合成して呼び出すケースを例に挙げ,それぞれのユースケースが投げうるエラーをうまく扱う o

            ユースケース層が投げうるエラーの型を「量化した open union」にしておけば複数のユースケースを合成したときに上の層でエラーハンドリングが楽にできて最高です! - ryota-ka's blog
          • GitHub Actions と hadolint を組み合わせて Dockerfile の静的解析を自動化しよう! - kakakakakku blog

            GitHub Actions と hadolint (Haskell Dockerfile Linter) を組み合わせて,今まで雑に実装してきた Dockerfile の静的解析を自動化する環境を作った.できる限り Dockerfile Best Practices を意識していることもあり,警告はあまり多く出なかったけど,やはり CI (Continuous Integration) で気付ける安心感はある! www.docker.com hadolint (Haskell Dockerfile Linter) hadolint を使うと Dockerfile に警告を出してくれる.また Dockerfile の RUN は,シェルスクリプトの Linter として有名な ShellCheck を使って警告を出してくれる.例えば FROM centos:latest のように FROM

              GitHub Actions と hadolint を組み合わせて Dockerfile の静的解析を自動化しよう! - kakakakakku blog
            • Why Dark didn't choose Rust

              Welcome again HN! Dark is a programming language, structured editor, and infrastructure—all in one—whose goal is to make it 100x easier to build backend services. Check out the website, our What is Dark post, and How Dark deploys in 50ms for more. Thanks for checking us out! This is the third or a 3-part series: Leaving OCaml and Dark's new backend will be in F#. You can enjoy this without reading

                Why Dark didn't choose Rust
              • TypeScriptで型安全性を破壊する方法をまとめたリポジトリを作った

                実用的な静的型付き言語には、たいていの場合危険なことをするバックドアが存在するものですが[1]、TypeScriptには一見してわからない場所にバックドアが存在するという特徴があります。 というわけで、様々な方法でunsafe_cast<T, U>(x: T): Uを書いてみました。便利。 謝辞: テクニックの多くはtkr氏の記事に依っています。 脚注 ScalaのasInstanceOf[T], HaskellのunsafeCoerce, OCamlのObj.magic, ... ↩︎

                  TypeScriptで型安全性を破壊する方法をまとめたリポジトリを作った
                • とほほさんのキーノートに感動、ベストスピーカーに聞く登壇の感想、YAPCはコミュニティが混ざる場。YAPC::Hiroshima 2024 非公式ふりかえり会文字起こしレポート - STORES Product Blog

                  2024年2月13日に『YAPC::Hiroshima 2024 非公式ふりかえり会』を開催しました。イベントでお話した内容を文字起こし形式で紹介します。 hey.connpass.com 登壇者紹介 STORES hogelog:YAPC初参加 ヨヨイ:YAPCは3、4回参加経験あり hiromu:YAPC初参加 藤村:YAPC初参加 えんじぇる:YAPC初参加 スマートバンク 三谷:YAPC初参加、YAPC::Hiroshima 2024でベストスピーカー賞を受賞 nyanco:YAPCスタッフ 前夜祭の感想 hogelog:『YAPC::Hiroshima 2024 非公式ふりかえり会』を始めていきます。ぜひYAPCのスタッフだった方や登壇してた方などなど、喋ってもいいですよという方はぜひ挙手をしていただけると嬉しいです。 本日の登壇者側で喋る人を紹介させていただきます。私はhoge

                    とほほさんのキーノートに感動、ベストスピーカーに聞く登壇の感想、YAPCはコミュニティが混ざる場。YAPC::Hiroshima 2024 非公式ふりかえり会文字起こしレポート - STORES Product Blog
                  • Interview with Ryan Dahl, Node.js & Deno creator by Evrone

                    In an interview with Evrone, Ryan Dahl speaks about the main challenges in Deno, the future of JavaScript and TypeScript, and tells how he would have changed his approach to Node.js if he could travel back in time. Introduction Ryan Dahl is a software engineer and the original developer of the Node.js, and the Deno JavaScript and TypeScript runtime. We are glad to have had an opportunity to speak

                      Interview with Ryan Dahl, Node.js & Deno creator by Evrone
                    • mrubyを通じてWebAssemblyの未来を想う~新しいウェブサービスの開発課程にて | IIJ Engineers Blog

                      日本Haskellユーザーグループ(愛称 Haskell-jp)発起人の一人にして、Haskell-jpで一番のおしゃべり。 HaskellとWebAssemblyとプリキュアとポムポムプリンをこよなく愛する。 こんにちは。ブラウザ外のWebAssemblyに関心が偏りすぎて、ブラウザにおけるWebAssemblyについて聞かれると戸惑うことが多い山本悠滋です。普段はIIJ-IIの技術開発室という部署で、IIJ本体をサポートするための開発をいろいろ行ったり、WebAssemblyを応用した新しいウェブサービスの開発に取り組んでいます。 今回は、開発している「WebAssemblyを応用した新しいウェブサービス」のサンプルとして、mrubyのインタープリタをWASIに準拠したWebAssemblyファイルにコンパイルするまでの課程や、それを通じてわかった、今のWebAssemblyに足りない

                        mrubyを通じてWebAssemblyの未来を想う~新しいウェブサービスの開発課程にて | IIJ Engineers Blog
                      • 競技プログラミングでCommon Lispを使っている人とこれから使うかもしれない人のために - Qiita

                        表題の通り、競技プログラミングに参加しているLisperとこれから参加するかもしれないLisperのために、必要な情報を一通りまとめています。 コンテストサイトの選択 AtCoderではCommon Lispが使えますし、CLで投稿できる大手コンテストサイトはyukicoderやCS Academyなど他にもいくつかあります。日本語の問題文があって運営の質が高くてコンテストが頻繁に開催されていて……というような点を考えていくと、競プロに興味を持った日本語圏のLisperにとってAtCoderは第一の選択肢といってよいでしょう。第二はyukicoderです。以下の解説は、特に断りがなければAtCoderを前提にしています。 Lispで競プロすることについて 本題ではありませんが、セクションを立てて言及しておくことにします。というのも、競技プログラミングに熱心なLisperはほぼ皆無に見えるか

                          競技プログラミングでCommon Lispを使っている人とこれから使うかもしれない人のために - Qiita
                        • Haskellプロジェクトのベストプラクティス

                          Haskellプロジェクトの「良い習慣」と考えられるやつをまとめてみます。あくまで私の個人的な意見です。 プロジェクト固有のPrelude Prelude に相当するモジュールをプロジェクト独自に持っておくと便利ではないか、という話をします。代替Preludeの話ではありません。 プロジェクト固有のPreludeがあると便利な理由 理由の一つは、標準 Prelude の変化です。直近では次のような変化がありました: GHC 9.4: ~ 型演算子が追加(これまでは構文だった) GHC 9.6: liftA2 が追加 GHC 9.10(見込み): foldl' が追加 もっと昔に遡ると、Semigroup((<>)) が増えるやつなどがありました。 この帰結として、 新しいGHCで名前の衝突が起きやすくなる 新しいGHCで「冗長なインポート」の警告が出やすくなる ことが言えます。これらの問題

                            Haskellプロジェクトのベストプラクティス
                          • HERP における Web フロントエンド開発概観 (2022年春編)

                            はじめに# この記事は,HERP における Web フロントエンド開発の概観を,世間の開発者に——特に潜在的・顕在的な候補者の方に——知ってもらうことを目的として書かれた.HERP では現在 Web フロントエンドエンジニアを積極的に募集しているが,仮に入社したとしてどのような仕事をすることになるかのイメージが付いた方が,検討の候補に入れてもらいやすいのではないかという目論見による.また,採用している技術スタックにも珍しいものがあるため,単純に読み物として楽しめるかもしれない.なお,開発の実情について知ってもらうのが目的であり,実装の良し悪しについて議論することは目的としていない. HERP でのアプリケーション開発# B2B SaaS として,主に IT スタートアップ企業向けの,採用管理システムおよびタレントプールシステムを開発・提供している. そもそもプロダクトを通じて何を実現したい

                            • Interesting Programming Languages

                              An opinionated collection of programming languages. This is a list of what I consider interesting. Requests to add to this list are welcome, but there is no guarantee I’ll include them. As you can see many mainstream programming languages are misssing from this list. Alore is a language that explores optional typing in a Python-like programming language.Alpaca is a statically typed, strict/eagerly

                              • Meta(旧Facebook)が大規模向けのビルドシステム「Buck2」をオープンソースで公開。高速かつ高信頼で拡張可能なビルドシステム

                                Meta(旧Facebook)が大規模向けのビルドシステム「Buck2」をオープンソースで公開。高速かつ高信頼で拡張可能なビルドシステム Buck2は同社内で数千人のエンジニアに使われており、1日あたり数百万回のビルドを実行していると説明されています。 Rustで開発したことによりビルドの速度が約2倍に Metaは2013年にBuck2の前身となるビルドシステムの「Buck」をオープンソースで公開しています。BuckはJavaで開発されています。 Buck2は、新規にRust言語で開発されたことでガベージコレクションによる処理の一時停止などが避けられたため、より高速なビルドの実行が可能になっています。Meta社内ではBuckと比較して約2倍高速になったとのことです(ただしJavaは優れたメモリプロファイリングツールなどの優位点があると、フォローもしています)。 また、Buckではリモートで

                                  Meta(旧Facebook)が大規模向けのビルドシステム「Buck2」をオープンソースで公開。高速かつ高信頼で拡張可能なビルドシステム
                                • WebAssembly backend merged into GHC

                                  Tweag has been working on a GHC WebAssembly backend for some time. Recently, the WebAssembly backend merge request has landed in GHC, and is on course to appear in the upcoming 9.6 release series. This post will give a quick demonstration of how to try it out locally, and explain what comes in this patch and what will be coming next. Playing with WASM locally If you’re using nix on x86_64-linux, c

                                    WebAssembly backend merged into GHC
                                  • Algorithm Design with Haskellでアルゴリズムを学ぶ - 朝日ネット 技術者ブログ

                                    はじめに 開発部のcbmkageです。 仕事でプログラムを書いていると、どうしたら期待通りに、かつ高速に動作するアルゴリズムが実装できるか、考えることがあります。 本記事では、アルゴリズムについて新たな視点を与えてくれる本「Algorithm Design with Haskell」を紹介します。 本記事はHaskell中級者向けです。Haskellの文法や、代表的なリスト操作関数を知っていることを前提としています。 はじめに Algorithm Design with Haskellとは 準備: 関数の同値関係 貪欲アルゴリズムのPART紹介 貪欲アルゴリズムとは 候補の生成と選択 貪欲アルゴリズムへの改善 まとめ 採用情報 Algorithm Design with Haskellとは Algorithm Design with Haskell 作者:Bird, Richard,Gib

                                      Algorithm Design with Haskellでアルゴリズムを学ぶ - 朝日ネット 技術者ブログ
                                    • Canarytokensサービスを試してみた - こんとろーるしーこんとろーるぶい

                                      ある調べものをしていたところ、Canarytokensというサービスがあることを知った。 canarytokens.org Canarytokensはカナリアトークンを生成するサービスであり、無料で利用できるほか、githubでソースコードやDockerfileが公開されているため自分でサービス稼働環境を構築できる。カナリアトークンとはターゲット(被害者)がWebページ、電子メール、ファイルなどのリソースにアクセスする操作をしたときに、そのアクセスした事実やターゲットの環境情報(IPアドレス、UserAgent、ユーザ名など)を攻撃者に通知するための仕掛けである。 このサービスを知った時は、アクセス解析で使われるようなWebページに極小の透明画像やiframeを埋め込むような方式を想像したが、ドキュメントを読んでいると他にも様々な方式をサポートしていることがわかった。そこで、実際にどういっ

                                        Canarytokensサービスを試してみた - こんとろーるしーこんとろーるぶい
                                      • Advancing Excel as a programming language with Andy Gordon and Simon Peyton Jones - Microsoft Research

                                        Episode 120 | May 5, 2021 Today, people around the globe—from teachers to small-business owners to finance executives—use Microsoft Excel to make sense of the information that occupies their respective worlds, and whether they realize it or not, in doing so, they’re taking on the role of programmer. In this episode, Senior Principal Research Manager Andy Gordon, who leads the Calc Intelligence tea

                                          Advancing Excel as a programming language with Andy Gordon and Simon Peyton Jones - Microsoft Research
                                        • 関数型プログラミングを学んで見解を示す for javascript - Qiita

                                          関数型プログラミングを silver の bullet としてなりふり構わず振り回していましたが、 ちょっと真面目に学ぶ機会を設けてみました。 関数型プログラミング(Functional Programming)を学んだ参考書の紹介と 私の浅い見解についてまとめていきます。 参考書のご紹介 Functional-Light-JS 筆者曰く、筆者の数学的知識は一般レベル、Scheme/Clojure/Haskell は未経験。 そのため関数型本来の意味や各用語の学術的な意味合い等は記載しておらず、 実用的なアプローチと共にお送りする文書とのこと。 いわゆるボトムアップ。 functional-programming-jargon こちらは打って変わって関数型に関する jargon についてまとめています。 1 番ありきでこちらを付加資料として読むと見識が深まるかと思います。 いわゆるトップダ

                                            関数型プログラミングを学んで見解を示す for javascript - Qiita
                                          • 究極の?トランザクションスクリプト用言語Verse | フューチャー技術ブログ

                                            Unreal Engineで有名なEpic Gamesが、現在開催中のGDC(Game Developer Conference)でVerseの詳細を解説しており、その動画が公開されています。 ドキュメントもすでに公開されています。 https://dev.epicgames.com/documentation/en-us/uefn/verse-language-reference 現在処理系は、Unreal Editor for Fortnite(UEFN)の中に組み込まれているようですが、Windowsにしか対応していません。ちょろっと動かした程度で、まだコードをしっかり書いてはなくて、プレゼンを見た感想で書いているので、いろいろ間違ったところとかもあるかもしれませんが、そういうのはご指摘いただいたり、Pull Request(ブログの上の鉛筆アイコンで送れます)を出してもらえれば、と

                                              究極の?トランザクションスクリプト用言語Verse | フューチャー技術ブログ
                                            • GHCのIOマネージャの歴史と僕の苦悩 - あどけない話

                                              これは、Haskell Advent Calendar 2021 の8日目の記事です。 Haskellのコンパイラとして事実上一択となったGHCには、「軽量スレッド」が実装されています。軽量スレッドは、ネイティブスレッドよりも軽量なスレッドで、他の言語では「グリーンスレッド」とも呼ばれています。Haskellerが並行プログラミングをするときは、軽量スレッドを息を吸うかのように使います。 複数の軽量スレッドの入出力を束ねるのが、IOマネージャです。IOマネージャも単なる軽量スレッドであり、OSから入出力のイベントを受け取り、それぞれの軽量スレッドにイベントを通知します。 軽量スレッド(っぽい)機能を提供する他の言語では、GHCのIOマネージャを参考にしているようです。僕はIOマネージャの開発に深く関わっています。この記事ではIOマネージャの歴史をまとめるとともに、主にmacOSでの実装に関

                                                GHCのIOマネージャの歴史と僕の苦悩 - あどけない話
                                              • NestJSのススメ ~Expressを超えてゆけ~ - Qiita

                                                この記事は、今年イチ!お勧めしたいテクニック by ゆめみ feat.やめ太郎 Advent Calendar 2019 23日目の記事です。 導入 皆さんこんにちは。らいパン粉という者です。twitter→https://twitter.com/elipmoc101 さて、皆さんはバックエンドのプログラミング言語に何を選ぶでしょうか。 PHP?Ruby?JavaScript(Node.js)? それともElixir、Scala、Go、Rust、Haskell等でしょうか。Coolですね。 最近、フロントエンドではTypeScriptが有名です。 この際、バックエンドもフロントエンドもTypeScriptでサクッと開発してみたいと思いません?僕は思いませんけど。(Ebio Syntax) そんなわけで、TypeScriptでサクッとバックエンド開発ができるNestJSを紹介していきます。

                                                  NestJSのススメ ~Expressを超えてゆけ~ - Qiita
                                                • UoPeopleでComparative Programming Languages(プログラミング言語比較論)を修了した - えんぴつぶろぐ

                                                  オンライン大学 University of the People でComparative Programming Languages (CS4402) を修了したのでその感想を書きます。 これまでのUoPeople関連の記事はこちら: UoPeople カテゴリーの記事一覧 - えんぴつぶろぐ はじめに プログラミング言語のパラダイムの変化を追いながら、命令型言語と非命令言語(関数型や論理型など)の特徴を学び比較を行うコースです。 各言語の歴史や特徴だけでなく、コンピューターシステムのアーキテクチャやコンパイルの仕組みなども触れるので、今までのCS系コースの総復習的な内容だと感じました。 #UoPeople プログラミング言語比較論(#CS2204)の感想。 言語の比較だけじゃなく今までのCS系コースの総復習的な内容だった。 ノイマンアーキテクチャ、チューリングチャーチ理論から始まるプロ

                                                    UoPeopleでComparative Programming Languages(プログラミング言語比較論)を修了した - えんぴつぶろぐ
                                                  • Elm at Rakuten

                                                    lucamug Posted on Jan 25, 2021 • Updated on Mar 4, 2023 • Originally published at engineering.rakuten.today In our team at Rakuten, we have been using Elm1 in production for almost two years now. This post is about our story, the lessons we learned, and our likes and dislikes. This post is quite long so if you prefer to see an overview, feel free to jump to the index. Everything started in the Ber

                                                      Elm at Rakuten
                                                    • 私がエンジニア向け編集者になるまで - kondoyukoの踊る編集室

                                                      こんにちは、近藤佑子(@kondoyuko)です。 渋谷のIT企業4社が主催するカンファレンス「BIT VALLEY 2021」において、「私たちがエンジニアになるまで」というセッションでモデレーターを担当しました。 このセッションの企画のもとになった「1人の女性がエンジニアになるまで」という記事は、自分はこれまでどのように生きてきたんだろうと、ふりかえりたくなる内容だなと思います。 note.com 最近思うのは「いかにして楽しく働けるだろうか」ということ。そのためには自分がどうなりたいのかをイメージすることが大事だと、いろんな人の話や本を読むなどして理解しているけど、それは、結局は自分自身で作っていかないといけない。雷に打たれるような使命感はどこにあるんだろう? それは過去の自分にあるんじゃないか? と考えました。今の仕事面の価値観に影響してそうな部分を書いてきたつもりでしたが、130

                                                        私がエンジニア向け編集者になるまで - kondoyukoの踊る編集室
                                                      • ZodでAlways-Valid Domain Modelを実現する

                                                        課題意識 特定の商品を数量を指定して購入できるECサービスのドメインモデルを表現とします。TypeScriptで構築する際に、「数量」を単にnumber型で扱うことは可能ですが、よりロバストな設計を目指す上で以下の2つの方法論があります。 Refinements(値の制約を表す): 「数量」は一般的に自然数です。1度の注文で指定できる上限を設けるビジネスルールがあると仮定します。この場合、number型に「自然数」「上限付き」の制約を加えた値として表現します。 Branded Types: (同じ構造の型を区別する): 「価格」などの他のnumber型と混同されないように、これらの数値を型レベルで区別したいです。JavaやC#に見られる公称型の概念をTypeScriptで模倣するBranded Typesのテクニックを用いることで、これらの誤った利用を型システムで防ぐことができます。 Br

                                                          ZodでAlways-Valid Domain Modelを実現する
                                                        • PHPやNode.jsなどに任意コマンド実行の脆弱性、原因はWindows仕様の理解不足

                                                          多くのプログラミング言語の処理系に、攻撃者が任意のコマンドを実行できる深刻な脆弱性が見つかった。JPCERTコーディネーションセンター(JPCERT/CC)と情報処理推進機構(IPA)が共同運営する脆弱性対策情報ポータルサイト「JVN(Japan Vulnerability Notes)」で2024年4月15日に公開された。 脆弱性が確認されたのは「PHP」「Rust」「Haskell」の各言語処理系とJavaScript/TypeScriptの処理系「Node.js」、音声や動画をダウンロードできる高機能なコマンド「yt-dlp」である。ただし、この脆弱性の影響を受けるOSはWindowsだけで、LinuxやmacOSなどの他のOSには影響しない。 多くのプログラミング言語は、プログラムの中からOS上でコマンドを実行する機能を持つ。Windowsでは言語処理系が「CreateProces

                                                            PHPやNode.jsなどに任意コマンド実行の脆弱性、原因はWindows仕様の理解不足
                                                          • 遅延評価でデバッグが困難になる状況

                                                            先日、Haskell 界隈で遅延評価によってデバッグがし辛いのはどんな時かと言う話があった。見た感じ、遅延評価によってデバッグのしにくさはそんなに変わらないと言う意見が結構あり、個人的には衝撃だった。僕自身は遅延評価にだいぶヘイトを溜めてる人なので、どういう状況でデフォルト遅延評価が嫌かを実感できる問題を作った。この問題を解けば、きっとヘイトを共有できるはずってわけ。一緒に地獄に落ちような。 なお、かなり主観に寄っていて、結構書き殴ってる部分が多いので、厳密な議論をするにはあまり良い例ではないかもしれない。個人的には、備忘録的な意味合いも強くて、今まで詰まったやつをまとめておくかみたいな感じでもある。 先に結論を書いておくと、 プログラム自体が大きくて [1] 複雑な制御構造をしていて (optional) 以下のいずれかの条件を満たす 遅延評価を機能として使っている デバッグ対象が効率に

                                                              遅延評価でデバッグが困難になる状況
                                                            • R50のリープフロッグ ~ 西暦2020年の今、偏差値50のプログラマを目指すお前が学ぶべきこと - Qiita

                                                              タイムスタンプ 初回投稿日:2020年06月26日 最終更新日:2020年07月18日 対象読者 この投稿は、ちょうど20年ほど前にソフトウェアエンジニアとしてのピークを迎えていた当時30歳くらいの自分自身に宛てて書いた手紙です。 したがって、この内容は個人的なものであり、くたびれた老兵の戯言であり、ピントがずれ時代を捉えきれておらず、網羅的でもなければ他者には通じないアナロジーに溢れていて、多くの方にとって役に立たないばかりか、酷い勘違いや致命的な間違いを含んでいるかもしれません。 とは言うものの、現在の私のように、今もなお 20 年前の知見や思考パターンが生活のベースになっている方、新しい知識や用語は押さえているもののそれが今一つ自身の血肉になっていないと感じている方、最近の技術トレンドを押さえたいけれど情報の洪水に溺れそうになり何から手を付ければいいかわからないという方にとっては、あ

                                                                R50のリープフロッグ ~ 西暦2020年の今、偏差値50のプログラマを目指すお前が学ぶべきこと - Qiita
                                                              • 技術書典を応援してラムダノートの電子書籍を半額で手に入れよう!(キャンペーンのお知らせ)

                                                                いつもご来店ありがとうございます。 2020年2月29日(土)と3月1日(日)の2日間、ラムダノートの電子書籍の全タイトルを対象としたセールを実施します。 3/2 追記:セールは終了しました。ありがとうございました。 今回のセールは、両日に予定されていた技術書典8の中止をうけて開催するものです。 技術書典8を企画し準備されてきた運営の皆さまには、中止にあたり本当に大きな負担がかかっていることと思います。 そこで今回のセールでは、その売上の一部を、技術書典運営事務局への金銭的な支援にあてさせていただくことにしました! セールの概要は以下の通りです。 『n月刊ラムダノート電子版』を同時に購入すると、電子書籍がすべてどれか1冊半額に!(2/29 7:19修正) 購入金額のうち『n月刊ラムダノート電子版』の分が、すべて技術書典運営へのカンパに! n月刊ラムダノート1冊につき他の電子書籍1冊が半額に

                                                                  技術書典を応援してラムダノートの電子書籍を半額で手に入れよう!(キャンペーンのお知らせ)
                                                                • Go vs Rust: Writing a CLI tool - cuchi.me

                                                                  Home > Posts > Go vs Rust: Writing a CLI tool Published at Jul 14th, 2020 Last updated at Aug 4th, 2020 This text is about my adventure writing a small CLI application (twice) using two languages I had little experience with. If you are eager to jump right into the code and compare it yourself, check it out the Go source and the Rust source. About the Project I have a pet project called Hashtrack,

                                                                  • 競技プログラミングの問題を自動で解きたい - うさぎ小屋

                                                                    TL;DR 問い「競技プログラミングの問題は自動で解けるか?」 答え「ある程度は自動で解けるだろう。ただし問題の形式化を人間に任せる必要はある」 問い’「競技プログラミングの問題を自動で解くソルバは、具体的にはどのような形になるか?」 答え’「少なくとも初期のソルバは、最適化付きのトランスパイラと呼ばれるものになるだろう」 このような議論に従い、競技プログラミングの問題の実用的なソルバとして、Python から C++ への最適化付きトランスパイラを開発している。 目次 TL;DR 目次 競技プログラミングの問題を解くとはどういうことか 競技プログラミングのソルバは形式化を人間に任せることになるだろう 競技プログラミングの問題を自動で解くことは不可能ではない 具体例 1 具体例 2 競技プログラミングのソルバは (初めは) トランスパイラの形がよいだろう 競技プログラミングのソルバは (近

                                                                    • x87 FPUの呪い - Qiita

                                                                      それぞれの説明はこんな感じである: X: Infinity Control 無限大の符号の扱いを変える設定だったらしい。IEEE 754が標準化される前の痕跡で、387以降は意味を持たない。 RC: Rounding Control 丸め方法を指定する。 00B: Round to nearest (even) 01B: Round down (toward $-\infty$) 10B: Round up (toward $+\infty$) 11B: Round toward zero (Truncate) PC: Precision Control 演算結果の仮数部の精度を指定する。 00B: Signle Precision (24 bits) 01B: Reserved 10B: Double Precision (53 bits) 11B: Double Extended Pr

                                                                        x87 FPUの呪い - Qiita
                                                                      • 技術書典7落選特別直販セール開催(本日のみ電子版全商品50%オフ)

                                                                        ご来店ありがとうございます。 本日、2019年9月22日は、池袋サンシャインシティにて技術書典7が開催されています。ラムダノートは残念ながら抽選に落選してしまい、技術書典7へは出店しておりませんが、技術書典の最中でも直販サイトに来店くださる方への感謝の気持ちを込めて、本日限定でタイムセールを実施します。対象商品は以下のタイトルの電子書籍です。すべて今だけ50%オフにてお買い求めいただけます。 本セールは終了いたしました。たくさんのご利用ありがとうございました。 『n月刊ラムダノート Vol.1, No.2』(収録記事:LISP 1.5の風景、計算機科学から見たディープラーニング、 Q#で始める量子プログラミング) 『n月刊ラムダノート Vol.1, No.1』(収録記事:TCPの再送制御機構、「 コルーチン」とは何だったのか?、MLOps の歩き方) 『プログラミングHaskell 第2版

                                                                          技術書典7落選特別直販セール開催(本日のみ電子版全商品50%オフ)
                                                                        • 「モノイド」マジックでRubyとRailsをパワーアップしよう(翻訳)|TechRacho by BPS株式会社

                                                                          概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Deeper Magics: Monoids in Ruby and Rails - DEV Community 原文公開日: 2019/11/01 著者: Brandon Weaver -- RubyとJavaScriptとキツネザルと言葉遊びを愛しています。 日本語タイトルは内容に即したものにしました。 自分たちが今本当に欲しかったもの Rubyには、オブジェクト指向プログラミング由来でないさまざまなパターンもあります。関数型の世界からやってきたパターンもあれば、面白いことに、おそらくまったくそれと気づかずに既に使っているパターンもあります。 今そうしたパターンを学ぶ理由は何でしょう?パターンの名前はそれだけで強力ですし、それらのコンセプトを認識すれば、より強力で素晴らしい抽象化を構築できるようになります。 その中でも特に最近

                                                                            「モノイド」マジックでRubyとRailsをパワーアップしよう(翻訳)|TechRacho by BPS株式会社
                                                                          • グラフからコミュニティ構造を抽出する 〜リッチフローによるグラフの時間発展〜

                                                                            コミュニティ抽出とは簡単に言えばグラフにおけるノードのクラスタリング手法です。具体的なアルゴリズムとしてはGirvan–Newman法をはじめ様々なアルゴリズムが存在しますが、この記事では去年(2019年)提案された新しい手法について解説したいと思います[1]。 [1907.03993] Community Detection on Networks with Ricci Flow 話の元になっているのはこちらの論文で、グラフをリッチフローによって変形し、伸びたエッジを切断していくことでクラスタを求めるというアルゴリズムです。リッチフローという聞き慣れない言葉が出てきましたが、ちゃんと後で説明するので気にせず進めましょう。 まずは実際にグラフのクラスタリングを行う様子をアニメーションで見てみてください。 アルゴリズム自体はそれほど難しくありませんが、背景を含めて理解するためには2つの理論

                                                                              グラフからコミュニティ構造を抽出する 〜リッチフローによるグラフの時間発展〜
                                                                            • From Rust to TypeScript | valand.dev

                                                                              Edits: HN discussion here: https://news.ycombinator.com/item?id=24453007#24454277. Thank you HN folks for the corrections, kind responses, and insightful discussion. *fixes in Getting Rid of Exceptions snippet 1. I was introduced to Rust in 2018 and has been enamored since. Rust is a system programming language, much like C++. Unlike C++ though, being relatively new, its language design is more mo

                                                                              • Rustでのモデル駆動設計について - Chatwork Creator's Note

                                                                                こんにちはかとじゅんです。 この記事は、ドメイン駆動設計 Advent Calendar 2020の23日目の記事です1。DDDというよりRustの記事になってしまった…。 Rustの勉強を始めたのは2017年あたりと古いのですがなかなか身が入らず、本腰入れたのは今年の11月ぐらいでした(遅ッ。Scalaで実装してたライブラリをRustに書き換えたおかげでようやく開眼しました2。 というわけで、今回は完全趣味の領域であるRustでドメインモデルをどう実装すればいいのかについて、僕の意見やアイデアなど雑にまとめてみたいと思います。まぁこれについてもいろんな観点がありますが、値オブジェクトやエンティティを実装するならという観点です。 ※あ、Rustの所有権システムなどの言語仕様については細かく触れないので、各位適宜正しい情報源を参照してください。 構造体とメソッド 見慣れた(見飽きた)銀行口座

                                                                                  Rustでのモデル駆動設計について - Chatwork Creator's Note
                                                                                • Visitor pattern in TypeScript

                                                                                  Visitor pattern in TypeScript Imagine that you are writing a program that can draw different shapes: circles, triangles, squares, etc. You represent them by corresponding data types. Depending on a language you use, these shapes become distinct classes, structs, members of an enum or parts of some algebraic data type. Because you also want to be able to do something with these shapes, you describe

                                                                                    Visitor pattern in TypeScript