並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 1316件

新着順 人気順

haskellの検索結果81 - 120 件 / 1316件

  • 私とテストと自動化と - あどけない話

    何度か講演でこの話をしたのだが、気が向いたのでエッセンスを書き下しておこうと思う。 テスト駆動という言葉が流行る前にプログラマとなった私は、当初どのようにテストを書いてよいのか分からなかった。そんなとき、(当時はオーム社で現在はラムダノートの)鹿野さんから「ビューティフルコード」を献本していただいた。分厚い本なので、興味ある章から読んでいった。その一つがアルベルト・サボイア氏が書いた7章「ビューティフル・テスト」だ。 ビューティフルコード (THEORY/IN/PRACTICE) 作者:Brian Kernighan,Jon Bentley,まつもとゆきひろオライリージャパンAmazon この章では、例として二分探索が取り上げられる。二分探索のアイディアが出されたのは1946年だが、バグのない実装ができたのは12年後だという。実際に実装してみると分かるが、ソートされた配列の中に目的の要素が

      私とテストと自動化と - あどけない話
    • ChatGPTはプログラミング言語マスター(語弊ありまくり) - kmizuの日記

      皆さんおはようございます。見ている人は見ていたかもしれませんが、昨夜はかなり遅くまで巷で話題沸騰のChatGPTによくわからんクエリを投げて、その結果をみてげらげら笑っていました。特に存在しないプログラミング言語であり「ScalaにHaskellと同じ型推論を加えた」言語Scalayがあることにしたら、ChatGPTが本当にHaskellぽい(単なるHMでなく、Haskellぽいというのは型クラスまで推論される辺り)型推論を持つ架空のScalayコードを解釈実行してくれたりしたところは、控えめに言っても予想外の結果で深夜なのに部屋で忍び笑いをしていました。 Scalaに引数の型推論を追加したようなパチもんのプログラミング言語Scalay(仮)ができてしまった(ChatGPTと対話してる間だけの短い命)。 一応、add: (Int, Int) => Int が推論されてるのすばらですね。 p

        ChatGPTはプログラミング言語マスター(語弊ありまくり) - kmizuの日記
      • プログラミングの仕組みを理解する方法 - JavaScript勉強会

        この記事は、プログラミングの専門教育(大学のコンピューターサイエンスなど)を受けておらず、独学でプログラミングを学習している方へ贈るアドバイスです。 =タイムマシンがあったら、過去の自分に会いに行って教えたい話です。 (自分で自分に話しかけるつもりで書いてみますw) プログラミング言語はひとつマスターすれば他もできる? - t-hom’s diary [プログラミング] [設計] [教育] プログラミングパラダイムは(1)命令型(チューリングマシン)、(2)宣言型(ラムダ計算)に大別される。両方理解したら全部カバーできる。言語は開発の背景(動機、歴史)を知るとなじみやすい。例:JSはScheme+Selfで誕生 2019/09/16 06:49 b.hatena.ne.jp ↑はてなブックマークでこの記事が目にとまりました。 なるほどと思いつつ、自分なりに考えてみたことをメモ。 勉強のコツ

          プログラミングの仕組みを理解する方法 - JavaScript勉強会
        • Ruby に Software Transactional Memory (STM) を入れようと思った話 - クックパッド開発者ブログ

          技術部でRubyインタプリタの開発をしている笹田です。コロナの影響で、リモート勤務などに移行し、新しい生活スタイルを満喫されている方々がたくさんいらっしゃるんじゃないかと思います。ただ、私は以前から自主的に自宅勤務することが多かったので、正直生活がぜんぜん変わっていません。 さて、家で私が何をしているかというと、Ruby 3の準備です。その中でも、数年取り組んできた Ruby で並列処理をするための仕組みである Ractor の開発をしています(以前は Guild というコードネームで呼んでいました)。Ractor という名前は、Ruby の Actor みたいな意味で付けました。Erlang とか Elixir で有名な Actor model というアレです。厳密には、Actor model でよく言われる特性をすべて備えているわけではないのですが、並列で動く Ractor を複数作る

            Ruby に Software Transactional Memory (STM) を入れようと思った話 - クックパッド開発者ブログ
          • 【第5回】「型」はウェブシステム開発に「エンドゲーム」をもたらすか | GeeklyMedia(ギークリーメディア) | Geekly(ギークリー) IT・Web・ゲーム業界専門の人材紹介会社

            伊藤直也さんが「今逢いたい」ソフトウェアエンジニアに声をかけて対談を重ねてきたシリーズの最終回は、これまでの対談の文章化を手がけたラムダノート株式会社の鹿野桂一郎さんとの異色対談です。コンピュータ技術書や記事の編集者であると同時に仕事や趣味でHaskellのプログラムも書く鹿野さんの視点を通し、現代のウェブシステム開発に伊藤さんが何を見ているのか、特に「型」と「エンジニアの学び」というこれまでの対談に通底するテーマについて掘り下げます。 ・伊藤 直也さん / 株式会社 一休 執行役員 CTO 新卒入社したニフティ株式会社でブログサービス「ココログ」を立ち上げ、CTOを務めた株式会社はてなでは「はてなブックマーク」などの開発を主導。グリー株式会社では統括部長としてSNSを担当した。2016年4月、一休に入社し執行役員CTOに就任。 ・鹿野 桂一郎さん / ラムダノート株式会社 代表取締役社長

            • Erlangについて思うところ

              職場の今までいた部署が潰れてしまったので、新しい部署で仕事のためにErlangを学んでいる。基礎的な文法については学び終わったので、現時点でのErlangについての雑感を書いておこうと思う。 Erlangは多数派のプログラミング言語とはだいぶ違う文法を持っている。終端記号がドットであることもそうだが、比較演算子もだいぶ違っている。多くの言語が!=を使うなか、Erlangは/=を使っている。Less than or equal toが=<であるのも多数派とは異なっている。ただし、Greater than or equal toは>=だ。一貫性がない。 終端文字はドットだが、関数の中には一つの式しか書くことができない。式はカンマで区切ることができるので、以下のようになる。 func() -> expr1 , % カンマ expr2 , % カンマ expr3 . % ドット このような文法はリ

              • 超関数型プログラミング

                この記事はFOLIO Advent Calendar 2022の23日目です。 ソフトウェア2.0 ソフトウェア2.0 という新しいプログラミングのパラダイムがあります。これは Tesla 社のAIのシニアディレクターだった Andrej Karpathy が自身のブログ記事("Software 2.0")で提唱した概念で、 ニューラルネットワーク のような最適化を伴うプログラムを例に説明されています。 従来のプログラム(Software 1.0)は人間が命令に基づいたプログラムを作成し、望ましい挙動を行わせます。それに対してニューラルネットワークのようなプログラム(Software 2.0)では人間はある程度の自由度をパラメータという形で残したプログラムを作成し、「入出力のペア」や「囲碁に勝つ」というような教師データや目的を与えてプログラムを探索させるというものです。 画像出典: "So

                  超関数型プログラミング
                • なぜReactでもVueでもなくElmを使っているのか - Qiita

                  Functional-Static-Strong-Managed −0.25 (0.04) ∗∗∗ Functional-Dynamic-Strong-Managed −0.17 (0.04) ∗∗∗ Proc-Static-Strong-Managed − 0.06 (0.03) ∗ Script-Dynamic-Strong-Managed 0.001 (0.03) Script-Dynamic-Weak-Managed 0.04 (0.02) ∗ Proc-Static-Weak-Unmanaged 0.14 (0.02) ∗∗∗ 各カテゴリに属する言語は以下のとおりです。 Functional-Static-Strong-Managed: Haskell、Scala Functional-Dynamic-Strong-Managed: Clojure、Erlang Proc-Sta

                    なぜReactでもVueでもなくElmを使っているのか - Qiita
                  • Rust vs. Haskell

                    Rust and Haskell don’t shy away from powerful features. As a result, both languages have steep learning curves when compared with other languages. Trying to learn Rust or Haskell can be frustrating, especially in the first couple of months. But if you already know Rust, you have a head start with Haskell; and vice versa. In this article, we want to show how knowledge of one of these languages can

                      Rust vs. Haskell
                    • とほほのWWW入門

                      はじめに ご使用上の注意 (1) 主な更新履歴 (24) 管理者へのメール (1) 自己紹介 (1) 基本編 用語集 (82) Webページ作成入門 (7) 逆引きリファレンス (32) フォーマット HTML (400) HTML5 (7) XHTML (1) MathML (1) DTD (1) JSON (1) SVG (1) VML (1) GIF (1) CSV (1) セマンティック・ウェブ (1) CSS CSS (ABC順)(719) Bootstrap (61) Less (1) Sass (1) Tailwind CSS (1) CSSフレームワーク (1) リセットCSS (1) プログラミング言語 JavaScript (39) TypeScript (1) Java (25) Perl (4) PHP (14) Ruby (11) Python (13) Go (

                      • HaskellとRustを足して2で割ったような関数型言語Fixを作っている話 - Qiita

                        はじめに ここ1年ぐらいかけて、Fixという名前のプログラミング言語を作っています。 コアとなる機能の実装がある程度落ち着き、実際にFixを使ってプログラムを書けるようになってきたので、そろそろ言語の紹介をしてみようと思います。 本記事はFixのチュートリアルではなく、どういう思想で設計されていて、どういう特徴を持つ言語なのか、という点を紹介するものです。 意見・提案・助言などをいただけるとうれしいです。 リポジトリはこちらです。 ※ コメントやコミットメッセージは一応拙い英語で書いていますが、日本語でissueを立てたりdiscordで意見・質問してもらっても大丈夫です。 ※ 急いで作った部分もあるため、コンパイラのコードは結構汚いです。ご容赦ください。 現状、Fixをローカルで実行するためにはLLVMのインストールが必要で時間がかかりますが、Fix playgroundを使えばブラウザ

                          HaskellとRustを足して2で割ったような関数型言語Fixを作っている話 - Qiita
                        • 我田引水的な「関数プログラミングの入門」資料紹介 - あどけない話

                          これは、Haskell Advent Calendar 2021の2日目を埋めるために書いた記事です。実は単に僕が作った「関数プログラミングの入門」の資料の宣伝です。 ちなみに、僕の関数プログラミングの定義は「不変データプログラミング」であり、おそらく最も厳しい定義です。なので内容が分かれば、関数プログラミングに入門できた言ってもよいのではないかと思います。 関数プログラミングことはじめ 僕は毎年、岡山大学の三年生に向けて、2コマで関数プログラミングを教えています。その資料が、「Cプログラマーのための関数プログラミングことはじめ」です。岡山大学工学部情報系学科の学生は、C言語を習っているので、C言語に似た文法を独自に定義して、関数プログラミングを説明しています。 [入門]関数プログラミング [入門]関数プログラミングは、WEB+DB PRESS Vol.67に掲載された記事です。編集部のご

                            我田引水的な「関数プログラミングの入門」資料紹介 - あどけない話
                          • Meta(旧Facebook)が、Rustを社内の正式サポート言語に採用。サーバサイド向けとしてPython、C++、Hackに追加

                            Meta(旧Facebook)は、ブログ「Engineering at Meta」で公開した記事「Programming languages endorsed for server-side use at Meta」で、Rustを新たに社内の正式サポート言語に追加したことを明らかにしました。 Meta社内ではソフトウェア開発において正式にサポートする言語を慎重に選択しており、社内においてサポートされた言語に対しては十分な投資が行われ、プログラミング、デバッグ、デプロイなどにおいて良好な開発体験が期待できるとともに、新しプロジェクトが開始される場合には、サポートされている言語を選択することが推奨されています。 サーバサイド向けの言語としてこれまでPython、C++、Hackがサポートされており、今回そこにRustが追加されました。 性能重視のバックエンドサービスやCLIの開発にRustを推

                              Meta(旧Facebook)が、Rustを社内の正式サポート言語に採用。サーバサイド向けとしてPython、C++、Hackに追加
                            • コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS|ハイクラス転職・求人情報サイト AMBI(アンビ)

                              コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS 数多くのScala関連OSSにコミットを続ける吉田憲治(xuwei-k)さん。その精力的な活動を支える、関数型の知見の源をうかがいました。 オブジェクト指向言語と関数型言語の特徴を併せもつマルチパラダイム言語・Scala。この言語に関連するOSSのコミット履歴には「 xuwei-k」というアカウントが頻繁に登場します。今回お話を聞いた吉田憲治(よしだ・けんじ/ @xuwei_k )さん、その人です。 吉田さんはScalaのスペシャリストとして、数多くのScala関連OSSにコミットを続け、2018年、Scalaコミュニティに対する貢献者に贈られる「Phil Bagwell Award」を受賞しています。界隈屈指のコントリビューターとして知られる吉田さんに、Scalaのスキルを研鑽して

                                コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS|ハイクラス転職・求人情報サイト AMBI(アンビ)
                              • Real World Haskell — Monday Morning Haskell

                                Real World HaskellA lot of people think day-to-day tasks like running a web app are difficult or impossible in Haskell! But of course this isn't true! In our Real World Haskell series, we'll take you through a whole slew of libraries that allow you to write a web backend. These libraries use Haskell's features to approach things like database queries and API building in unique ways. Part 1: Databa

                                  Real World Haskell — Monday Morning Haskell
                                • IO モナドと副作用 - Haskell-jp

                                  純粋関数型プログラミングで副作用を扱う方法Posted by Mizunashi Mana on April 05, 2020 Haskell は他のプログラミング言語には見られない特徴を多く持っている。その中の1つが純粋性だ。Haskell は純粋関数型プログラミング言語であることを、売りの1つにしている。しかし、純粋性は多くの場合表現力の縮小を招く。ところが Haskell は、IOモナドの導入により、通常のプログラミング言語と変わらぬ表現力を持てるようになっている。これは、とても驚くべきことだ。しかし、同時にこれは Haskell 入門者にとって、大きな混乱を招いているようだ。 今回は、そもそも純粋性とはなんなのか、なぜ他の言語は純粋性を担保できないのか、そして Haskell はどうやって IO モナドにより純粋性を担保しつつ他の言語と変わらない表現力を持てるようにしているのかにつ

                                    IO モナドと副作用 - Haskell-jp
                                  • Haskell は Rust になれるのか?──2023年の Linear Haskell 体験記

                                    追記:いくらなんでもあまりにも長いので、配列演算に焦点を絞ってより「Rustっぽさ」の気持ちを強調した姉妹編を書きました。手っ取り早く雰囲気を掴みたい方はこちらもどうぞ。 TL;DR GHC 9.0 から Haskell に入った線型型(Linear Types)の機能を一部割とガッツリ使ってみたので、Linear Haskell の現在の使い心地と将来の展望を報告するよ。 使おうと思えば使える段階にあるけれど、一部バグもあるし、まだ言語機能面で実装が追い付いていない部分もあって、快適に書けるようになるにはもうちょっと掛かるよ。それでも実用しようと思えばできるレベルにあるよ。 RustのようになるにはLinear Constraintsに期待。 更新履歴 2023/12/15 11:45 姉妹編へのリンク追加。 2023/10/01 12:30 線型性を納得してくれない場合の \eta-展

                                      Haskell は Rust になれるのか?──2023年の Linear Haskell 体験記
                                    • 「型システム入門」の先へ:TypeScriptの型システムのいくつかの側面 | 雑記帳

                                      この記事は TypeScript Advent Calendar 2023 の8日目の記事です。言語実装勢にも役立つ内容を含んでいるかもしれないので、 言語実装 Advent Calendar 2023 にも登録しています。 TypeScriptで型システムに興味を持った人が「型システム入門」を読んだという話を時々聞きます。「型システム入門」は、Types and Programming Languages (TAPL) という本の邦訳で、型システムに興味を持った人が読むのは自然なことです。 型システム入門 プログラミング言語と型の理論 | Ohmsha 型システム入門 サポートページ ですが、この本の原著は2002年出版で、最近の話題がカバーされていなかったり、邦題に「入門」とあるように発展的な話題は扱っていなかったりします。一応続編的な感じのAdvanced Topics in Typ

                                      • プログラミングとは ― 最強のカレーレシピ ― - golden-luckyの日記

                                        「うちの学校でもついにプログラミングの授業が始まったよ」 「それは興味深いね。どんなふうに教えてるの? やっぱりScratchとか?」 「Scratch? ああ、プログラミング言語のことか。プログラミング言語は使わなくていいんだよ」 「え?」 「小学校で学ぶプログラミングっていうのは、プログラミング言語を覚えさせることが目的じゃないからね。システム思考力とかロジカルシンキングって聞いたことあるだろ?」 「あるかないかでいったら、あるよ」 「プログラミング言語みたいなのは、単なる技術だ。それは仕事で必要な人だけが覚えればいい。子どもたちに教えるべきことは、プログラミング言語みたいな技術じゃなくて、システム思考やロジカルシンキングの延長といえるプログラミング的思考なんだよ」 「プログラミング的思考っていうのが、システム思考やロジカルシンキングとどう違うのか、いまいちよくわからないんだけど…」

                                          プログラミングとは ― 最強のカレーレシピ ― - golden-luckyの日記
                                        • よわよわエンジニアがTAPL(型システム入門)を読んだら

                                          こんにちは,sititou70です.私は社会人2年目のよわよわWebフロントエンドエンジニアであり,「数学」とか「証明」とは無縁の人生を送っています. そんな私ですが,がんばって型システム入門(通称:TAPL)という本を読み終えました.全32章,503ページ,牛乳パック1本分の重さがあり, 自立します. 自立する本は大抵やばいです. TAPLの序文を見ると,想定読者は プログラミング言語と型理論を専門とする大学院生および研究者 プログラミング言語の鍵となる概念に触れたい,計算機科学の全分野の大学院生および習熟度の高い学部生1 となっています.本記事では 「そんな本を,学生や専門家でない人間(私)が読んだらどうなるのか」 について書きます.専門的な用語は避けますので,TAPLの雰囲気だけでも感じ取ってもらえたら嬉しいです. どうなったのか 宇宙語が読めるようになった 「型安全」を説明できるよ

                                            よわよわエンジニアがTAPL(型システム入門)を読んだら
                                          • いかにして未経験から4年間でフルスタックエンジニアになったか - Qiita

                                            TL; DR 案件ガチャで未経験分野の案件に参画し続け、使用する技術がどんどんモダンな方向に進みまくった結果としてフルスタックになることができたという話 未経験技術での仕事の話が来たときでも今できないからやらないという姿勢ではなく、積極的に挑戦することでスキルを身につけることができた フリーランスや受託の場合、フルスタックな人材であればあらゆる業務をこなすことができかなり有利だと思われる 新しい技術はプライベートに加えて業務中に学習して身につけるのがベスト。なぜなら週40時間もの時間をプログラミングに使うことができるから 未経験でもポートフォリオを自分一人で作ればフルスタックな人材になれるのではないかという話。ただし毎週20時間は必須 はじめに 先日お邪魔させていただいた交流会にて、自分が持っている技術スタックが比較的希少なものである、ということを知らされました。 自分としてはコンピュータ

                                              いかにして未経験から4年間でフルスタックエンジニアになったか - Qiita
                                            • Optics: 「パス」に型を付ければ、データ全体に型を付ける必要はない - Lambdaカクテル

                                              あまり知られていない関数型言語のおもしろ概念として、Opticsというものがある。 Opticsとは、オブジェクト指向言語で言うところのSetter/Getterを一種の関数として捉え、いくつかの便利な特性を付与したものの総称だ。この便利な特性によって、Setter/Getter以上のことをパワフルにこなせる。 最も有名なOpticsはLensであり、色々な解説資料が(主にHaskell向けに)出ている。 blog.recruit.co.jp さて、これまでのOpticsを紹介する資料はSetterとGetterとしての側面に注目しがちだったので、じゃあOpticsの何が良いのか、Scalaでやる意義は何か、という側面をこの記事で紹介しようと思う。 Optics -- vs. copyメソッド地獄 Opticsは合成可能である Opticsはボトムアップのアプローチである Opticsがう

                                                Optics: 「パス」に型を付ければ、データ全体に型を付ける必要はない - Lambdaカクテル
                                              • 10年間使ってみて見えたHaskellの闇と光 - Qiita

                                                はじめに わたしがHaskellを使い始めてもうそろそろ10年目になります。(タイトルは多少サバを読んでいますね) これまで使ってきた感想をまとめます。 Haskellのつらいところ まずは愚痴らせてください。 コンパイルが遅い 依存モジュールはすべてソースコードからビルドする必要があります。(バイナリ形式のモジュールはありません) 最初のビルドに20分くらい待つのはザラです。 複雑な型システムをつかうと型推論や型レベル計算に時間がかかります。 高速なHaskellプログラムを書くためには多くの関数をインライン化する必要があります。最適化ビルドではインライン展開によってコードサイズが大きくなるので時間がかかります。 デバッグが難しい 公式のGHCiデバッガはありますが、今のところIDEから簡単に利用できるわけではないですし、コンパイル済みのライブラリはデバッグできないです。 近年スタックト

                                                  10年間使ってみて見えたHaskellの闇と光 - Qiita
                                                • async/awaitのaの違い~async wait説への反論 - Qiita

                                                  はじめに ncaq氏の記事を読んで様々なことを学習できました。 asyncが「syncしない」なのにawaitが「waitする」なのは何故か。awaitがasync waitであるという説は正しいのか。async/awaitの語源について学習したことを記事にしました。 asyncとawaitのa-の違い asyncはsynchronize(同期)にa-(否定)が付いてasync(同期しない)となります。 awaitはwait(待つ)にa-(否定)が付いて「待たない」となりません。a-(方向)が付いてawait(待つ)となります。 a-(否定)とa-(方向)の違いです。 a-(否定)は「エイ」と発音する傾向 asynchronous エイスィンクロナス 非同期 Ajax エイジャックス(Asynchronous JavaScript And XML) asymmetry エイスィメトゥリィ

                                                    async/awaitのaの違い~async wait説への反論 - Qiita
                                                  • プログラマとしてPower Automateでローコード開発した所感 | IIJ Engineers Blog

                                                    日本Haskellユーザーグループ(愛称 Haskell-jp)発起人の一人にして、Haskell-jpで一番のおしゃべり。 HaskellとWebAssemblyとプリキュアとポムポムプリンをこよなく愛する。 こんにちは。IIJ-IIの山本悠滋です。普段はIIJ-IIの技術開発室という部署で、IIJ本体をサポートするための開発をいろいろしています。 今回は、先月Microsoft Power Automateというサービスで開発したプログラムと、開発して学んだことを共有したいと思います。 Power Automateとは Microsoft Power Automate(旧「Microsoft Flow」)とは、一言で言うとIFTTTやZapierのMicrosoft版、といったところです。「○○のウェブサービスで××というイベントが発生したら、その時の情報を△△という別のウェブサービス

                                                      プログラマとしてPower Automateでローコード開発した所感 | IIJ Engineers Blog
                                                    • Rust concepts I wish I learned earlier

                                                      This past month, I have been enthralled by the Rust programming language given its unique edge for writing memory-safe, modern programs. Over the years, several languages have emerged as the most preferred by engineers to write resilient, backend software. The tides have shifted from Java/C++ into Go and Rust, which combine decades of programming language theory to build tools that are effective i

                                                        Rust concepts I wish I learned earlier
                                                      • それでもRuby、Python、JavaScript(あるいはJava)を使う方々へ.md · GitHub

                                                        それでもRuby、Python、JavaScript(あるいはJava)を使う方々へ.md 前置き この記事は静的型付け言語が理解されないことに業を煮やし……いや、ブチギレてしたためたものです。そのため多少過激な表現を伴います 性質上どうしても特定の人々に攻撃的な内容になります リーナスの下品な発言の引用は非現実的です。わたしが5人くらいいれば現実的なのですが…… Pythonの機械学習分野は例外です。ですがここもいずれ静的型付け言語に取って代わられるべきであると考えています(そもそもFFIが得意と言うだけでPython使われてるだけだし) 「型」の概念が石器時代で止まっている方へ まずはこちらをお読みください。 私と型システムとポエム - The curse of λ https://myuon.github.io/posts/type-system-poem/ 特に「よくある誤解」のこ

                                                          それでもRuby、Python、JavaScript(あるいはJava)を使う方々へ.md · GitHub
                                                        • プログラミング言語の習得に必要なもの - Qiita

                                                          はじめに 先日、エンジニアの能力と今どきの難しさというタイトルの記事(2018年)を読んで、「これはほんとにその通り」と思う一方で、具体例がないためにピンと来ない人や、マウント取りではという意見も多数見られた。というわけで、自分が比較的得意な、プログラミング言語の構文解析といった分野に関して、この記事の言わんとしていることを補足するような記事を書こうと思い至った。 記事中では、エンジニアに必要な知識や経験を、「ベース」「カテゴリ」「実行環境」という形(以下)に分けて論じている。 ①ベース コンピュータサイエンス(CS)などの理論的なもの 低レイヤー ②カテゴリ フロントエンド / バックエンド / クライアントアプリなど ③実行環境 特定のプログラミング言語や開発環境やツール、フレームワークやライブラリなど この中で、特に印象的であり、かつ「よくわかる」と思ったのは以下の記述だ。 ③は比較

                                                            プログラミング言語の習得に必要なもの - Qiita
                                                          • 【学びたい技術分野別に50冊】高額な技術書がKindleで50%以上セール開催中でお買い得 - 仮想サーファーの日常

                                                            Amazonで、【最大50%OFF】高額書籍キャンペーンが開催されています! 開催期間は2020年7月10日(金)~2020年7月23日(木)です。 Docker、CI/CD、Python、Ruby、Flutter、Vue.js/Nuxt.jsなどなどエンジニアが学びたい技術の本が多数セール対象になっているので、ぜひともチェックしたいですね。 【最大50%OFF】高額書籍キャンペーンを見てみる この記事では、一気に技術書を読んで技術力を伸ばしたい方向けに、学びたい分野別にKIndleセール本をまとめました。 JavaScriptに入門したい JavaScript逆引きレシピ 第2版 山田 祥寛 (著)、翔泳社 (出版)、2018年10月15日 (発売) 50%OFF Kindle¥1,540、単行本¥3,080(2020年7月12日現在) JavaScript開発必須の知識・現場のテクニッ

                                                              【学びたい技術分野別に50冊】高額な技術書がKindleで50%以上セール開催中でお買い得 - 仮想サーファーの日常
                                                            • 最終出社日 - kmuto’s blog

                                                              本日で株式会社トップスタジオ https://www.topstudio.co.jp/ の勤務を終え、これから有給消化に入る。 SIerからの転職で1999年に入社し、3年くらいかなーと思っていたのが5年となり、10年となり、……といつのまにかずいぶんと長く在籍していた。 仕事的には自由度が高く、先端の技術分野の書籍を制作しながら知識を得て血肉にすることができ、私にはとてもフィットする職場だった。同僚にも恵まれて楽しかったので、離れるのは寂しい思いがある。 トップスタジオで何をやってきたの? 長くいたこともあり、それなりに成果を積んできたとは思う。 入社当初より、編集者として、各社のIT書籍の請負制作をしてきた。Linux、OSS、ネットワーク、セキュリティ、ソフトウェア工学、エンジニアリング、そして最近だと機械学習が多い。翻訳の監修や、執筆なども関連して担当。企画はあまりやっていない。

                                                                最終出社日 - kmuto’s blog
                                                              • プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するか

                                                                紙書籍をお届けします(PDFがついてきます) PDFのみ必要な場合は、こちらからPDF単体を購入できます 通常はご注文から2~3営業日で発送します。 年末年始や大型連休など、1週間から10日程度、配送のお休みをいただく場合があります。詳しくはお知らせをご覧ください。 そのプログラム、CPUの性能を引き出せますか? Takenobu Tani 著 312ページ A5判 ISBN:978-4-908686-16-0 2023年1月25日 第1版第1刷 本書の解説で利用するコード(著者によるGitHubリポジトリ) 正誤情報など ソフトウェアの価値は、ハードウェアで実行されることにより、現実のものになります。そのために不可欠なのがCPUです。したがってソフトウェアの価値は、CPUの性能、すなわち「できるだけ高速にソフトウェアを実行すること」にかかっているとも言えるでしょう。 現代のCPUの性能は

                                                                  プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するか
                                                                • フロントエンドの消失 - または戦争が激しくなる話

                                                                  React Server Components に感じたフロントエンドの消失という記事に端を発する一連の議論だが、実際この記事で書かれていることはそうだろうなと思う。話の流れとして誤ってる部分はないと思うし同意する。 この記事ではフロントエンドエンジニアとして、この件についての僕の見解を書く。もちろんフロントエンド(とは?)の総意ではない。 元記事と重複する部分多いが、そこは同じ問題を取り扱う以上避けて通れないため、ご容赦いただきたい。 同じ領域を取り扱ってる以上、開発戦争は激しくなる 様々な理由によりユニバーサルが求められている ※この記事でいう「戦争」とは、お互いの領域を食い合う開発が、活発化することを「戦争」と称しているだけです。それ以上の意図は全くございません 領域がかぶっている 最近のフロントエンド系ユニバーサルエコシステムは、たしかに PHP や Rails の領分を侵そうとし

                                                                    フロントエンドの消失 - または戦争が激しくなる話
                                                                  • QUICをゆっくり解説(3):QUICパケットの構造 | IIJ Engineers Blog

                                                                    Haskellコミュニティでは、ネットワーク関連を担当。 4児の父であり、家庭では子供たちと、ジョギング、サッカー、スキー、釣り、クワガタ採集をして過ごす。 前回の説明では、「Initial パケット」や「Version Negotiation パケット」といった用語を未定義で使いました。今回は、こういった「パケット」や「フレーム」が、どのような構造を持っているかについて説明します。 古典的なパケット IP、UDP、およびTCPでデータをやり取りする基本単位は、すべて「ヘッダ+ペイロード」という構造を持っています。このヘッダ+ペイロードという単位は、それぞれ以下のように呼ぶのが慣習です。 IP – パケット UDP – データグラム TCP – セグメント すべてパケットと呼んでも間違いではありません。UDPの場合、IPペイロードが「UDPデータグラム(UDPヘッダ+UDPペイロード)」に

                                                                      QUICをゆっくり解説(3):QUICパケットの構造 | IIJ Engineers Blog
                                                                    • 達人出版会

                                                                      探検! Python Flask Robert Picard, 濱野 司(訳) BareMetalで遊ぶ Raspberry Pi 西永俊文 なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 Jesse Storimer, 島田浩二(翻訳), 角谷信太郎(翻訳) 知る、読む、使う! オープンソースライセンス 可知豊 きつねさんでもわかるLLVM 柏木餅子, 風薬 デザインディレクション・ブック 橋本 陽夫 現場のプロがやさしく書いたWebサイトの分析・改善の教科書【改訂3版 GA4対応】 小川 卓 解釈可能なAI Ajay Thampi(著), 松田晃一(翻訳) PowerPoint 目指せ達人 基本&活用術 Office 2021 & Microsoft 365対応 PowerPoint基本&活用術編集部 ランサムウェア対策 実践ガイド 田中啓介, 山重徹 TODによるサステナ

                                                                        達人出版会
                                                                      • インターフェースと型クラスの違いを考える

                                                                        この記事では、JavaライクなインターフェースとHaskellライクな型クラスを比較します。どちらも、複数の異なる型を統一的に扱うための仕組みです。 インターフェース インターフェースはご存知の方も多いと思いますが、コード例を載せておきます。 // インターフェースの定義 interface Greetable { String greet(); } // 実装の例1 class Hello implements Greetable { String message; Hello(String m) { this.message = m; } public String greet() { return "Hello " + message + "!"; } } // 実装の例2 class Goodbye implements Greetable { public String gree

                                                                          インターフェースと型クラスの違いを考える
                                                                        • Go: A Documentary

                                                                          Go: A Documentary by Changkun Ou <changkun.de> (and many inputs from contributors) This document collects many interesting (publicly observable) issues, discussions, proposals, CLs, and talks from the Go development process, which intends to offer a comprehensive reference of the Go history. Disclaimer Most of the texts are written as subjective understanding based on public sources Factual and ty

                                                                          • 巨大なタスクに圧倒されそうな時は“分割統治”で征服せよ ゴールまで走り続けるために有効な考え方

                                                                            大きな問題も分割すればなんとかなる まつもとゆきひろ氏:次のことわざにいきましょうね。4番目は、これもことわざじゃないと言われちゃうんですが、「分割統治」という言葉です。英語だと「Divide and Conquer」。「分割して征服せよ」という感じです。大きな問題もね、分割すればなんとかなるというやつですね。 (スライドを示して)これは最近見た漫画です。巨大なタスクが存在して、圧倒されそうな気持ちになった時には、タスクを取り上げて細かく分解すると、細かく分解されたタスクは無視しやすいので、タスクは片づかなくても気分は楽になるという漫画なんですけども(笑)、実際、そういうところもあるんですよね。 非常に巨大なことをしろと言われると大変なんだけど、手に負える範囲に分割して1つ1つ話をしていくと問題を解決できるというのは、どこにおいても応用可能な原則だと思います。 クイックソートは一応現時点で

                                                                              巨大なタスクに圧倒されそうな時は“分割統治”で征服せよ ゴールまで走り続けるために有効な考え方
                                                                            • 関数型プログラミングなんもわからん。を考えようと言うイベントを開きました。

                                                                              先日Connpassにて、関数型プログラミングなんもわからん。を考えようと言うイベントを開かせていただきました。 関数型プログラミングがわからない! と言う方達の疑問に対して、普段関数型プログラミング言語を使っているわかる人たちが回答をして行くと言うスタイルのイベントでした。関数型プログラミング言語と一口に行っても、Elm, Scala, Haskell, Clojure, Elixir, F#と様々な言語があり(これは今回参加した人たちの使っている言語で、関数型プログラミング言語の一部にしか過ぎません)何が正解かなどはわからない中での意見の集約といった形のため参考程度にご覧ください。結果イベントとしては様々な視点からの意見が聞けて満足という声が多かったです。私自身知らないことがたくさん知れて勉強になり楽しかったです。 イベントの内容は、Figma上で開けるFigJamファイルとして、公開

                                                                                関数型プログラミングなんもわからん。を考えようと言うイベントを開きました。
                                                                              • 【第4回】競技プログラミングはITエンジニアをどう鍛えるか | GeeklyMedia(ギークリーメディア) | Geekly(ギークリー) IT・Web・ゲーム業界専門の人材紹介会社

                                                                                プログラミングのスキルは、ウェブをはじめシステム開発の業務に欠かせないものですが、それ自体を「競技」として楽しみ、練習を通じて上位を目指すという世界もあります。そんな競技プログラミングにおいて「強くなる」ことは業務におけるプログラミングスキルの向上に関係があるのか、そもそも人間にとって「学び」とは何なのか、日本語で参加できる競技プログラミングのコンテストを定期的に開催するAtCoder株式会社の高橋直大さんと青木謙尚さんが、株式会社一休でウェブシステム開発に携わる伊藤直也さん、所澤友大さんと語ります。 ・伊藤 直也さん / 株式会社 一休 執行役員 CTO 新卒入社したニフティ株式会社でブログサービス「ココログ」を立ち上げ、CTOを務めた株式会社はてなでは「はてなブックマーク」などの開発を主導。グリー株式会社では統括部長としてSNSを担当した。2016年4月、一休に入社し執行役員CTOに就

                                                                                • 「プロを目指す人のためのTypeScript入門」読書感想

                                                                                  @uhyo さんのTS本ということで読んでいます。 一応入門書という位置づけなので、社内での育成に活用したい目線。 とはいえ自分でも学べるところ多そう、特にTSのd.tsみたいなモジュールまわり理解弱いので… 全体的な感想 4章(関数)、6章(高度な型)が特によかった。 (5章が入ってないのは自分がクラス使わないからなので、使う人だったら5章も入ってると思う) 自分も何年かフロントエンドエンジニアとしてやっているのでさすがにだいたいは知っている内容のおさらいになったけど、それでもふわっとした理解が適切に言語化だったり、コーナーケースの知らない挙動など発見は沢山あった。 特に育成には有用だなと思った。6章の内容は理論と実践の話のバランスが良く、レベル的にもそれなりにTS書いてる人でも知らないこと全然ありそうな内容だったので、自分のチームのメンバーにも少なくとも6章は読んでもらいたい。勧めます

                                                                                    「プロを目指す人のためのTypeScript入門」読書感想