タグ

ブックマーク / qiita.com (170)

  • decimal型(十進小数)に夢を見ている輩が多すぎる - Qiita

    みたいなのが挙げられます。これが話題になった時にSNSで見かける言説が「十進小数 (decimal) 型ならこういう問題はない」です。 ですが、decimal型は十進小数を正確に表現できるという話でしかなく、全ての実数を正確に表現できるわけではありません。例えば、 1.0 / 3.0 * 3.0 の計算を考えてみましょう。数学的には、これはちょうど 1.0 になるはずです。 C#の場合 C#には標準の decimal 型があります。これで 1.0 / 3.0 * 3.0 を計算してみましょう。

    decimal型(十進小数)に夢を見ている輩が多すぎる - Qiita
    t-tanaka
    t-tanaka 2024/06/09
    「0.1 + 0.2 === 0.3」にならない理由と「(1.0/3.0)*3.0 === 1.0」にならない理由は本質的に同じなんだが,decimal型は前者しか解決できない。10 (か,特定の2と5の倍数)の割り算しか正確には扱えない。
  • 金子勇さんのED法を実装してMNISTを学習させてみた - Qiita

    追記:続きを書きました。 はじめに 先日以下の記事が投稿され、その斬新な考え方に個人的ながら衝撃を受けました。 内容をざっくり言うと、ニューラルネットワークの学習を現在の主流であるBP法(誤差逆伝播法)ではなく、ED法(誤差拡散法)という新しい学習手法を提案しているものです。 もし記事の内容が当ならニューラルネットワークの学習がO(1)でできてしまう事になり、まさしく革命が起きてしまいます。 (結論からいうと速度面はそこまででもなかったです(それでも早くなる可能性あり)) (ただこの新手法のポテンシャルは革命を起こす可能性は秘めているといっても過言ではありません) ED法に関してネットを探すとインターネットアーカイブに情報が少し残っていました。 このページですがED法のサンプルプログラム(C言語)が残っており、このサンプルプログラムをベースにpythonで書き起こしたものが記事となりま

    金子勇さんのED法を実装してMNISTを学習させてみた - Qiita
    t-tanaka
    t-tanaka 2024/04/23
  • xzにバックドアが混入した件のまとめ(CVE-2024-3094) - Qiita

    記事は4月3日21:30(JST)時点で判明している事実をまとめたものです。誤りがあればコメントでお知らせください。 記事には誤りが含まれている可能性があります。 新しい情報があれば随時更新します。 ** 4/2 18:30 Q&Aを追加しました。 4/2 11:30 実際にバックドアが存在する環境を作成し、攻撃可能なこと、出力されるログ等について追記しました。また、攻撃可能な人物は秘密鍵を持っている必要があることを追記しました。** ところどころに考察を記載しています。 事実は~です。~であると断定し、考察、推測、未確定情報は考えられる、可能性があるなどの表現としています。 またpiyokango氏のまとめ、JPCERT/CCの注意喚起もご覧ください。 なお、各国のCSIRTまたは関連組織による注意喚起の状況は以下のとおりで、アドバイザリを出している国は少ない状況です。 概要 問題の

    xzにバックドアが混入した件のまとめ(CVE-2024-3094) - Qiita
  • GitHubのプロフィールを充実させてみよう♪ - Qiita

    はじめに こんにちは! DMM WEBCAMP Advent Calendar 2023 最後の25日目も去年に引き続き @Keichan_15 が担当させて頂きます!よろしくお願い致します! 今年は初の メンター × 卒業生のコラボ企画 ということで、1つの素晴らしいカレンダーを作り上げることができました! 記事執筆にご協力頂いた皆さん!当にありがとうございました! ■今までの記事はこちらからどうぞ! さて、そんなAdvent Calendarもいよいよ最終日を迎えることになりました。 25日目のお題は…、 【GitHubのプロフィールをアレンジして、多くの人に自分を知ってもらおう! 】 といった内容になります! 自身も個人開発や勉強のアウトプットの一環でGitHubを頻繁に使用するのですが、多くの人が訪れるGitHubのプロフィール、華やかにアレンジしてみたくないですか?? ちなみに

    GitHubのプロフィールを充実させてみよう♪ - Qiita
  • Docker が俺の Postgres を勝手に全世界に公開しやがって色々怒られた話 - Qiita

    こちらは 「番環境などでやらかしちゃった人 Advent Calendar 2023」 22 日目の記事になります。 はじめに Happy Coding!🤶 みなさん年末いかがお過ごしでしょうか。 私は卒論の抄録執筆が終わらないし、今年体調崩しまくってるしで泣きそうです😭 この記事では「Docker が俺の Postgres を勝手に全世界に公開しやがって色々怒られた話」について述べていきたいと思います。 ※所属団体の関係で、技術的な話以外のところの一部で詳しく話せないところはぼかしたり、デタラメなことで置き換えたりしています。ご了承ください。 背景 私は大学 4 年で、働いているという訳でもなく、 個人やちょっとした団体で Web アプリや API サーバなどを作って、みんなが使えるようにしています。 今回は数年前に起こった、とある団体でのお話です。 サービス構成 そこではオンプレ

    Docker が俺の Postgres を勝手に全世界に公開しやがって色々怒られた話 - Qiita
    t-tanaka
    t-tanaka 2023/12/22
    この件の教訓は,「Dockerの設定には気をつける」ではない。「オーケストレーションツールなしの素のDocker環境を本番として運用してはいけない」である。オレオレ・コンテナ運用は,どこかで必ず破綻する。
  • VSCodeの設定の切り替えや共有に便利なプロファイル機能を活用しよう - Qiita

    1. はじめに 魅力的な機能が多数登場しているVSCode、新しい機能や設定を試しているうちに、試用中の拡張機能が増えたり、設定が肥大化したりして魔改造になりがち。環境は綺麗に保ちたいですよね。 VSCodeの各種設定を綺麗に保つには、プロファイル機能を活用して、「普段使い用」や「お試し用」のように用途別の設定(プロファイル)として用意しておき、作業に適したプロファイルに切り替えて作業するのがおすすめです。 プロファイル機能は 1.75 ( January 2023 ) でGA(一般公開)となりました。 その後も機能追加が行われています。 記事では執筆時点の最新版 1.85 ( November 2023 ) を対象としています。 プロファイルはエクスポート・インポートもできるので、VSCodeの各種設定をプロファイルにまとめておき、エクスポートしたものをインポートしてもらうことで簡単に

    VSCodeの設定の切り替えや共有に便利なプロファイル機能を活用しよう - Qiita
    t-tanaka
    t-tanaka 2023/12/19
  • 不用意にサーバーでアプリを起動してハングアップさせてしまった話 - Qiita

    はじめに この記事は、番環境などでやらかしちゃった人 Advent Calendar 2023の18日目です。 もう何年も前のことなのでもうそろそろ時効だろうと思い、誰かの学びになればとここに供養します。 やらかしちゃった出来事 ある日の保守作業 保守管理しているWebシステムの調査のためにOracle Databaseが動いているWindows Serverにリモートデスクトップ接続していました。 調査の過程でデータベースインスタンスにアクセスして状態を確認する必要が生じました。 普段は自分のクライアントPCにインストールしたデータベースクライアントツールでつないで確認していたのですが、その時は横着してサーバーにインストールされていたSQL Developer(OracleGUIデータベースクライアントアプリ)を起動してしまいました。 固まる画面 じんわり起動していくSQL Deve

    不用意にサーバーでアプリを起動してハングアップさせてしまった話 - Qiita
    t-tanaka
    t-tanaka 2023/12/18
    LinuxでもWindows Serverでも動くソフトウェアを,あえてWindowsで使う理由と言えば,リモートデスクトップでつないで管理にGUIをガンガンに使いたいから。GUIが動かないようなメモリしか詰んでないのは,そもそもおかしい。
  • パスキーに入門してみた話 - Qiita

    久しぶりの投稿です。 はじめに 昨今、様々なサイトがどんどんパスキーに対応しはじめてきました。 まだまだパスキーがデフォルトになっていくには時間が掛かりそうですが、どのような仕組みでパスキーを実装するのか、早めにキャッチアップしておくのも悪くないと思い、パスキーについて色々と調べてみました。 パスキーとは? パスワードの代わりに、自分の持つデバイスによる生体認証やパターンを用いて認証を行う方法のことです。 次世代認証技術であるFIDO(Fast IDentity Onlineの略で、「ファイド」と呼びます)を使った認証方式(詳細は後述)で、AppleGoogleMicrosoftがFIDOを普及させるために命名したブランド名になります。 FIDOとは? 脆弱なパスワードは安全ではありません。 2段階・2要素認証を採用してもそれを有効にするユーザーは少なく、昨今では2段階認証を突破する攻

    パスキーに入門してみた話 - Qiita
  • エンジニアは全員おうちKubernetesをやるべし【Part 1:なぜやるのか】 - Qiita

    こんにちは。おうちKubernetesを勧めるためにやってきました。 このシリーズでは、Part 1で「なぜやるのか」、Part 2で「どうやるのか」について話します。 この記事は自宅サーバー上のKubernetesで不特定多数向けのサービスを展開することを勧めるものではなく、自分用・身内用のアプリを自宅サーバー上のKubernetesで運用することを勧めるものです。 エンジニアは全員おうちKubernetesをやるべき絶対的な理由 自己研鑽のために (鑽←この字「研鑽」と「大鑽井盆地」でしか見ない) 企業がKubernetesを採用する場合、ほとんどがEKSやGKEといったクラウド上で動作するマネージドKubernetesサービスを使用すると思います。ただ、Kubernetesであればコマンドやマニフェストファイルの書き方は共通なので、おうちKubernetesで学んだことがそのまま業務

    エンジニアは全員おうちKubernetesをやるべし【Part 1:なぜやるのか】 - Qiita
    t-tanaka
    t-tanaka 2023/11/22
  • ほんとうにあった開発生産性が爆下がりする話 - Qiita

    昨今、継続的にプロダクト開発していくことが主流となり、Four Keysなどの開発パフォーマンスを測る指標なども出てきており開発生産性を向上させることが注目されています。 しかし、かつての開発現場では今では信じられないような開発生産性を爆下げするようなことをやっていました。 この記事では10年以上前に私が経験した開発生産性を爆下げする事例を書いていこうと思います。 (私が体験したことをベースに書いているので10年前は全てがこうだったということではないのでご留意ください ) 修正前のコードはコメントアウトで残す 当時、ウォーターフォールで開発していました。 ウォーターフォールでは開発工程とテスト工程が分かれています。 開発工程で一通りコーディングして、テスト工程で動作確認を行いバグを潰します。 問題はここからです。 とある現場では、テスト工程でバグを直すときにコードを破壊的に直すのではなく、

    ほんとうにあった開発生産性が爆下がりする話 - Qiita
    t-tanaka
    t-tanaka 2023/10/19
    これが運用の現場ではいまも当たり前に行われてる悪夢。なんちゃら.confの中には,コメントアウトされた大量の変更履歴。ID名のスクリプト。Excelによる業務手順書。なんでもかんでも画面キャプチャ。
  • 【衝撃の罠】bashスクリプトのパフォーマンス測定は、対話シェルでやっても無意味だ! - Qiita

    理由 びっくりした。対話シェルで実行してパフォーマンス測定すると何故かめちゃくちゃ時間がかかる。これではデータにならない。 追記 よくよく考えたらパフォーマンス測定だけの問題ではなく実際に遅くなるのだから、対話シェルから「このようなコード」を実行してはいけないということを意味しています。「このようなコード」がどのようなコードなのか発生条件はまだ特定できていませんが、少なくともシェルスクリプトにしていれば問題は発生しません。また bash 以外のシェルでも問題は発生しません。 検証結果が気になった方は、ぜひ試してみて、この話を広めてください。 証拠 実行環境: Ubuntu 22.04.3 LTS、bash 5.1.16

    【衝撃の罠】bashスクリプトのパフォーマンス測定は、対話シェルでやっても無意味だ! - Qiita
    t-tanaka
    t-tanaka 2023/09/30
    手元のMacでは,両方とも誤差の範囲で同程度の実行時間だった。
  • 難解言語 Malbolge は HelloWorld に「2 年」かかった - Qiita

    TL; DR こちらが難解プログラミング言語 Malbolge で HelloWorld を行うプログラムになります。プログラムとはいったい・・・ (=<`$9]7<5YXz7wT.3,+O/o'K%$H"'~D|#z@b=`{^Lx8%$Xmrkpohm-kNi;gsedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543s+O<oLm Malbolge Malbolge は 1998 年 Ben Olmstead により開発された難解プログラミング言語です。オリジナルのホームページはとっくに消滅していますが、幸いにもアーカイブは残っていました。 Malbolge は難解プログラミング言語の中でも特に難解であること自体を目的に開発された、文字通り地獄みたいな言語です。 Malbolge was truly created with the i

    難解言語 Malbolge は HelloWorld に「2 年」かかった - Qiita
    t-tanaka
    t-tanaka 2023/09/25
    どうせ3bitアーキテクチャーの仮想マシンを作るのなら,いっそのことBool代数ではなく三値論理学で実装して欲しかった。より地獄が深くなるぞw
  • Java 21新機能まとめ - Qiita

    Java 21が2023/9/19にリリースされました。 https://mail.openjdk.org/pipermail/jdk-dev/2023-September/008267.html The Arrival of Java 21! LTSであり、パターンマッチングや仮想スレッドが正式化され、プレビューとして入ったString Templatesや無名クラス&インスタンスメインメソッドも面白い機能なので、大切なリリースになっていると思います。 詳細はこちら JDK 21 Release Notes Java SE 21 Platform JSR 396 OpenJDK JDK 21 GA Release APIドキュメントはこちら Overview (Java SE 21 & JDK 21) 追加されたAPIまとめはこちら https://docs.oracle.com/en/

    Java 21新機能まとめ - Qiita
  • 【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita

    はじめに もう文字列の置換で sed コマンド使うの禁止して良いんじゃないですかね? 言いすぎだとわかってあえて言っていますが。 悪い書き方(外部コマンドに頼る方法) # 変数 line に入ってる文字列を echo コマンドで出力して sed コマンドに渡し、 # sed の s コマンドで "from" を "to" に置換して出力したものを ret 変数で受け取る ret=$(echo "$line" | sed "s/from/to/")

    【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita
    t-tanaka
    t-tanaka 2023/09/05
    文字置換を複数回やる必要があるときに「sed -e "s/ / /g" -e "s/ - .*.mp4/.mp4/"」みたいに並べられるのが便利なんだよなー。
  • クラウド時代も「アプリ」と「基盤」のチーム分けで本当にいいの? - Qiita

    私は新卒のときから10年ほどIT業界、ときには会社を移りながらエンタープライズのSI(System Integration)のさまざまな現場で働いてきましたが、システム開発のチーム編成として「アプリケーション担当」と「インフラ担当」に分かれていることが長らく当たり前でした。 最近はAWSをはじめとするパブリッククラウドの台頭、特に抽象度の高いマネージドサービスの普及によって従来型の分業モデルが理に叶わなくなってきたのでは?と感じることが増えたので、ポエムを書いてみます。 みなさんの案件はどんなチーム分けですか? 私がよくいた「エンタープライズの業務システム開発」はこんなフォーメーションが多かったです。 とある社内向けWebシステムの開発体制 ユーザー企業(発注元の会社スタッフ) アプリケーション担当:通称「業務」。要求定義と仕様調整。事業会社だとコードレビューまではしないところが多い印象

    クラウド時代も「アプリ」と「基盤」のチーム分けで本当にいいの? - Qiita
  • 「なんで、for文ってforなの?」って、みんな思ったはず。 - Qiita

    words = ['Japanese', 'English', 'French'] for w in words: print (w) # 結果 Japanese English French 同じ処理を繰り返すので「ループ処理」とも言われます。ではなぜloopじゃなくて、forなのか?と思いますよね。おれもそう思い、3年くらい経過していました。 ちなみに、別でwhile文もループ処理になります。 ちなみに、使い分けとしては、 for文: 繰り返し回数を指定したい処理 while文: とにかく条件ごとに値を処理 という使い分けができそうです。 題:for文は如何にしてforなのか。 そろそろ題に入りましょう。 なぜ、for文はforでループ処理なのか? 調べてみました。 そもそも、ループ処理の種類の表し方は? ループ処理では、whileやforがあることはご存知の通りかもしれませんが、

    「なんで、for文ってforなの?」って、みんな思ったはず。 - Qiita
    t-tanaka
    t-tanaka 2023/08/13
    名前に反して(w),FORTRANはFOR構文を持っていない。FORTRANから数年遅れて開発され,FORTRANの反省をいろいろと取り込んだALGOLで発明されたのがFOR構文。
  • 歴代チャットボットと最近のLLMのまとめ - Qiita

    LLMs The History of Chatbots ELIZA (1966) 初期の人工知能プログラムのひとつ。 ルールベースの簡単なパターンマッチングで返答していた。 心理療法士の会話を模したELIZA(DOCTOR)が有名。 PARRY (1972) PARRYは偏執病的統合失調症患者をシミュレートしようとしたもの。 ELIZA(DOCTOR)と通信し話題となった。 Jabberwacky (1982, 1988, 1997) ユーモラスな人間同士の自然な会話をシミュレートすることを目的としていた。 ユーザーとの会話の大規模なデータベースを構築し、言語と文脈を学習することができた。 プロジェクト自体は1982年から開始されていたが、当初は学習機能は有していなかった。 ローブナー賞を2005年(George)、2006年(Joan)に受賞している。 ローブナー賞(Loebner P

    歴代チャットボットと最近のLLMのまとめ - Qiita
    t-tanaka
    t-tanaka 2023/06/02
  • 良いITアーキテクチャと良いミドルウェアの息は長い - Qiita

    アーキテクチャとWAS、DB2の活躍 20数年前にもなります。 B2B大規模WebシステムのITアーキテクチャ設計を行い、お客様のビジネスに大きく貢献できたことを今でも誇らしく思っています。リードITアーキテクトとしてプロジェクトに参加しましたが、インフラ・アーキテクト、アプリケーション・アーキテクト、WAS、DB2、ネットワークのスペシャリストとのコラボレーションの総合力で設計できたと考えています。このシステムのITアーキテクチャの判断 (Architectural Decision)を、WAS、DB2の活用とともに紹介いたします。 非機能要件はとても厳しいものでした このB2B Webシステムは 企業から金融機関への資金移動のオンライン窓口となるため、その要件、特に非機能要件(NFR)は厳しいものがありました。 1. 高セキュリティ資金移動の窓口のため、顧客データや取引データなど高いセ

    良いITアーキテクチャと良いミドルウェアの息は長い - Qiita
    t-tanaka
    t-tanaka 2023/05/26
  • シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題 - Qiita

    シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題ShellScriptUNIXshellシェル芸POSIX はじめに シェルスクリプトで ls コマンドの出力結果(ファイル名一覧)をパイプで他のコマンドに渡して処理するのは推奨されません。ls コマンドを使ったコードを ShellCheck で検査するとおそらく問題があると警告が表示されるでしょう。ls を使うなという指摘自体には賛成なのですが SC2010、SC2011、SC2012 に書いてある理由については正しい説明がされていないと思っています。この記事ではなぜ ls の出力結果を他のコマンドにパイプで渡すのが悪いのか、ls を使わずに実現するにはどうしたら良いのかを解説したいと思います。一つ補足をしておくと、この問題は CLI コマ

    シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題 - Qiita
    t-tanaka
    t-tanaka 2023/01/09
    ファイル名に改行を使えていいことなんて一つもないので,ファイルシステム側で使うのを禁止してくれないかな。
  • マイクロサービスとトランザクション - Qiita

    AWS for Games Advent Calendar 2022 9日目の記事です。 Game Server Services(GS2) ではゲームに必要となるサーバー機能をマイクロサービス化し、皆さんに提供しています。 マイクロサービスには所持品の管理や、ゲーム内ストア、課金通貨の残高管理など30を超える機能を用意しており、これらを組み合わせながらゲーム内の仕様を実現できるようにしています。 さて、マイクロサービスの最も難しい課題はトランザクションにあると私は考えています。 今回は Game Server Services がどのようにこの課題に立ち向かい、そして問題を解決しているかお話ししたいと思います。 マイクロサービスとトランザクションの両立がなぜ難しいのか モノリシックなサーバーシステムは、大体の場合「所持品の所持数量」と「課金通貨の残高」は同じRDBに保存しています。 そし

    マイクロサービスとトランザクション - Qiita
    t-tanaka
    t-tanaka 2022/12/25
    トランザクションと結果整合性