タグ

programmingに関するt-tanakaのブックマーク (332)

  • 生成AIで古(いにしえ)のFORTRANコードに挑戦する - Qiita

    古(いにしえ)のFORTRANコード ChatGPT5.4 を使います。MacのCodexアプリを使います(5.4 Codexではなく5.4でした。)。 このWebサイトでは、物理学で使う計算手法のコードが公開されています。FORTRANです。DMFTと呼ばれる手法の超有名なレビューで使われている関数でして、今でもその一部が使われているかもしれません。 さて、このコードのうち、lisalanc.fというファイル内には、非線形関数を最適化する関数minimizeがあります。ここの文頭に、 C========+=========+=========+=========+=========+=========+=========+=$ C PROGRAM: minimize C TYPE : subroutine C PURPOSE: conjugent gradient search C I/

    生成AIで古(いにしえ)のFORTRANコードに挑戦する - Qiita
  • Rust 仕事 ない

    おことわり この記事は私がRustを書く仕事を探しているのであれば教えてほしいといった趣旨の記事ではありません。 タイトルの内容をいざTwitterで呟こうものならどこからともなく転職エージェントが現れ高単価案件を紹介するというホラを吹いたり、うちはRustを書いている、ちゃんと探したのか、みんなRustを書いている、そんなにRust仕事にしたいなら起業したらどうだといったいくつかのクソリプに収れんされていきます。 こういったワンパターンの流れが毎年のように繰り返され、うんざりしています。 この記事ではなぜRust仕事がない状況が続いていて、どうすればRust仕事がある状況を作れるのかという状況分析をしていきたいと思います。 若干Rustについてネガティブな書き方をしてしまうかもしれませんが、Rustが良い言語か、悪い言語かといった話はしません。 仮説1:Rust番環境で使われて

    Rust 仕事 ない
    t-tanaka
    t-tanaka 2026/03/01
    プログラミングには,Sシステム/Mミドルウェア/Aアプリの階層があると思っている。RustはSまわりで強力なツールになるが,A階層には弱い。で,賃金は前者ほど高く,求人数は後者ほど多い。JavaはM/A,GoはS/M。
  • プログラマーのための圏論

    序文 しばらく前から、プログラマーを対象とした圏論に関するを書こうと考えていた。計算機科学者ではなくプログラマー、科学者ではなくエンジニア向けだということに注目してほしい。正気の沙汰ではないし、当に怖気づいてしまう。科学と工学の間に大きなギャップがあるのは否定できないと思う。自分自身がその分断の両側で仕事をしてきたからだ。それでも、物事を説明したいという強い衝動をいつも感じていた。簡潔な説明の達人だったリチャード・ファインマン1を心から尊敬している。自分がファインマンではないことは分かっているが、最善を尽くしたい。まずは、この序文――読者に圏論を学ぶ気を起こさせることを想定したもの――を公開することから始めようと思う。それによって議論を開始しフィードバックを募れることを願っている2。 ここからの数段落をかけて、このがあなたのために書かれたものであり、数学のうちでも特に抽象的な分野を学

  • SQLでQuine書いたから見て見て - エムスリーテックブログ

    このテックブログを「quine」で検索していただくとわかるんですが、エムスリーのエンジニアはわりとQuine好きです。Quine(クワイン)とは、文字列を打ち出すだけのプログラムであってその打ち出した文字列というのが自身のコードそのものになっているようなもののことです。 Perl, Python, Rubyなど、手続き型言語で書かれることの多いQuineなのですが、日頃業務でSQLを扱うことの多い私は思うわけです。SQLだって文字列を出力できる言語だぞ、Quine書けるんじゃと。エムスリーエンジニアリンググループUnit1(製薬プロモーション)/Unit9(治験臨床研究支援)エンジニアの三浦[記事一覧 ]です。日頃のお仕事からは離れてSQLでQuineを書いて遊んでみました。 基方針 やっていく コード内にシングルクォーテーションを書かない プログラムの先頭側と末尾側をひとつの文字列デ

    SQLでQuine書いたから見て見て - エムスリーテックブログ
  • The RedMonk Programming Language Rankings: January 2023

    A month away from our third quarter run, it’s probably about time for us to post our first quarter language rankings. We’ve been busy at RedMonk with our first group travel week in three years, a slew of client work and the planning of a new RedMonk offering you’ll hear more about shortly. But we dutifully collected the language ranking data back in January and have finally carved out the time to

    The RedMonk Programming Language Rankings: January 2023
    t-tanaka
    t-tanaka 2024/03/28
    プログラミング言語ランキング。1位JavaScript, 2位Python, 3位Java, 4位PHP, 5位C#。
  • [追記]プログラマーにコンピュータ・サイエンスは必要なんだろうか

    この疑問はもう俺の中で何十年もくすぶっているんだが、未だにその答えは見つかっていない。 そもそも俺はコンピュータサイエンスというものをよくわかっていないというのもあるんだが、プログラマーをやっていてコンピュータ・サイエンスの素養がなくて困ったことがない。 学生が言うところのコンピュータ・サイエンスが社会に出て何の役に立つんだよっていう話がしたいんじゃない。 ここに吐き出しつつ自分なりに問題を噛み砕いてみたい。 フラフラ思いつくままに書いているから頭悪い文章になることだけは先に宣言しておく。 仕事をしているうえでなんで困らないのかまずコレが最も重要なポイントだと思うんだが、仕事でプログラム書いていて、コンピュータ・サイエンスの素養がなくて困ったことがない、例えばコンピュータ・サイエンスのボキャブラリがないと会話すらままならないなんて言うことは起きたことがない。 更に言うならば要件定義をコード

    [追記]プログラマーにコンピュータ・サイエンスは必要なんだろうか
    t-tanaka
    t-tanaka 2022/11/29
    少なくとも,計算複雑性理論を理解していないプログラマには,業務システムを書いてほしくない。自分が書いてるコードがO(n)かO(n^2)かO(2^n)かを判断できる能力は必須。/実例を書いた→ https://anond.hatelabo.jp/20221130083458
  • なぜRustはメモリ安全なのかをC++のコードと考える - Qiita

    これは何? Rustの安全性についてよく誤解されているようなので、より良く理解できるようにC++との比較を私なりに行ってみました。 C++の場合 プログラミング初心者である私は、C++で文書を管理する Document クラスを書いた。 このクラスは、コンストラクターで3つの段落を生成し、 paragraphs というメンバーに格納する。 #include <string> #include <vector> #include <iostream> // 文書を表すクラス class Document { public: Document() { // 3つの段落を追加 paragraphs.push_back("paragraph 1"); paragraphs.push_back("paragraph 2"); paragraphs.push_back("paragraph 3");

    なぜRustはメモリ安全なのかをC++のコードと考える - Qiita
  • SQLわかんねーーーーーーーー!!!!!!

    学生時代に独学でVBAやってたのが零細企業でなぜか評価されてDB管理をやらされかけてるけど SQLマジでわかんねーーーーーーーーーーー!!! なんだこれーーーーーーーーーーーーー!! ああああああああああああああ!!!! わかんねーーーーーー!!!!

    SQLわかんねーーーーーーーー!!!!!!
    t-tanaka
    t-tanaka 2022/10/07
    マジレス。普通のプログラミング言語が処理を逐次的に記述するのに対してSQLはやりたいことを宣言的に書く。なのでテキシコーで言うところの「頭の中で手順をたどる」が異常に難しい。がんばれ。
  • インスタンスとオブジェクトの違い - きしだのHatena

    インスタンスとオブジェクトは混同しがちで区別がようわからんになりがちです。 とりあえず某所で説明したものを再構成します。 ※2022/12/10追記: クラスに対するのはインスタンスになるべき(たとえばクラス変数とインスタンス変数)なので、ちょっと修正するべきですが、このエントリはそのまま残してます。 クラス・インスタンス・オブジェクト クラスをインスタンス化(実体化)したものがオブジェクト(物)です。 実際に在るものはクラスとオブジェクトで、インスタンスはそれらの関係です。colorsやsportsが並んでるツリーが「オブジェクト」で、右のパレットに並んでるTreeが「クラス」、Treeからみたときのツリーが「インスタンス」ということになります。 ここでツリーはオブジェクトでもインスタンスでもあります。 このように、同じものをオブジェクトともインスタンスともいうことができるので混同してし

    インスタンスとオブジェクトの違い - きしだのHatena
    t-tanaka
    t-tanaka 2022/09/22
    私の理解では,鯛焼きの焼き型がクラスで,それで焼かれた食べられる菓子がインスタンス。鯛の形をした菓子と焼き型をあわせた「鯛焼き」という概念がオブジェクト。
  • GoでもJavaでもPythonでもPHPでもRubyでも作るものは大体一緒なのに

    どの言語の方が偉いとかダサいとかあって面倒だよね

    GoでもJavaでもPythonでもPHPでもRubyでも作るものは大体一緒なのに
    t-tanaka
    t-tanaka 2022/04/21
    プログラミング言語においては「コードを書く人が楽に書ける」と「人が書いたコードが楽に読める」はトレードオフの関係にある。どちらを重視するかで,文化が変わる。
  • Bugs in Hello World

    Hello World might be the most frequently written computer program. For decades, it's been the first program many people write, when getting started in a new programming language. Surely, this humble starting-point program should be bug free, right? After all, hello world programs only do one thing. How could there be a bug? Hello world in C There are a lot of different ways to write hello world in

  • はじめに - アルゴリズムとデータ構造大全

    はじめに このドキュメントは,主に競技プログラミングで出題される問題を解く際に利用できるアルゴリズムやデータ構造をまとめたものです.特定の問題にはあまりフォーカスしないため,問題を解く際の考察の仕方等の内容はありません.詳しく,正確に,分かりやすく書いていこうと思っています. このドキュメントは執筆途中です. 想定する読者 C++を用いたプログラミングに慣れている方を読者として想定しており,C++言語の仕様や,文法にはあまり触れません.また,計算量という用語についても説明しません.ただし,償却計算量など,計算量の見積もりが複雑なものについては必要に応じて説明します. コードについて このドキュメントで登場するコードは,可読性向上のため,以下のようなコードがファイルの先頭に記述してあることを前提としています.また,適切な問題を用いてコードの検証がなされている場合は,コード周辺にのように,検証

  • https://twitter.com/yunyundetective/status/1505290944366534658

    https://twitter.com/yunyundetective/status/1505290944366534658
  • 正規表現が ReDoS 脆弱になる 3 つの経験則

    はじめに 皆さんこんにちは.3回生のらん(@ran350jp)です. 文字列マッチングに便利な正規表現ですが,テキトーに書くと脆弱になり得るという情報を耳にしてから色々と原因や対策を調べていました. しかし,多くの記事で紹介されていた対策方法は,「独自の正規表現を使用しないー」とか「 * や + などの繰り返し表現はなるべく使わないー」とかいう なんともふわっとしたものでした.これでは「いやぁ確かにそうなんかもしれんけど…そうゆう訳にはいかんやんか…」と納得できません. つまり,「質的に何が問題」で,「具体的にどんな特徴のある正規表現が脆弱になり得るのか」を知りたい訳です. そこで,様々な文献を調査してみました.記事では調査して溜まった知見を紹介していきます. 記事は, Purdue大学のJames Davis教授による “The Regular Expression Denial

    正規表現が ReDoS 脆弱になる 3 つの経験則
  • "JWT=ステートレス"から一歩踏み出すための考え方

    おはようございます、ritouです。 この話に乗っかっていきます。 3行で ログアウト時にJWTを無効化できない実装は今後脆弱性診断で「OWASP Top 10 2021違反」と指摘されるようになりそう(今も個別にされてるかもしれないけど) JWTは単純なフォーマットなので、ステートレスなセッション管理においてログアウトしたときに文字列自体を無効化できない件は独自エンコード方式(一般的にフレームワークのCookieストアと呼ばれているもの)でも起こり得る 「セッションID vs JWTで内包」 以外にも 「セッションIDをJWTに内包」もあり得る。既存の機能を残しつつ「JWTで武装」する選択肢も考えてみてはどうか。 ステートレスなセッション管理でログアウトの際に文字列自体を無効化できない問題 これは前から言われていますし、駆け出し何とか勢のQiita記事に書かれるぐらいには一般的です。 2

    "JWT=ステートレス"から一歩踏み出すための考え方
  • 再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記

    数日前にTwitterで, JavaScriptのオブジェクトに対する===の挙動が初心者には難しいみたいな話を見かけた. 発端や周辺の議論をちゃんと追いかけてないからとくに出典は貼らない. たぶん元々の話は「へぇ, こういう挙動なんだ, 簡単ではないね」くらいの話だったのかもしれない. 自分のタイムラインの観測範囲では「そうだそうだ, (参照の同一性ではなく)同値性にしとけばいいのに」と思っている人もそれなりにいそうに見えた. 個人的にも同値性が簡単に確認できるとよい気はするものの, 「なんでそうしないんだ, オブジェクトの中身を確認していくだけだろ!」みたいな簡単な話ではないことも知っているため, 以下のようなツイートをしたのだった. JavaScriptのオブジェクトの同値性、再帰的な構造とか作るとぜんぜん自明じゃないんだよなぁ。リンクの構造は違うけどプロパティを辿ったときのパスはど

    再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記
    t-tanaka
    t-tanaka 2021/08/23
    結論:循環参照は悪。同値関係の判断が必要なオブジェクトの中に循環参照が入っているとしたら,設計自体が間違っている。
  • Takuo Kihira on Twitter: "プログラミング言語を分類したこのマトリクスは、私の感覚と非常に近くて最高に気に入りました。例えば JavaScript と TypeScript、縦軸は両方同じ位置ですけど横軸は大きく離れていますね。これが何を意味するのか。 https://t.co/FGO7PnzVf0"

    t-tanaka
    t-tanaka 2021/08/03
    爆笑。何の意味もないプログラミング言語マトリクスなんだけれど,なんかいかにもそれっぽい。
  • タイムゾーン呪いの書 (Java 編)

    「タイムゾーン呪いの書」は、もともと 2018年に Qiita に投稿した記事でしたが、大幅な改訂を 2021年におこない、同時にこちらの Zenn に引っ越してきました。この改訂で記事全体が長大になったので、「知識編」・「実装編」・「Java 編」と記事を分けることにしました。 この「Java 編」は、「知識編」と「実装編」に続く最終章です。記事全体を通して、「知識編」「実装編」を読んでいることを前提にしているので、ご注意ください。 はじめに 「知識編」と「実装編」では、言語やソフトウェア特有の話にはあまり踏み込まずに、時刻とタイムゾーンについてなるべく一般論を書いてきました。そんな中でも Java の JSR 310: Date and Time API は何度も参照しています。 JSR 310 は時刻やタイムゾーンという概念をけっこう上手に一般化していて、一般論の検討にもいいモデル

    タイムゾーン呪いの書 (Java 編)
  • 文字列を反転させたい|nona

    こんにちは。徒然なるままにTweetを眺めていたら、Tanakaさんがこのようなことを呟いていました。 そういやRustのStringにreverseメソッドないなと思ったけど、まあよく考えたらUTF-8で文字逆転させるとか地獄のような話になるしそもそも長さが変わるケースとかあったりしそうで怖いわな・・・(´・_・`) — Hideyuki Tanaka (@tanakh) May 1, 2021 背景等はよくわからないですが、文字列の反転というのは確かに難しい問題ですし、どう難しいのかというのを、ちょっと真面目に考えて解説してみました。というノートです。 文での表記についてこれから文字とそのバイト表現の話をしていきます。文字のエンコードの方式で同じ数値でも色々意味が分かれてしまいますので、文では以下のように表記することにします。 Unicodeコードポイント(以下、単にコードポイント

    文字列を反転させたい|nona
    t-tanaka
    t-tanaka 2021/05/02
    「Javaをお使いでしたら、BreakIteratorのCharInstance」最新のJava使えるのならばね。Java8で,これと同機能を実装しないといけないこととかあるんですよ。地獄ですよ。
  • プログラミング書籍を10年ぶりに改訂して気がついたこと

    はじめに 2011年に書いた良いコードを書く技術を増補改訂して出版しました。 Amazon | Rakutenブックス | honto | ヨドバシ.com | Gihyo Direct 10年ぶりに書籍を技術書を改定するという貴重な体験をさせていただいたので、執筆の中で気がついたことをご紹介します。 ちなみに初版を執筆した10年前はこんな世界です😳 VS Codeは存在せず、みんな秀丸Emacs、vim、Eclipseでコードを書いていた Java 7が出てたけど、Java 8まではあと3年待たないと行けない TypeScriptGo言語もSwiftもリリースされていない AWSの東京リージョンができたばかりでクラウドって何?って世界 GitはまだマイナーでSubversionでバージョン管理している人が多かった Dockerはまだない、VirtualBoxやVMwareを使ってた

    プログラミング書籍を10年ぶりに改訂して気がついたこと