タグ

programmingと考え方に関するzyzyのブックマーク (31)

  • 時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena

    この文章みてください。 オレはもう20年以上システム業界にいるけどな、その長い経験から言うと、オブジェクト指向なんてものは、理論としては面白いけど、およそ実用的とは言い難いものだな。まぁ、例えばGUIのコンポーネントとかはオブジェクト指向に基づいて作られているようだから、そういうツールとかを作る人には必要なものなのかもしれない。しかし君たちがいずれ作ることになる業務アルゴリズムにはまったく無縁のものだと思ってもらって間違いない。どうもこの業界、オブジェクト指向でなければダメ、というような風潮がまかりとおっているけどな、オブジェクト指向なんか当に使っている人はほとんどいないよ。オレも少し勉強してみたけど、カプセル化とかポリ何とかとか、どうにも利点が理解できなかったね。実際、実業務で使ったことなどないしな…… 「またお前、オブジェクト指向の話をしてるのか」と思ったかもしれませんが、2010年

    時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena
    zyzy
    zyzy 2024/03/09
    関数型が流行ったあたりからこれは定期的に思ってる。というか当時のいじり方が本当にひどすぎてて当時も引いた。男界隈のいじめ案件ってこうなるんだ、って思ったくらい。
  • 浮動小数点型の算術とお近づきになりたい人向けの記事 - えびちゃんの日記

    お近づきになりたい人向けシリーズです。 いろいろなトピックを詰め込みましたが、「これら全部を知らないといけない」のようなつもりではなく、いろいろなことを知るきっかけになったらいいなという気持ちなので、あまり身構えずにちょっとずつ読んでもらえたらうれしい気がします。 まえがき 予備知識 規格 用語 精度という語について 記法 表現について 有限値の表現について エンコードについて 丸めについて よくある誤差や勘違いの例 0.1 = 1 / 10? 0.1 + 0.2 = 0.3? 整数の誤差 Rump’s Example 基的な誤差評価 用語に関して 実数の丸め 有理数の丸め 基演算の丸め 差について 複数回の演算 補題たち 桁落ちについて Re: Rump’s example 融合積和 数学関数に関する式の計算 誤差の削減に関して 総和計算 数学関数の精度について 比較演算について 雑

    浮動小数点型の算術とお近づきになりたい人向けの記事 - えびちゃんの日記
    zyzy
    zyzy 2024/02/26
    すさまじい力作だった。そしてやっぱあんまり使いたくないな、ってなった。
  • 「履歴書の字が汚いと採用で不利」は本質的じゃないと思ってたけど「使用言語:swift」って表記を見たときはそこで人を判断しそうになった

    kumamo_tone @kumamo_tone iOS/Android/Flutter developer at YOUTRUST Inc. (ex. Merpay, Yahoo! JAPAN) kuma.dev kumamo_tone @kumamo_tone なんだろう、履歴書の字が汚いと採用で不利になるみたいなのナンセンスとか思ったりする割に、いざレジュメ見る立場になったとき「使用言語:swift」って表記見て「まともなエンジニアがそこ小文字にするか…?」って全然質じゃないところで人を判断しようとした自分に驚いたんですよね 2023-10-25 01:36:36

    「履歴書の字が汚いと採用で不利」は本質的じゃないと思ってたけど「使用言語:swift」って表記を見たときはそこで人を判断しそうになった
    zyzy
    zyzy 2023/10/26
    コンソール上で起動する時は全部小文字だしなぁ……。
  • Bun — A fast all-in-one JavaScript runtime

    Develop, test, run, and bundle JavaScript & TypeScript projects—all with Bun. Bun is an all-in-one JavaScript runtime & toolkit designed for speed, complete with a bundler, test runner, and Node.js-compatible package manager.

    Bun — A fast all-in-one JavaScript runtime
    zyzy
    zyzy 2023/09/13
    1.0出たし、Zig製で今一番有名なんじゃなかろうか?
  • Pythonは遅い遅い言われてJITとか中途半端なことせずにフルネイティブコンパイラを作ったらどうですか?

    回答 (13件中の1件目) JIT方式は中途半端なものではありません。もちろん万能でなんでも優れているわけでもありませんが以下の利点があります。 * プログラムは単一の機械独立、OS独立の形式で配布できる(実行時に実行環境の機械語に変換できる) * 配布形式が小さくなる。マシン中立なバイナリ表現にした場合は特に。 * 全体をネイティブコンパイルするのではなく、速度にシビアに関わる最内周ループや何度も実行される場所に限ってネイティブコンパイルすることで実行に必要なメモリフットプリントを減らすことができる。 * 実行時だけわかる情報を元にした最適化やコード生成が可能。例えば、 *...

    Pythonは遅い遅い言われてJITとか中途半端なことせずにフルネイティブコンパイラを作ったらどうですか?
    zyzy
    zyzy 2023/05/08
    こうしてみるとJSのエクストリーム進化ぶりが本当に異常なんだな、と。
  • Mojoは「C言語のように速いPython」なのか - k0kubun's blog

    LLVMやSwiftを作ったChris LattnerがCEOをやっている会社が、Pythonの使用感とC言語並の性能を併せ持つ言語としてMojoをアナウンスした。 まだ手元で試せる状態でリリースされてはいないが、最大35000倍Pythonより速いという。 Mojo🔥 combines the usability of Python with the performance of C, unlocking unparalleled programmability of AI hardware and extensibility of AI models. Also, it's up to 35000x faster than Python 🤯 and … deploys 🏎 pic.twitter.com/tjT09U4F80— Modular (@Modular_AI) May

    Mojoは「C言語のように速いPython」なのか - k0kubun's blog
    zyzy
    zyzy 2023/05/06
    Mojoそのものより、llvm-irの次世代であるMLIRに価値がありそうって事か
  • GPT-4で新しいプログラミング言語「TenetLang」を生み出す、チャットAIは既にプログラミングの何たるかをかなり理解している模様

    OpenAIが作成したチャットAIの「GPT-4」を利用して、新しいプログラミング言語の「TenetLang」をコーダーのルークさんが作成しています。 GPT-4 Designed a Programming Language https://lukebechtel.com/blog/gpt4-generating-code GPT-4のような大規模言語モデル(LLM)は、世界中に存在するあらゆるプログラミング言語を何十億回も読み込んでいます。LLMはプログラミングも可能であることは知られていますが、ルークさんは「私の知る限り、GPT-4で独自のプログラミング言語を作成するといった事例はこれまでありません」と記しています。そこで、ルークさんはGPT-4を使って新しいプログラミング言語を創造することに決めた模様。 ルークさんは最初にGPT-4に対して「ソフトウェア開発における大まかな統一理論

    GPT-4で新しいプログラミング言語「TenetLang」を生み出す、チャットAIは既にプログラミングの何たるかをかなり理解している模様
    zyzy
    zyzy 2023/03/18
    インデントベース言いながらいきなりインデントベースじゃないw
  • プログラミングが難しくなったのはなぜか、原因はC言語のあの記法?

    プログラミングを全くしたことのない人がプログラミングの学習を始めた場合、どこでつまずくかを考えることがよくある。小学校でプログラミング教育が始まったこともあり、プログラマー以外の人も少しはプログラミングを知っておいたほうがいいと思うからだ。 初心者がつまずく場所としてよく聞くのが「繰り返し」だ。プログラミングには、処理の流れを制御する構文として、主に「条件分岐」と繰り返しの2つがある。初心者にとって、条件分岐は理解しやすいが、繰り返しは理解が難しいのだという。 たしかに日常生活の中でも「条件によってやることを変える」という場面は多い。プログラミングを知らない人でも普段から慣れている考え方だろう。 これに対し、プログラミングにおける繰り返しは、同じことを繰り返す場合もあるが、たいていは「ルールに従って値を連続的に変えながら処理を繰り返す」というものになる。日常生活では、同じ作業を繰り返すこと

    プログラミングが難しくなったのはなぜか、原因はC言語のあの記法?
    zyzy
    zyzy 2023/03/10
    タイトル見て代入かな、って思ったら合ってた。定期的に話題になるよね
  • 計算複雑性理論を知らないやつが何をやらかすか教えてやろう。 ある業務用..

    計算複雑性理論を知らないやつが何をやらかすか教えてやろう。 ある業務用Webシステムは検索結果の表示件数を5/10/20件から選べるようになっててて,URLのパラメーターで「?n=20」とかやって送ってた。メニューからは三つの値しか選べないが手で書き換えれば100とか200とか選べる穴が空いてた。 で,よりによってメモリ使用量がO(n^2)になるコードを書いていやがった。n=500でOutOfMemoryError。リモートから面白いようにサービスを落とせた。 CSを知ってるやつなら,コードを書いた瞬間から「これnの上限チェック入れないとまずいな」とわかるんだよ。というか,普通にこのコードはまずいと考えてアルゴリズムをなおして,O(1)でDBレコード全件持ってきても落ちないコードにできてたはず。

    計算複雑性理論を知らないやつが何をやらかすか教えてやろう。 ある業務用..
    zyzy
    zyzy 2022/12/02
    これもそうだし、SQLの前提となる集合論の感覚への理解もそうだけど、ぱっと把握しやすいか、憶えるのに時間かかるかの差ではあるかな、と。事前に勉強してるかどうかの差でしかないといえばそう
  • 「良いコード」を書くために意識している17のTips まとめ

    この記事について 私はWeb基盤を提供している企業でWebアプリケーションエンジニアをしています。 インフラや顧客基盤など複数のバックエンドAPIが動いており、それらを結合したアグリゲーション(BFF)の作成とフロントエンドの実装を担当することが多いです。 言語はTypeScriptとC#を選択する事が多く、フロントエンドではReact.jsとVue.jsを使用しています。これらをコンテキストとして私が「良いコード」を書くために日頃意識しているTipsを投稿していきます。 やらないこと インデントを揃える、命名基礎、アクセス修飾子などの基礎的な内容は割愛しています。 コードはTypeScriptで書いています。ですが特定の言語に特化した内容にはしていません。 プログミング全般に掛かかった内容であり、フロントエンドやバックエンドなど特定のレイヤーに特化した内容にはしていません。 良いコードと

    「良いコード」を書くために意識している17のTips まとめ
    zyzy
    zyzy 2022/11/22
    依存性逆転の所は面倒くさくなりがちか説明かっ飛ばしてるけど(フレームワークとか挟みたくなるからだろうけど)、ここが面倒くさくなりがちな時点で何かもうちょって上手い解決方法欲しい気はする。
  • https://twitter.com/dankogai/status/1594494289429803008

    https://twitter.com/dankogai/status/1594494289429803008
    zyzy
    zyzy 2022/11/21
    一つの考え方。結局概念の定義って「そうじゃない側は何なんだよ?」を明確にしないと定まりにくいと言える気はする。
  • ワイアラサー、プログラミングを学ぼうとするも二週間で挫折

    ちなみに全くの未経験。 “helloworld”から一歩も進まない、Python死ね。 いやPythonは悪くないんだ。俺みたいなのがやろうとしたのが間違いなのだ。 逆恨みだが死んでくれ。 肉体労働者だからパソコン触るのも数年ぶり、そもそもプログラミングというものは、パソコンの素養がないとあかんのだな。 仕事で必要というわけでは全然なく、別にそっちの道を目指そうという気もない。 チェスが昔から下手な横好きなんだが、変則チェスのゲーム作りたいなと思っただけなんだ。 Pythonを選んだのは、定石なんかに機械学習があると良いのかな、くらいに思ったのと、初心者に優しいとググったら出てきたから。 Pythonのやり方ググると、ダウンロードしろというからダウンロードする。 コマンドプロンプトを起動して、 python-V と打ち込むわけだ。 「’python’は内部コマンドまたは外部コマンド、操作可

    ワイアラサー、プログラミングを学ぼうとするも二週間で挫折
    zyzy
    zyzy 2022/10/22
    あー環境構築ってある意味最大のハードルだよな。WindowsでのpythonならいっそWinPythonみたいなポータブル環境使った方が分かり易いし簡単かもしれん。解凍したフォルダ内オンリーで使う感じで済む。エディタもついてくる
  • よわよわエンジニアがTAPL(型システム入門)を読んだら

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

    よわよわエンジニアがTAPL(型システム入門)を読んだら
    zyzy
    zyzy 2022/05/10
    実戦で色々試したくなったらIdrisがあるよ!!
  • Go1.18でジェネリクスが追加されたので、5年ぶりにGolangを覚えなおし、GenericListとマルチキャスト可能Channelの実装をした - Qiita

    Go1.18でジェネリクスが追加されたので、5年ぶりにGolangを覚えなおし、GenericListとマルチキャスト可能Channelの実装をしたGoGenericschannel はじめに Go1.18が2022/3/15にリリースされました 以前Goの開発陣はジェネリクスは不要とか言ってたような気がするが 1.17でもお試しが出来たと思いますが 今回正式に導入されたので、5年ぶりにGoのお勉強です ジェネリクス以外に5年間のUpdateを調べましたがツールやライブラリは変わったものの 言語じたいはたいした変化はなかったので ジェネリクスだけです ジェネリクスとは C++でいうテンプレートです D言語、Java、C#、Haskell・・・ 今では様々な言語に導入されている概念です 引数の型が異なる関数やメソッド、メンバ、クラスに対して、一つの実装で複数の型に対応出来ます 具体的には、例

    Go1.18でジェネリクスが追加されたので、5年ぶりにGolangを覚えなおし、GenericListとマルチキャスト可能Channelの実装をした - Qiita
    zyzy
    zyzy 2022/04/24
    Go方面まったく追ってなかったけど、結局ジェネリクス入ったんか
  • 本当にあった怖い脆弱性の話

    PHPerkaigi 2022 Day2 Track B

    本当にあった怖い脆弱性の話
    zyzy
    zyzy 2022/04/12
    PHPはともかくWordPressはよほど本体に詳しくないと金のやりとりが絡む奴には使いたくないな……
  • 予防に勝る防御なし - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHPerKaigi 2022

    PHPerKaigi 2022 2022/04/10 10:40〜 Track A レギュラートーク(40分) PHP はバージョンを追う毎に型宣言、例外、表明、列挙型などの機能が大幅に強化され、堅牢なコードを書くための機能が充実してきました。それらの機能はどう使うと効果的なのでしょうか。 講演では PHP 8.1 をベースにして、誤りを想定してチェックするのではなく、そもそも誤りにくい設計とはどのようなものか、つまり「予防」の観点を軸足に、堅牢なコードを導くための様々な設計のヒントをご紹介します。 Agenda - 型宣言 - 列挙型 - ドメインモデリング - 不変性と等価性 - 完全性 - レイヤーと責務

    予防に勝る防御なし - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHPerKaigi 2022
    zyzy
    zyzy 2022/04/11
    静的型がデフォで不変がデフォの言語使うだけで半分くらい解決する奴だった。つまりPHPは大変。
  • オブジェクト指向はすでに粒度が時代にあっていない - きしだのHatena

    定期的にオブジェクト指向disを書いてしまってるのだけど。 とりあえずオブジェクト指向の話をすると定義が人によって違いすぎるので、改めてここでの定義を書いておくと 、基的にはOMTの「データ構造と振る舞いが一体となったオブジェクトの集まりとしてソフトウェアを組織化すること」 に従うのですが 「1990年に流行りソフトウェア開発のすべてを飲み込み、いまとなっては人それぞれ定義が違って技術的議論に使えなくなった、主にオブジェクトを基単位としてプログラムを整理するやりかたを指すマーケティング用語」 という感じです。 ほとんどの場合で人によってオブジェクト指向の指す範囲が違いすぎて、技術的知見の共有には使えなくなっています。でも、いずれの定義にしろオブジェクトを基単位にするというのは重要ではないかと。 ソフトウェアの組織化の単位としてオブジェクトを使うというのが大事で、データの搬送に構造体代

    オブジェクト指向はすでに粒度が時代にあっていない - きしだのHatena
    zyzy
    zyzy 2021/09/26
    どうしてもモノリシック前提になってしまう、っていう事かな。設計の前提に置いてしまうと混乱の元になる、というか。それでいてモノリシックでコンパクトにまとめたい案件からしたら複雑になりすぎるし。
  • Re: 言語のはなし / jmuk - Message Passing

    話をふられてなんなんだけど、最近あんまりML系の言語を使ってみたりしていないんだよな。最後になにかやったのは、min-camlがwasmを吐けるようにしたことで、あれはOCamlで書いたのだったか(min-camlはセルフホストではなく、OCamlで書かれている)。公開もしていない……自分で書いた部分がかなりmessyで気が滅入る感じになってしまったので放置している。 Haskellの型クラス そういえばポッドキャストで最近、Haskellの歴史の論文を読んだのを紹介した。2カラムで50ページ以上という長大なる論文なので仕方なくかなりの部分を割愛したが、なかでも型クラスの話はほとんど触れずに飛ばしたように思う。ところがあの論文は “being lazy with class” という副題がついてるくらい、なにかと型クラスの話をする論文なのだった。論文著者の気持ちとしては、型クラスこそがHa

    Re: 言語のはなし / jmuk - Message Passing
    zyzy
    zyzy 2021/07/11
    やっぱtypescriptが強いのはエコシステム周りのおかげなんだろうなぁ
  • TypeScriptの設定の良し悪し

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    TypeScriptの設定の良し悪し
    zyzy
    zyzy 2021/03/05
    まだ全然慣れてないせいもあるが、色々と異文化だなぁ……って思ってる。
  • Minimal safe Bash script template

    Published on December 14, 2020   ·   Updated on December 16, 2020 Bash scripts. Almost anyone needs to write one sooner or later. Almost no one says “yeah, I love writing them”. And that’s why almost everyone is putting low attention while writing them. I won’t try to make you a Bash expert (since I’m not a one either), but I will show you a minimal template that will make your scripts safer. You

    Minimal safe Bash script template
    zyzy
    zyzy 2021/01/18
    bash苦手でオレオレ仕様でしか書いてないのをそろそろ卒業せんと……