並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 99件

新着順 人気順

文字列とはの検索結果1 - 40 件 / 99件

  • 📗 なぜ依存を注入するのか DIの原理・原則とパターンを読んだ感想 | Happy developing

    なぜ依存を注入するのか DIの原理・原則とパターン 著者: Steven van Deursen, Mark Seemann 訳者: 須田智之 表紙には.NETやC#の文字はないのですが、前の版は"Dependency Injection in .NET"で.NETを前提した本のようでした。 ただ、はじめにで 本書では、.NETとC#を用いて、依存注入に関する用語や指針を包括的に紹介し、描写しているのですが、本書の価値が.NETの外の世界にも届くことを望んでいます。 とありました。 RustのDIでなにか活かせる教えを期待して、読んでみました。 第1部 依存注入 (Dependency Injection: DI) の役割第1章 依存注入 (Dependency Injection: DI) の基本: 依存注入とは何なのか? なぜ使うのか? どのように使うのか?まず、保守容易性(maint

      📗 なぜ依存を注入するのか DIの原理・原則とパターンを読んだ感想 | Happy developing
    • 医薬品検索でMySQLの全文検索機能を使った話 - KAKEHASHI Tech Blog

      AI在庫管理の開発チームでバックエンドエンジニアをしている沖です。今回は、AI在庫管理の医薬品検索において、MySQLの全文検索機能を使った話を紹介しようと思います。 この記事は秋の技術特集 2024の 8 記事目です。 今までの医薬品検索では満足できないユーザーがいた なぜMySQLの全文検索機能を採用したのか 全文検索機能を導入する 全文検索インデックスを付与したテーブルを作成する パーサー 照合順序と正規化 全文検索インデックスを使用して検索する データを最適な状態に保つために おわりに 今までの医薬品検索では満足できないユーザーがいた AI在庫管理には、医薬品の在庫一覧画面など、医薬品名で絞り込む画面がたくさんあります。この絞り込み機能を実現するために、これまではSQLのLIKE検索を利用していました。 LIKE検索は、使い慣れたSQLを用いて部分一致検索を実現できる便利な方法です

        医薬品検索でMySQLの全文検索機能を使った話 - KAKEHASHI Tech Blog
      • 連番IDを使うと会社が潰れる。(訳: 連番とUUIDのベンチマークを取ってみた❤️)

        大いなる流れには逆らえない あるAI研究者が言っていた、私の仕事もいつか AI に奪われるという言葉が非常に印象的だった。 私は一時期自分のキャリアに危機感を覚えAIに関する情報を集めていた。そのとき見つけたYoutube動画でこのようなことが語られていたのである。 ではなぜ彼らは研究を続けるのかと思うかもしれないが、個人や一団体がそれを放棄したところで世の中のイノベーションの流れを止めることは不可能だろう。 平和を望む国々も兵器開発をやめられないのと似たようなものだ。 私がこの記事のタイトルを思いついたとき、つい溜息が出た。あまり楽しくない思い出があるからだ。 ただ、思いついてしまった以上これを世に出さないわけにもいかず、血の涙を流しながらこの記事を書いている。 私というちっぽけな存在では、この大宇宙の大いなる流れには逆らえないのだ。 申し遅れました。私、YadaYadaKonnanYa

          連番IDを使うと会社が潰れる。(訳: 連番とUUIDのベンチマークを取ってみた❤️)
        • 美しいQRコードを作成できる「qrframe」

          QRコードと言えば、黒と白のドットが無機質に並んだものというのが一般的なイメージとしてあります。このQRコードに色づけしたり形を変えたりして装飾できる「qrframe」というページが公開されていたので使ってみました。 qrframe.kylezhe.ng/ https://qrframe.kylezhe.ng/ 上記のURLにアクセスすると以下のような画面が現れます。 テキストボックスに何らかの文字列を入れるとすぐに対応するQRコードが生成されます。 下部にはQRコードの表示パターンのプリセットがいくつか用意されていて、選択するといろいろなデザインのQRコードを表示させることが可能。 デザインによってはQRコードには見えないものもありますが、ちゃんとQRコードとして認識することができます。 ページをスクロールするとカラーや表示パターンを自分で変更可能。 背景色を変更する「Backgroun

            美しいQRコードを作成できる「qrframe」
          • Rails vs Node.js

            Previous slideNext slideToggle fullscreenOpen presenter view Rails vs Node.js 最終章 「Prisma」 @mizchi Cloudflare Meetup 2024/10/02 今日の Prisma + Cloudflare の様子 About https://x.com/mizchi Node.js とフロントエンドの専門家 100万円*達成率で御社のフロントエンドの高速化をやります 前書き フロントエンド/Node.js 視点のポジショントークです Railsに対するチャレンジャーとして Node.js を使ってきた話 Rubyの開発者やRubyのユーザーを否定する意図はありませんが、好き嫌いは否定しません。型が好きです 「Rails」は 2010年前後に流行っていた任意なWAFに置き換え可能 Symfony

            • ルールは現場で死にました - The Rules of Programming の読書感想文 - じゃあ、おうちで学べる

              本日は人生の数ある選択肢のなかから、こちらのブログを読むという行動を選んでくださいまして、まことにありがとうございます。 はじめに プログラミングの世界には多くの指針や原則が存在します。Chris Zimmerman氏の「The Rules of Programming」(邦題:ルールズ・オブ・プログラミング ―より良いコードを書くための21のルール)は、不変の知恵を凝縮した一冊です。これらの原則は、多くの開発現場で活用できる有益な内容となっていると思いました。 The Rules of Programming: How to Write Better Code (English Edition) 作者:Zimmerman, ChrisO'Reilly MediaAmazon 本書は、大ヒットゲーム『Ghost of Tsushima』などで知られるゲーム制作スタジオ、Sucker Pun

                ルールは現場で死にました - The Rules of Programming の読書感想文 - じゃあ、おうちで学べる
              • 開発環境のデータベースでも本番環境相当のデータを使う - クックパッド開発者ブログ

                こんにちは。レシピ事業部バックエンド基盤グループの石川です。 2014 年、このブログに『開発環境のデータをできるだけ本番に近づける』というタイトルの記事が投稿されました。 クックパッドでは、ユーザーさんが実際に体験している状況と近い状況を再現しながら開発することに価値があると考えています。技術的には、最初からレコードがたくさんあることによってパフォーマンス問題に気付きやすくなるなどの長所がありますし、サービス開発としても、実際のユーザーさんの体験を最速でなぞって素早くフィードバックループを回せるようになるという長所があります。 この慣習は 2014 年の記事から 10 年経った今でも続いています。一方でその実現手法については変化を続けてきました。現在のクックパッドでは状況に応じていくつかの手段を使い分けています。それらの手段については今まであまり公開されていなかったような気がするため、こ

                  開発環境のデータベースでも本番環境相当のデータを使う - クックパッド開発者ブログ
                • プログラマ vs AI 生存競争

                  Previous slideNext slideToggle fullscreenOpen presenter view プログラマ vs AI 生存競争 mizchi NextBeat 第一回プログラミング教育について語る会 About https://x.com/mizchi Node.js とフロントエンドの専門家 100万*達成率で御社のフロントエンドの高速化をやります 話したいこと 今一度、共同作業者・競争相手としてAIを見直す 「俺達はAIに勝てるのか?」 2024/09 (chatgpt o1-preview) の世界観 AI ≒ LLM 背景 機械学習はにわか。主にユーザー目線 前職: 非エンジニア向けコード生成パイプラインのR&D 大学の研究室で教育工学を少し(暗黙知記述、オントロジー) もう一度向き合う プログラマ vs AI プログラマ vs AI 建前 「AI は人

                  • 不要な処理が実行速度を速くする謎を追う - Money Forward Developers Blog

                    こんにちは。 id:Pocke です。マネーフォワードでは Rails を用いた Web アプリケーションの開発と、RBS という Ruby の静的型システムの開発を行っています。 最近 RBS の開発をする中で、「不要な処理を削除すると実行速度が遅くなる」という不思議な現象に遭遇しました。この記事ではその現象を解説しようと思います。 なおこの記事は Ruby の知識を前提としないように執筆されており、Ruby の知識が必要となるところには注釈を加えて補足しています。 普段 Ruby を書かない方にも読んでいただければ幸いです。 問題を引き起こした変更 今回の問題は、RBS のメモリ使用量の削減を行っている中で遭遇しました。まずはどんな変更を行おうとしていたかを解説します。 変更の動機 最近私は RBS のメモリ使用量の削減に取り組んでいます。1 その取り組みの中で、RBS のパーサーが作

                      不要な処理が実行速度を速くする謎を追う - Money Forward Developers Blog
                    • Pythonで作るポップなポモドーロタイマー - Qiita

                      はじめに こんにちは!今回は、Pythonを使ってポモドーロタイマーを作成する過程を、要件定義から実装まで詳しく解説します。このプロジェクトを通じて、以下のスキルを身につけることができます: ソフトウェア開発のプロセス(要件定義、仕様策定、設計、実装) Pythonの基本的な構文とオブジェクト指向プログラミング Tkinterを使ったGUIアプリケーションの作成 時間管理の基本概念とその実装方法 それでは、プロジェクトの各段階を見ていきましょう。 1. 要件定義 まず、ポモドーロタイマーの基本的な要件を定義します。 1.1 機能要件 25分の作業時間を計測するタイマー機能 5分の短い休憩時間を計測するタイマー機能 15分の長い休憩時間を計測するタイマー機能(4回の作業セッション後) タイマーの開始、一時停止、再開、リセット機能 現在のフェーズ(作業、短い休憩、長い休憩)の表示 完了したポモ

                        Pythonで作るポップなポモドーロタイマー - Qiita
                      • 世界一わかりやすいゼロ知識証明 Vol.2: Zero-Knowledge Proofs in the Context of Modern Cryptography

                        このブログシリーズをグラントプロジェクトとしてサポートしてくださっているイーサリアム財団、また執筆に際してフィードバックとレビューをしてくださった末神奏宙さんに感謝します。 Special thanks to Ethereum Foundation for awarding grants to this blog post series, and Sora Suegami for feedback and review. このブログシリーズは、ソフトウェアエンジニアに限らず、あらゆる日本の読者のみなさんに向けて、最先端の暗号技術とその重要性をわかりやすく説明するという趣旨で書かれています。それぞれ単体の記事としてもお読みいただけますが、順番に読み進めていくことでより理解が深まります。まだお読みでない方は、ブロックチェーンやコンセンサスアルゴリズムの仕組みについて解説しているVol.1を先に

                        • パスワードマネージャーは必要か? そしてなぜKeeperか? - Qiita

                          総当たりする所要時間を考えると、9桁以下や10桁でも文字の組み合わせに記号がないと、危険ですね。 尚、同ガイド「インターネットの安全・安心ハンドブック」には、第6章でパスワードに関することのみにフォーカスした章があり気になる方にはおススメです。 パスワードの使い回し禁止の人力は現実的? パスワード長く記号も使おうはわかったよと、そして次の節が「使い回しはだめよ」です。使い回しがだめなら単に最後の文字だけ変える、これもだめです。 それが、だめなのはわかるのですが、わかりますが長くて複雑かつ使い回さないものは覚えられないですよね、私は電話番号という数値のみの10~11桁をよく使うものなら覚えられ、それ以上は厳しいです。 覚えられないパスワードは保管して、適時利用することが推奨されます。次の節でその方法について説明します。 「ノートに書く」? 必要に応じてノートを開く、そこに複雑な文字列がある.

                            パスワードマネージャーは必要か? そしてなぜKeeperか? - Qiita
                          • 標準SQL+データベース入門 ——RDBとDB設計、基本の力[MySQL/PostgreSQL/MariaDB/SQL Server対応]

                            書籍案内 » 書籍ジャンル » ネットワーク・UNIX・データベース » データベース・SQLなど » 標準SQL+データベース入門 ——RDBとDB設計、基本の力[MySQL/PostgreSQL/MariaDB/SQL Server対応] Tech × Books plusシリーズ標準SQL+データベース入門 ——RDBとDB設計、基本の力[MySQL/PostgreSQL/MariaDB/SQL Server対応] この本の概要 「標準SQL」&「データ設計」を土台に,SQL&データベースの基本を学べる入門書。 「SQLでどんなことができるのか」「どんなときに便利なのか」「なぜそんなしくみになっているのか」一つ一つ,ステップアップしながら解説します。 本書の特徴は「標準SQL」準拠である点と文法の背景にある「データ設計」を丁寧に扱っている点です。SQL学習時の頻出ケースである,思った

                              標準SQL+データベース入門 ——RDBとDB設計、基本の力[MySQL/PostgreSQL/MariaDB/SQL Server対応]
                            • Cloudflare PagesにそれなりにちゃんとBasic認証をかける | おそらくはそれさえも平凡な日々

                              前回の、社内プライベートポッドキャスト実現方法で、ポッドキャストサイトを静的配信しつつBasic認証をかけるというアイデアを書いた。しかし、Basic認証などなかなか使わなくなり、ネイティブでサポートしている静的ホスティングサービスも少ない。今回はCloudflare PagesのFunctions機能でリクエストをラップするミドルウェアを書けば実現できることが分かり、その方式を採用することにした。多少実装必要になるのと、認証周りを自前で書くのはあまりやりたくはないが、廉価に比較的省力で実現できるので受け入れる。 ネット上にいくつかサンプルは見つかるが、今回実装するにあたっては以下の点を留意した。 コード内に認証情報を載せない 複数ユーザーのIDとパスワードを管理できるようにする パスワードは定数時間比較してタイミング攻撃を防ぐ これらを以下のように解決することとした。 認証情報は環境変数

                                Cloudflare PagesにそれなりにちゃんとBasic認証をかける | おそらくはそれさえも平凡な日々
                              • 汚いコードの害を伝えたいだとか

                                汚いコードはよくない (2024.9.22 追記:続編を具体的にかきました!) コードを書くと、コードは増える プログラムは、ソースコードと呼ばれる文字列を記述する事で作成されます。このことを、単にプログラムを書く、コードを書く、などと言ったりします。 ほとんどの場合、プログラムを書くときには、その目的があります。 なにかの目的を達成するために、ソースコードと呼ばれる文字列を記述します。 この記述方法にはいろいろなものがあり、同じ目的を達成するにも無数の方法が存在します。 どの方法を選ぶかは作者に任されている、という言い方もできます。 ところで、ソースコードを記述していき、プログラムで実現できる事が細かくなるにつれて、文字の数はだんだんと増えていきます。 コードの増え方にもいろいろある この文字が増えていく様子を比喩的に表現することを考えます。例えば書類を積み上げることや、積み木を積み上げ

                                  汚いコードの害を伝えたいだとか
                                • プログラミング〈新〉作法 これからプログラムを書く人のために

                                  「プロとしてプログラムが書ける人」に求められる能力が大きく変わった! 1つのプログラミング言語にこだわらず、それぞれの言語のベストプラクティスを学ぼう。現代のプログラミング言語を支える技術が凝縮した一冊 第1章 はじめに 1.1 プログラミングに必要な知識とは 1.2 本書の構成 1.3 プログラマに伴走する生成AI 1.4 コーディング環境 1.4.1 オンライン実行環境 1.4.2 ローカルでのコーディング環境 1.5 まとめ 第2章 C言語からはじめよう 2.1 C言語とは 2.2 入力・演算・出力 2.2.1 変数・定数・リテラル 2.2.2 演算子 2.2.3 入出力関数 2.2.4 数値計算を行うプログラム例 2.2.5 配列 2.2.6 文字と文字列 2.3 制御構造 2.3.1 条件分岐 2.3.2 繰り返し 2.3.3 構造化プログラミング 2.4 関数 2.4.1 ma

                                    プログラミング〈新〉作法 これからプログラムを書く人のために
                                  • Windowsカーネルから見るオブジェクトハンドル - ラック・セキュリティごった煮ブログ

                                    デジタルペンテスト部の北原です。 今回は、Windowsでのツール開発者にとっては重要なハンドルの内部について解説します。 Windowsでは、ファイルやプロセスから始まりすべてのリソースはオブジェクトとして扱われ、ファイルの削除やメモリの確保にはハンドルを取得する必要があります。 ツールやアプリケーションの開発者にとっては、日常的にハンドルを操作する機会がありますが、通常の利用者にとってはあまり意識するものではありません。 本記事では、Windows OSでのハンドルの役割と、OS内部でどの様に管理されているのかについて解説します。 記事の構成は以下の通りです。 ハンドルの役割とアクセス権限 ハンドルへの情報の問い合わせと操作 カーネル空間でのハンドル管理 応用例1 - オブジェクトをロックしているプロセスの特定 応用例2 - カーネルモードルートキット 本記事は以下の読者層を想定してい

                                      Windowsカーネルから見るオブジェクトハンドル - ラック・セキュリティごった煮ブログ
                                    • Next.js(App router)における開発しやすいディレクトリ構成の例 - TechDoctor開発者Blog

                                      初めまして、テックドクターでフロントエンド開発を担当している大瀧です。 ディレクトリ構成はコードの可読性やスケーラビリティに関わる重要な要素であると思っています。 しかし、フロントエンドのディレクトリ構成はベストプラクティスが確立されておらず、わりと悩むポイントです。 そこで今回は、Next.jsのApp routerにおいて、弊社で採用しているディレクトリ構成を共有します。この記事がディレクトリ構成に悩む開発者の助けになれば幸いです。 ディレクトリ構成の自由度が高すぎる問題 さきほど「フロントエンドのディレクトリ構成はベストプラクティスが確立されていない」と書きましたが、特にApp routerのディレクトリ構成については、公式ドキュメントで以下のように記載されています。 There is no "right" or "wrong" way when it comes to organi

                                        Next.js(App router)における開発しやすいディレクトリ構成の例 - TechDoctor開発者Blog
                                      • AndroidからiPhoneに乗り換え。しんどいと思ったこと9選

                                        AndroidからiPhoneに乗り換え。しんどいと思ったこと9選2024.09.29 16:35683,863 Kyle Barr - Gizmodo US [原文] ( satomi ) 数々の冒険をサバイブしたGoogle Pixel 3。ケースつけてもボロっボロだが、右のApple純正クリアケースのほうが間にたまったホコリは目立つ Photo: Kyle Barr / Gizmodo 2023年8月9日の記事を編集して再掲載しています。 もう昔みたいにAndroidとiOSの垣根はないよね!と思った自分が甘かった…。Pixel 3からiPhone 14 Proに乗り換えて、それを嫌というほど思い知りました。 GoogleもAppleもひいきのユーザーにはよくしてくれるけど、やめた人間には冷たいもんですよ。 かくいう自分はどこにでもいるニューヨーカー。多忙で、週末はだいたい遠出します

                                          AndroidからiPhoneに乗り換え。しんどいと思ったこと9選
                                        • 初心者がDifyでワークフローを作る際に知っておくと便利な5つのこと

                                          はじめに この記事で想定している読者の方: Difyの使い方にまだ馴染めていない方 ワークフローで何か作ってみたい方 簡単にPythonが書ける方 LLMを用いたアプリケーションをノーコード・ローコードで作成できるサービスである「Dify」がその使いやすさと拡張性の高さから最近注目を集めています。しかし, 「Difyを知っているけどまだ使って何かのアプリケーションを作ったことはない...」という方も多いのではないでしょうか。特に, 自由度が高い様々な機能を持ったノードを組み合わせることでLLMを自在に組み込んだシステムを作成できる「ワークフロー」機能は公式でも「経験豊富なユーザ向け」と紹介されている通り少し難易度が高いですが是非使ってみたい機能です。 そこでこの記事では, Dify初心者の方向けに, Dify初心者だった自分が「ワークフロー」機能を用いてシステムを作ってみて詰まった部分とそ

                                            初心者がDifyでワークフローを作る際に知っておくと便利な5つのこと
                                          • 60年前からのプログラミング和文論文を掘り起こした話

                                            本記事の初版を公開したのは 2024 年 9 月 21 日だったのですが、その後 9 月 26 日に、ピックアップした論文を大幅に増やして更新しました。 また、最初はタイトルを「和文プログラミング論文を〜」としていたのですが、いわゆる「日本語プログラミング言語」の話にも見えてしまうことから、「プログラミング和文論文を〜」に置き換えました。 日本の人々が「プログラミング」にかかわるようになったのは、いつごろでしょうか? その前に、まずは世界のコンピュータとプログラミングの歴史を簡単に振り返ってみましょう。まずは OS から有名どころをたどると、 わかりやすく Windows 95 が 1995 年 [1] その前に広く使われた Windows 3.1 は 1992 年 [2] その下で動く MS-DOS は、バージョン 6 が 1993 年、バージョン 1 が 1981 年 [3] Linu

                                              60年前からのプログラミング和文論文を掘り起こした話
                                            • 反AIさん、知識基盤のレベル合わせをしよう

                                              生成AIはAIじゃないーのやつ1.一般的に言われるAIは、狭義のAIすなわち完全自律自己成長型人工知能の事ではないよ 2.これをAIと認めないなら AI Act 筆頭に人工知能を対象とした規制は「生成AIはAIじゃないんで関係ないね」になるよ 3.「生成AI」はホニャララ生成モデルを包括した用語だから、当たり前に使ってる機能が実は生成AIだという事もよくあるよ 生成型検索エンジンという発言を鵜呑みにしてるやつ1.テキストを入力したら入力通りの画像が生成表示されるText-to-Imageの様子を検索エンジンになぞらえただけのものだよ 2.本気で生成AIはAIじゃなくて検索エンジンだと思ってるのは君だけだよ AIはネット環境が必須だと思ってるやつ1.そういうのもあるし、そうじゃないものもあるよ 2.極端な話、個人のゲーミングパソコンで動く程度のAIはネットワーク不要だと思って差し支えないよ

                                                反AIさん、知識基盤のレベル合わせをしよう
                                              • nginxのproxy_cache_lockと謎の500ms - Cybozu Inside Out | サイボウズエンジニアのブログ

                                                はじめに Cloud Platform部のpddgです。2024年もサマーインターンシップを開催し、プラットフォーム(自社基盤)コースとして2名の方を受け入れました。 昨年の様子は以下からご覧いただけます。興味があれば是非ご覧下さい。 blog.cybozu.io 今回は受け入れたお二方のうち藤本陽人さん(static-fuji)に担当していただいた検証の中で発見したやや直感的でない挙動について、藤本さんによる検証結果を社員がまとめたものになります。 この記事内での検証のほとんどはインターン生である藤本さんによって実施されたものですが、一部社員がインターンシップ完了後にこの記事の執筆のために生成した図等も含まれます。 また、もう一人のインターン生の方にはRustでロードバランサを書くという課題に挑戦していただきました。こちらもインターン生の方に大活躍していただいています。是非ご覧下さい。

                                                  nginxのproxy_cache_lockと謎の500ms - Cybozu Inside Out | サイボウズエンジニアのブログ
                                                • Rustで学ぶWebAssembly――入門からコンポーネントモデルによる開発まで

                                                  2024年10月10日紙版発売 清水智公 著 B5変形判/256ページ 定価3,300円(本体3,000円+税10%) ISBN 978-4-297-14413-5 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Amazon Kindle honto この本の概要 Webブラウザー上でプログラムを高速に実行するための技術として開発されたWebAssembly(Wasm)ですが,近年では「特定のプログラミング言語・アーキテクチャに依存しない」「プログラムをサンドボックス内で安全に実行できる」という強みに注目が集まっています。さらに,新たに導入される予定の「コンポーネントモデル」によって,大規模なプロジェクトでもWebAssemblyを利用しやすくなる環境が整いつつあります。本書では,プログラミング言語としてRustを採用し,以下の3つの観

                                                    Rustで学ぶWebAssembly――入門からコンポーネントモデルによる開発まで
                                                  • OpenAI の Realtime API の使い方|npaka

                                                    以下の記事が面白かったので、簡単にまとめました。 ・Realtime API 1. Realtime API「Realtime API」は、低遅延なマルチモーダル会話エクスペリエンスを構築するためのAPIです。現在、入出力の両方でテキスト・音声がサポートされており、Function Calling を利用することもできます。 特徴は次のとおりです。 ・ネイティブな音声合成 低遅延でニュアンスに富んだ出力が得られる ・自然で操作可能な音声 自然な抑揚を持ち、笑ったり、ささやいたり、トーンの指示に従うことができる ・同時マルチモーダル出力 テキストはモデレーションに役立ち、オーディオにより安定した再生が保証される 2. クイックスタート「Realtime API」は、「WebSocket」を介して通信するステートフルなイベントベースAPIです。 機能を紹介するデモアプリ「openai-real

                                                      OpenAI の Realtime API の使い方|npaka
                                                    • Attacking PHP - PHP

                                                      2008年にまつもとゆきひろ氏によって書かれたエッセイ。 Attacking PHP - Matzにっき(2008-01-26) PHPがいかに駄目な言語か、という話。 2024年にはどうか 以下の見解は@tadsanによる私見である。 いろんなものがfalseだったりするせいで、新たな比較演算子「===」が必要 その通り hashやlistがobjectが区別できない objectは当時から区別できるので、事実誤認では。 hash(PHPでは連想配列)とlistはPHP 8.1でarray_is_list()関数が追加されて標準関数で識別できるようになった それまでもユーザーランドの静的解析でlist型として慣習的に扱われていた PHP 8でも型宣言として扱えるわけではない オブジェクト指向機能が壊れている PHP 4時代のOOPは「壊れていた」かはともかく、一般的なOOP言語の振る舞い

                                                        Attacking PHP - PHP
                                                      • SQLite Wasm + OPFSで簡単アプリ化!ビジネスに活かすWasmとWeb技術

                                                        Wasmでお金を稼げるプロダクトは作れるのか? こんにちは。私は技術者としてはかなりミーハーな部類に入ります。 そんなミーハーな私は盛り上がっている分野についてはとりあえず触ってみたい欲が先行します。 ここ数年で盛り上がっている分野といえば色々とありますが、例えばWasmはソフトウェアエンジニア界隈を中心に盛り上がっている分野の一つとして数えてもよいでしょう。 私自身Webフロントエンド開発なども行っているため、分野的にもWasm、そしてWasmを活用した事例などは気になるところです。 ところでこういった気になる分野の技術については、なるべくビジネス的にも機能する形で落とし込みたいと常日頃考えています。 つまり その技術を使うことでお金を得ることができる という状況で使いたいのです。 これは私の性格的な部分が大いに影響していると思いますが、趣味的な用途でしかその技術を利用しない場合、ちょっ

                                                          SQLite Wasm + OPFSで簡単アプリ化!ビジネスに活かすWasmとWeb技術
                                                        • WezTermに移行した - 詩と創作・思索のひろば

                                                          PCを新調したのを期に、ターミナルの環境をiTerm2+tmuxをWezTermに移行した。とくに不満はなかったのだけど、iTerm2の設定をぽちぽちする*1ことを考えるとこれ数年おきにやるのか……と思ってしまったので心機一転、設定をLuaで管理できるというWezTermを使ってみることにした。 偶然以下の記事を見ていたのが大きい。設定も基本これをぱくった。 Okay, I really like WezTerm | Alex Plescan いいところ Luaで設定できる。別にLuaが書きたいわけではなくてVCSで管理できるのがよい。 WezTerm単体で、キーボードのみで文字列選択・コピーができる(Copy Mode)。これまではこの用途にtmuxを使っていたのでシンプルになってうれしい。 さらに、コピーしたいところまでカーソルを動かさなくていい Quick Select というモード

                                                            WezTermに移行した - 詩と創作・思索のひろば
                                                          • ポケモン情報局の公式アカウントが突然謎の文字列を投稿→誤爆と思われたが一向に消えず...新作情報の暗号と考えた解読班が動く→本当に解読に成功する

                                                            【公式】ポケモン情報局 @poke_times ポケモン公式アカウント #ポケモン情報局 。 最新情報や気になるトピックスなど、ポケモンがもっと楽しくなる情報を発信していきます。 pokemon.co.jp

                                                              ポケモン情報局の公式アカウントが突然謎の文字列を投稿→誤爆と思われたが一向に消えず...新作情報の暗号と考えた解読班が動く→本当に解読に成功する
                                                            • ユニコードで文字数を数える方法 (1/2)

                                                              ユニコードでは複数の絵文字を結合させて 別の絵文字を表現することもある Unicodeが一般的になって、日本語を含めて、さまざまな言語の文字を自由に使えるようになったが、「文字」を取り出す、あるいは数えるのが面倒になったのも確かだ。というのも、1つの文字が必ずしも1つのコードポイントで表現されるとは限らないからだ。 たとえば絵文字では、複数の絵文字をゼロ幅接合子(Zero Width Joiner:ZWJ、U+200D)で結合することで、別の絵文字を表現することがある。たとえば、「🐦 鳥(bird)」(U+1F426)と「🔥 火」(U+1F525)をゼロ幅接合子でつなげたものは、「🐦‍🔥フェニックス」(Unicode Emoji 15.1で定義)の絵文字になる。 コードだと「U+1F426」「U+200D」「U+1F525」なのだが、表示上は1つの文字に見える。なお、こうした組み合

                                                                ユニコードで文字数を数える方法 (1/2)
                                                              • 続・URLシェアを支える技術 CompressionStream

                                                                しかしCompressionStreamはその名の通りWeb Stream APIなのでどう頑張っても出力は非同期です。なので関数名と引数は同じですが戻り値はPromise<string>になります。 また、アルゴリズムが違うので互換はありません。今までlz-stringで圧縮・解凍していた箇所をいきなりCompressionStream版に置き換えても機能しませんのでご注意ください。 ちなみに、lz-stringの圧縮アルゴリズムはドキュメントでLZ-basedと書かれており、おそらく作者独自のアルゴリズムです。 CompressionStreamで選択できるアルゴリズム(語弊あり)は gzip, deflate, deflate-rawです。gzipはgzipですが、deflateはzlibでdeflate-rawが純粋なdeflateです。命名については歴史的経緯があるようです。 前

                                                                  続・URLシェアを支える技術 CompressionStream
                                                                • トリガーを用いたPostgreSQLのデータ変更検知方法 - RAKUS Developers Blog | ラクス エンジニアブログ

                                                                  はじめに 事前準備 トリガーを使用する方法 補足:トリガーと関数のみ消す方法 まとめ はじめに こんにちは! エンジニア2年目のTKDSです! PostgreSQLでのテーブル変更検知方法について調べました。 今回はトリガーを使用する方法について説明します。 事前準備 DBの準備(compose.yaml) services: db: image: postgres:16.4-bullseye container_name: db environment: POSTGRES_USER: postgres POSTGRES_DB: postgres POSTGRES_PASSWORD: postgres ports: - "127.0.0.1:5432:5432" volumes: - db_data:/var/lib/postgresql/data - ./init.sql:/docker

                                                                    トリガーを用いたPostgreSQLのデータ変更検知方法 - RAKUS Developers Blog | ラクス エンジニアブログ
                                                                  • GitHub Actionsを活用したワークフローのコツと教訓 - RAKUS Developers Blog | ラクス エンジニアブログ

                                                                    こんにちは、あるいはこんばんは。 だいたいサーバサイドのエンジニアの(@taclose)です☆ GitHub Copilotが活躍している昨今、弊社ではGitHubで更に開発効率を良くしていこうという流れで日々自動化が行われております。 今回はそんな時代だからこそ求められているGitHub Actionsについて、初心者向けにワークフロー作成の際に知っておきたいコツと教訓について紹介します。 GitHub Actionsのワークフローを読めるけど、まだ自信がないという方はぜひ参考にしてください! 「それもっと早く知っておきたかった!」「初心者がつまづきがちなポイント!」を解説します! 読者ターゲット ワークフロー作成のコツ 1. run セクションで式 ${{}} は極力使わない 危険その1:コードインジェクションのリスク 危険その2:データのサニタイズ不足 2. workflow_cal

                                                                      GitHub Actionsを活用したワークフローのコツと教訓 - RAKUS Developers Blog | ラクス エンジニアブログ
                                                                    • Valibot Schema Driven UI - ユーザーがノーコードで自由に UI を組み立てられるエディタを Next.js と Valibot で構築する - ROUTE06 Tech Blog

                                                                      近年 Bubble や Webflow、日本だと STUDIO などのノーコードプラットフォームが注目を集めています。これらのツールは、プログラミングの知識がなくてもユーザーが思い思いの UI を構築できる機能を提供し、アプリケーション開発の民主化に貢献しています。 このようなノーコードでユーザーが自由に UI を組み立てる仕組みはどのように構築されているのでしょうか。一見複雑に見えますが、基本的な考え方を理解すれば独自のエディタを構築することも不可能ではありません。アーキテクチャの中核となるのは、動的な UI コンポーネントを表現するスキーマ定義と、それを実際の UI 要素に変換する仕組みです。この過程では、データのバリデーション、データ型の絞り込みと UI コンポーネントの動的生成、そしてそれらの適切な配置が重要な役割を果たします。 本記事では、ユーザーがブラウザ上で UI を自由に構

                                                                        Valibot Schema Driven UI - ユーザーがノーコードで自由に UI を組み立てられるエディタを Next.js と Valibot で構築する - ROUTE06 Tech Blog
                                                                      • 独自YAMLファイルをJSON SchemaでLSP補完する | おそらくはそれさえも平凡な日々

                                                                        Podbardはpodbard.yamlに設定を記述するが、これをエディタで補完したりヒントを出せたりするようにした。 yaml-language-serverとJSON Schema 普段vimで開発してて、GitHub ActionsのYAMLを触ってるときなどに、エディタが適切にヒントを出してくれるのを便利に感じつつ「多分LSPがうまいことやってくれてるんだろうな」くらいに考えて深く追いかけていなかった。これは、JSON Schemaで実現されていることを、今回podbard.yamlの仕様をJSON Schemaで記述している過程で発見した。 GitHub ActionsのJSON Schemaは https://json.schemastore.org/github-action.jsonやhttps://json.schemastore.org/github-workflow.

                                                                          独自YAMLファイルをJSON SchemaでLSP補完する | おそらくはそれさえも平凡な日々
                                                                        • OpenAI o1 の APIの使い方|npaka

                                                                          以下の記事が面白かったので、簡単にまとめました。 ・Reasoning models 1. OpenAI o1「OpenAI o1」シリーズは、複雑な推論を行うために強化学習を用いて学習された新しい大規模言語モデルです。回答する前に考える特性があり、ユーザーに応答する前に長い内部思考の過程を生み出すことができます。これにより、科学的な推論に優れ、競技プログラミングの問題 (Codeforces) では89パーセンタイルにランクインし、米国数学オリンピック (AIME) の予選で全米の上位500人の学生に入る成績を収めています。また、物理学、生物学、化学の問題に関するベンチマーク (GPQA) では、人間の博士レベルの精度を上回る成績を達成しています。 APIでは、次の2つのモデルが提供されています。 ・o1-preview : o1モデルの早期プレビューモデル。世界に関する幅広い一般知識を

                                                                            OpenAI o1 の APIの使い方|npaka
                                                                          • Jotaiはどのようにして誕生したのか、単なるRecoilの代替手段なのか?

                                                                            こんにちは、Jotaiの作者です。Jotaiが生まれるまでに様々な取り組みをした歴史を短い記事にしてありますのでよろしければご覧ください。今後のJotaiの発展に期待します。 以下、ChatGPTによる翻訳です。 はじめに この投稿では、なぜ私がJotaiの開発を始めたのか、その背景にあるストーリーを共有したいと思います。JotaiはしばしばRecoilと似たような解決策と見なされますが、その開発にはもっと長い歴史があります。 React Hooks React Hooksが最初に発表されたのは2018年10月のことでした。Reactコンポーネントの外でロジックを開発するというアイデアが気に入り、すぐに多くのライブラリがこのアプローチを採用するだろうと考えました。何か開発したいと思い、グローバル状態管理という分野を選びました。私のモチベーションは、Reduxのセレクター、当時「mapSta

                                                                              Jotaiはどのようにして誕生したのか、単なるRecoilの代替手段なのか?
                                                                            • RIG is 何?RAG の妹?DataGemma の論文を翻訳しながら RIG を読み解く〜①まずは翻訳〜 - Qiita

                                                                              RIG is 何?RAG の妹?DataGemma の論文を翻訳しながら RIG を読み解く〜①まずは翻訳〜RigragDataGemma DataGemma がリリースされました。外部情報を使ってハルシネーションを抑止する手法として RAG が有名ですが、Datagemma では RAG だけではなく RIG という手法も提案・利用していました。 RIG というのがよくわからなかったので論文を読みました。そしてそのときの翻訳を残します。 RIG が一体なんなのかはそのうち… 論文の原本はこちら 注) RIG の Retrieval Interleaved Generation は勝手に検索交互生成としました。 以下原文を LLM の助けを借りながら翻訳したもの 要旨 大規模言語モデル(LLM)は、数値や統計データ、あるいは時事的な事実に関連するクエリに応答する際、事実に反する情報を生成し

                                                                                RIG is 何?RAG の妹?DataGemma の論文を翻訳しながら RIG を読み解く〜①まずは翻訳〜 - Qiita
                                                                              • Windowsを使いやすくする25ものツール群、マイクロソフト謹製PowerToys:ウィンドウズ活用術 | Forbes JAPAN 公式サイト(フォーブス ジャパン)

                                                                                (c) linkties Co., Ltd. Under license from Forbes.com LLC™ All rights reserved. Windowsには長年、かゆいところに手が届くツールがマイクロソフトから提供されている。「PowerToys」と呼ばれるそのツールは、Windows 95の時代に登場。標準搭載はしないけど使い勝手をよくするツールとして「利用したい人は利用してね」というスタンスで提供されている。Windows 11になってもPowerToysは健在で、Windows 11のUIに合わせてしっかりと作り込まれている。 インストールは簡単で、「Microsoft Store」アプリから「PowerToys」を検索してインストールを実行するだけ。説明は英語表記になっているが、アプリ自体は日本語化されている。 PowerToysは更新され続けており、2024年

                                                                                  Windowsを使いやすくする25ものツール群、マイクロソフト謹製PowerToys:ウィンドウズ活用術 | Forbes JAPAN 公式サイト(フォーブス ジャパン)
                                                                                • Dialog と Popover #3 | blog.jxck.io

                                                                                  Intro 前回までは <dialog> が標準化されるまでの経緯と、 API の概要や関連仕様を解説した。 今回は <dialog> の API としての使い方について、具体的に解説していく。 各要素の使用 open 属性 <dialog> は、デフォルトでは不可視(display: none)な要素となっている。 open 属性が付くと表示される。 <dialog open> <div> <h1>Hello Dialog</h1> </div> </dialog> show()/showModal() しかし、基本的に <dialog> は動的に出てくるため、JS で開くことになるだろう。しかし、 open 属性を動的に付けるのではなく、 show()/showModal() を用いるのが基本だ。 document.querySelector("button.show").addEve

                                                                                    Dialog と Popover #3 | blog.jxck.io