PHPerKaigi 2024の登壇資料です。
ラズパイでAI画像認識環境構築 ひさしぶりにラズパイでディープラーニングしようと思ったら、色々変わっていたのでメモ。 追記:ラズパイ5に関しては以下記事参照ください。 前提 ハードウェアやソフトウェアの前提は以下です。 Raspberry Pi 4 Raspberry Pi OS(64-bit) with Desktop 2023-02-21(Bullseye) USBカメラ OSは64bitを使用します。32bitだとライブラリのバージョンが変わってくるのでこの記事のままだとインストールできませんので注意してください。 SDカードの書き込みやハードウェアのセッティングに関しては、以下記事参照ください。 また、上記記事では、カメラとしてRaspberry Pi カメラモジュールを使っていますが、Raspberry Pi OSがBullseyeになってから、使用するライブラリが変わった(Pi
技術的負債を抱えたレガシーコード。変なメソッド名と入り組んだロジック、リファクタリングするならどちらが先?(後編) ソフトウェアの品質をテーマに研究をしている名古屋大学 森崎研究室は、ソフトウェアの技術的負債をなんらかの形で数値化する手法の研究の一環として、コードの読みにくさの原因となる要因などを分析した研究結果を発表するイベントをオンラインで開催しました。 この記事ではそのダイジェストを紹介します。記事は前編と後編の2つに分かれています。今お読みの記事は後編です。 森崎氏による補足説明 前編では、グループA(命名的問題)より、グループB(構造的問題)の方が正答率が大きいということ。一方でグループA(命名的問題)よりグループB(構造的問題)の方が読みにくさを感じた、という点に統計的に有意な差があったことが発表されました。 発表の後、オンラインイベントの参加者からの質問について森崎氏と和田氏
はじめに この記事は「株式会社ビットキー Advent Calendar 2022」 9日目の記事です。 今回はWork & Experience Product所属の@usu_shinが担当します! ビットキーでは日々多くの機能開発が行われています。その中で発生する"設計"という工程でどう考えていくのが良いのかを型化し、設計資料のテンプレートとして表現したので、この記事ではそのテンプレートを紹介させていただきます。またテンプレート作成の副次的効果によって、担当する機能に愛情を注げるようになったというところも少しだけ話をさせていただきます。 この記事でいう設計とは この記事ではアサインされた機能開発タスクをどのように理解し、どのような手法で完了まで持っていくかを決定していく作業を設計と呼んでいます。 実装上の技術的決定を行う行為を指す設計よりも広義な意味で設計という言葉を使用しておりますの
クレデンシャル含むソースコードをChatGPT等のクラウドLLMサービスにアップロードしないでください。 今回のプロンプトはオープンなリポジトリのみを対象としており、シェルスクリプトが実行される環境もChatGPT側のクラウド上のサンドボックス内のみを想定しています。 ローカル環境では以下のシェルスクリプトをそのまま実行せずに、ご自身が作成したシェルスクリプトを利用してください。 以下はソースコードのプロジェクトルートで実行することで、ソースコードのダンプを.txt形式でダンプするシェルスクリプトです。 \`\`\` #!/bin/bash # バイナリファイルかどうかを判定する関数 is_binary_file() { local file="$1" local file_output file_output=$(file "$file") if [[ "$file_output" ==
こんにちは。株式会社プラハCEOの松原です。 どんな人にこの記事を読んで欲しいか コードレビューの効率化に悩んでいる コードレビューのやり方に自信が持てず、何か参考になる事例を知りたい 使い捨てコードレビューに翻弄される日々 1~2年ほど前に自社サービスを開発していた頃、弊社では全てのプルリクエスト(以降PR)に対してランダムに割り当てられたレビュワー2名、もしくはテックリード1名にapproveされない限りマージしない運用で開発していました。開発者が5名ぐらいだったと記憶しているので、規模の割にはリッチなレビュー体制だったのではないでしょうか。 修正点があれば指摘して、直して、再確認して、merge。 来る日も来る日も、確認、指摘、修正、再確認、merge。 次第に「僕ら業務時間の大半をコードレビューに使ってね?」と、レビューに費やす時間が気になるようになってきたあたりで、一度自分たちの
私がインターンで勤めている企業のハッカーは、イスラエル国防軍におけるサイバー攻撃・防御の超精鋭部隊、 8200部隊出身のガチプロハッカーです。8200部隊はアメリカのNSAと並んで世界最高のハッキング技術を持つと言われています。高校卒業後に兵役の義務があるイスラエルで、なんと彼は大学の学位を取り終えて、入隊したそう。 そんなスペシャルなハッカーに、東京大学で(一応)コンピュータ関係を専攻する私が、「一流のハッカーになる方法」について聞いてみたら面白かったので、本人の許可を得てその邦訳を記事にしてみました。 イスラエルのハッカーエコシステム イスラエルの8200部隊について教えてください。 8200部隊はイスラエル軍におけるインテリジェンスユニットです。詳しい内容は秘密事項でお伝えすることはできませんので、Wikipediaなどを見ていただくのが早いと思います(笑)。主にサイバーセキュリティ
寺田 学(@terapyon)です。2024年4月の「Python Monthly Topics」は、Python Web UIフレームワークの1つであるStreamlitを使ってWindowsやmacOSのデスクトップアプリを作る方法を解説します。 目的・モチベーション Pythonで自動化のスクリプトを作ったり、JupyterLabやColaboratoryでデータの可視化を行うことがあります。これらを作成者以外の多くの方に利用してもらう方法として、Webシステムやデスクトップアプリとして提供する方法が考えられます。 Webシステムの構築やデスクトップアプリの作成となると、技術的なハードルがあります。他には、時間的なコストに見合わないという状況もあり得ます。 Python Web UIフレームワークを使うことで、比較的少ないコードでWeb UIからスクリプトの実行や可視化をするアプリ
この記事は Kyash Advent Calendar 2023 21日目の記事です。 Kyashでプロダクトマネージャーをやっている Ueda です。 プロダクト開発に勤しむ皆様も、きっと今ごろ年内最後のリリースに向けて奮闘中でしょうか。 私もなんだか忙しいなあと思う日々が続いており、「なんでこんなに忙しく感じるのだろうか?これが師走か?」とふと振り返った時に自分がプロダクト開発において無意識に意識していることが影響していそうだというのに気づきました。 今回はその「自分がプロダクト開発において意識していること」、具体的には「開発速度を高めるために意識していること」について書いてみようと思います。 *テクニカルな内容を書くつもりはなく、とても当たり前な内容を、未来の自分に釘を打つ意味でも書いています 「開発速度をあげたい」という声 「開発速度をあげたい」という願望を持った方、またはそういう
ソフトウェアの中身を大きく2つに分解すると、プログラムとデータに分かれます。コードコンプリートやA Philosophy of Software Designなど、評判の良いソフトウェア設計の本はいくつかありますが、それらはどれもプログラムの説明がメインでデータのライフサイクルについての説明はなかったと思います。しかし、データの表現にもいくつもの方針があって、それによるトレードオフがあるな、というのはもやもやと考えていたので、その考えをまとめて文章にしてみました。 データといっても、処理中の短期間の間では変わらない、いわゆるマスタデータ的なデータです。ジャーナルというか、トランザクション的なデータはここでは触れません。 この記事では、それぞれのトレードオフについて考えていきます。 即値(リテラル) 定数 コマンドライン引数 環境変数 設定ファイル ダウンロードコンテンツ オンラインデータベ
1. はじめに 2024 年 5 月 14 日、OpenAI 社から新たな生成 AI「GPT-4o」が発表され、世界に大きな衝撃を与えました。これまでの GPT-4 よりも性能を向上させただけでなく1、音声や画像のリアルタイム処理も実現し、さらに応答速度が大幅に速くなりました。「ついにシンギュラリティが来てしまったか」「まるで SF の世界を生きているような感覚だ」という感想も見受けられました。 しかし、いくら生成 AI とはいえ、競技プログラミングの問題を解くのは非常に難しいです。なぜなら競技プログラミングでは、問題文を理解する能力、プログラムを実装する能力だけでなく、より速く答えを求められる解法 (アルゴリズム) を考える能力も要求されるからです。もし ChatGPT が競技プログラミングを出来るようになれば他のあらゆるタスクをこなせるだろう、と考える人もいます。 それでは、現代最強の
Googleは、都内で開催したイベント「Generative AI Summit Tokyo」で、コード生成や補完のためのAIモデル「Codey」が日本語に対応したと発表しました。 CodeyはGoogleの最新の大規模言語モデルPaLM 2をベースとした、コード生成や補完のための基盤モデルです。 Codeyは、自然言語による指示に基づいてコードを生成する機能、チャットで会話しつつコード関連の質問に回答する機能、コードの足りない部分を補完する機能などを備えています。 対応するプログラミング言語は、Java、JavaScript、TypeScript、PHP、Python、Ruby、Rust、C++、C#、Go、Kotlin、Scala、Swift、GoogleSQLなど。さらにGoogle Cloud CLIやKubernetes Resource Model(KRM)、Terraform
アプリケーション開発の生産性向上において、AIによるプログラミング支援ツールやサービスは欠かせないものになろうとしていますが、一方でこの分野にはさまざまなベンダから新製品やサービスが続々と投入され続けており、その全体像を把握するのが難しくなっています。 そこで、この記事では現時点でAIを活用したプログラミング支援ツールやサービス、いわゆる「AI駆動開発ツール」の主なものを一覧にまとめました。 本記事は「コーディングアシスタントツールまとめ」編と「コーディングエージェント/TextToAppまとめ」編の2つに分かれています。いまお読みの記事は「コーディングアシスタントツールまとめ」編です。 コーディングアシスタントとは コーディングアシスタントに分類されるツールは一般にコードエディタに統合されており、書きかけのコードを自動的に補完してくれる機能、コードの内容を自然言語でコメントとして記述する
ハイクラス求人TOPIT記事一覧実践的Djangoプロジェクトの設計―開発・運用が楽になる設定ファイルを書こう! アンチパターンとベストプラクティス 実践的Djangoプロジェクトの設計―開発・運用が楽になる設定ファイルを書こう! アンチパターンとベストプラクティス Pythonで広く利用されているWebアプリケーションのフレームワークにDjangoがあります。Djangoで開発を始める際に、プロジェクトの設定ファイルをどのように記述すれば運用が楽になるのか。『Python実践レシピ』の著書もある筒井隆次(ryu22e)さんによる寄稿です。 Djangoは、Python製のWebアプリケーションフレームワークです。もともとニュースサイトを管理する目的で開発が始まり、2005年7月にOSSとしてリリースされました。 Python Software Foundation(PSF)による調査「P
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 「コードレビュー・・・うっ頭が」となっているそこのアナタへ。 先週弊社キカガクで人生初の実務コードレビュー体験をしました。 控えめに言って最高すぎました。 お互いが「気持ちよく・効率的に」学びを深められるように組まれた一級品のレビュー構成。 細部に渡る心遣いとテクニックの為せる技だと思いました。 そこで私は考えた ー。 真逆のことをしたらどうなるんだろう? 想像してみたらなかなかブラックな開発環境が脳内で出来上がりました (大学時代のコードレビュー現場そっくりだなと思ったのは内緒)。 自分がコードレビューに参加する時こうはなるまいぞいう
皆さん、Open InterpreterというAIアシスタントをご存知ですか? 自然言語でプログラムを開発し実行までできるオープンソースのツールで、ChatGPT並みのインパクトを持つAIツールなんです! Open Interpreter は、LLM(ChatGPTやLlama 2)に自分のPCの操作権限を付与しパワーポイントやデータ解析、諸々の作業をAIに代替させるものです。 本記事では、Open InterpreterのMacOS・Windows・Google Colabの導入方法を解説します。 実際に使ってみた感想、よくネット上で比較されるChatGPTのCode InterpreterやSelf-Operating Computerとの比較もまとめました。 最後まで読むと、Open Interpreter なしでは生きていけなくなります! ぜひ最後までご覧ください! Open In
I should note that I have a vested interest in this topic: I teach software development online. It would be bad for my business if developer jobs start disappearing. That said, everything in this blog post is based on my true beliefs. You can decide for yourself if those beliefs are biased or not. Link to this headingHere we go again The CSS language was first released in 1996, in Internet Explore
2024年の2月29日、新潟県警察・神奈川県警察・岡山県警察・愛媛県警察が運営する運転免許センターでシステム障害が発生し、運転免許証の更新や新規取得の手続きを中止した。うるう年による障害だ。 4県警への取材で、障害によって当日運転免許センターで免許証を受け取れなかったとみられる人は合計で約800人に上ることが分かった。しかし、影響はさらに大きい。神奈川県警では運転免許センターの最寄りである相模鉄道の二俣川駅に、免許証を当日交付できないと掲示した。同県警は掲示によって約100人が運転免許センターを訪れなかったと見積もっている。一連の障害はテレビニュースで大きく取り上げられ、X(旧Twitter)などのSNSでも周知が進んだため、影響は1000人規模になるだろう。 4県警は、運転免許センターの障害原因について、「免許証を作成する機器の不具合」だと回答した。さらに取材を進めていくと、いずれの運転
フィヨルドブートキャンプのコードレビューでよく指摘してるシリーズです。 次のようなパンを焼くRubyプログラムがあります。 このプログラムはどういう工程を経てパンが焼かれるのか、ぱっと把握できますか? def main パンを焼く(粉, 水) end def パンを焼く(粉, 水) 焼く(パンを発酵させる(粉, 水)) end def パンを発酵させる(粉, 水) 発酵させる(パンを整形する(粉, 水)) end def パンを整形する(粉, 水) 整形する(パンをこねる(粉, 水)) end def パンをこねる(粉, 水) こねる(粉, 水) end main 上のプログラムは次のように書いても同じように処理されますが、工程の全体像がつかみやすいのはどちらでしょうか? def main 生地 = パンをこねる(粉, 水) 整形された生地 = パンを整形する(生地) 発酵した生地 = パ
2025/07/29 dnSpy追加 Xでフォークの存在を教えてもらいました。 2025/07/28 RoslynPad追加 2025/07/27 リンクを基本そのまま貼るように変更 C# docsを.NET documentationに変更 Advanced .NET programming documentationnについて追加 Compiler Explorerについて追加 perf-bookについて追加(その他記事) はじめに C#を最適化するために知っておくべき情報源、ツール、コミュニティをまとめました。 具体的な最適化テクニックよりも、個人の経験をもとにどこで学び、どう検証するかに焦点を当てて紹介していきいます。 とにかく知ってもらうこと重視なので、解説は最低限。 ドキュメントを読んで。 筆者について この記事の執筆時(2025年7月現在)、筆者はプログラミングとC#を学び始
はじめに ソフトウェア開発において、リファクタリング、つまりコードの保守性を高める活動は、ソフトウェアの価値を高める上でとても大切ですよね。 しかし、「リファクタリングの時間が確保できない」「リファクタリング実施のための同意が得られない」という話を耳にすることがあります。 リファクタリングは「絶対やった方がいいのは感覚としてはわかっている、でもその必要性ををうまく伝えられない」となりがちな性質があるのです。 この記事では、リファクタリングの時間を確保するために、どんなことを考え、何をステークホルダーに伝え、具体的にどのようなタイミングで実施していくといいのか、について解説します。 ポイントまとめ リファクタリング時間確保のポイントを端的に説明すると、以下の通りになります。 リターンとコストを明らかにする 複数の実施パターンを選択肢として持ち、柔軟に選べるようにする。 その中でも、日頃の小さ
ソフトウェアエンジニアの 渋谷 です。 コードレビューを実際のプロジェクトでどのように活用しているかを紹介します。 今回は私が入社当初からお世話になっているプロジェクトマネージャー(PM)2名に協力いただき、特徴的なプロジェクトについてインタビューしました。 コードレビューの目的、方法などについては多くの記事で紹介されているため、この記事では省略いたします。 コードレビューについて知りたい方は私が参考にしている代表的な記事を2つ紹介するので、そちらを見てください。 第2章 3.ソースコードレビュー | アーカイブ | IPA 独立行政法人 情報処理推進機構 Google Engineering Practices Documentation 斉藤 さんからは2つのプロジェクトを紹介します。 WebAPI、Webクライアント保守プロジェクト(人数: 2人) モバイルアプリリニューアルプロジェ
「“開発者体験”で世界をエンパワメントする1日。」と題し、チームや組織の課題に日々取り組む方々に向けて開催された「Developer eXperience Day CTO/VPoE Conference 2021」。ここで、READYFOR株式会社の仙塲氏が「『Userクラス』で考える技術的負債解消の観点」をテーマに登壇。まずは情報システム開発とモデリングの定義について紹介します。 クソコード動画『Userクラス』仙塲 大也(以下、仙塲氏):こんにちは。ミノ駆動と言います。不運な時間がやってまいりました。まじめなセッションだらけなのに、はたしてこういう動画を流していいものかと。完全にネタ枠です。 このセッションの説明です。多くのサービスで技術的負債になりやすい筆頭格として、Userクラスがあります。本セッションでは、Userクラスの負債により引き起こされる弊害を描いた、風刺動画を上映します
人間が何もしないと病気になるのと同じように、ソフトウェアも何もしないと複雑になる。 はじめに ソフトウェア開発の世界に飛び込んでから、「ソフトウェアは認知の限界まで複雑になる」という言葉を耳にしたとき、正直なところ、「ほへー」って思いながら何も理解していませんでした。しかし、大規模なシステムに携わるようになって、その言葉の重みを身をもって感じるようになりました。内部構造や相互作用が複雑化し、全体を把握するのが難しくなっていく。それは挑戦であると同時に、私たち開発者の存在意義を問いかけるものでもあります。 A Philosophy of Software Design, 2nd Edition (English Edition) 作者:Ousterhout, John K. Amazon この複雑性との闘いは、時に苦しいものです。でも、それを乗り越えたときの喜びは何物にも代えがたい。私たちの
はじめに 日本語プログラミングの議論が続いていますが気分転換にこんな奇抜なプログラムはどうでしょうか。 経緯 木村 明さん 1 の傑作かつ芸術的な日本語プログラムに「ポエム(Poem)」があります。 1986年に作られました。当時はPC-9801やFMRなどMS-DOS環境のPCが全盛で、このプログラムもPC-9801向けに書かれていました。プログラムは大変面白いのですが、そのような事情で現在では実際に動かすことはできず長いこと眠っていました。 一方で、Mindのほうは長らく開発していたGUI版が動き始め、Poemが使うグラフィック描画もできるようになったことから、Poem を実際に動かしてみたくなりました。9801グラフィックの互換処理を差し込むことでなんとか動かすことができました。動いたときは「ああ、こんなプログラムだったな」とちょっと感動しました。 公開について 氏の許可を得てソース
きっかけ・読んでいく本 うさねこらーじの Discord サーバーで、いろいろな先輩たちに技術のことを教えてもらっています。 https://discord.gg/RMq7e5qbQj このなかで、著者の garasubo さんにサポートしてもらいながら以下の本の内容を実装しているのですが、 Rust の知識も OS の知識もない私にとっては内容がかなり高度なので、補助のためにこのブログを作成しています。 Rustで始める自作組込みOS入門 https://amzn.asia/d/ebuOUM1 ぜひこの本を読みながらこのブログを参照していただけると嬉しいです。 第 2 章 ベアメタルで Hello World 単語のかみくだいた説明 ベアメタルプログラミング OSのない環境で実行するためのプログラムを書くことです。この環境下では CPU ごとに決まった動作(たとえば、決まったアドレスにあ
「【GitHub x サイバーエージェント共催】GitHub Copilotで変わる開発文化の現実」は、日本国内で最もGitHub Copilotの利用者数が多いサイバーエージェントとGitHubが共催し、GitHub Copilotを活用している現場のリアルな声や企業としての課題などを語るイベントです。ここで株式会社サイバーエージェントの黒崎氏、GitHub Japanの服部氏、GMOペパボ株式会社の髙橋氏と黒瀧氏が登壇。まずは、GitHub Copilotの活用について、GitHub Copilotに欲しい機能について話します。 登壇者の自己紹介服部佑樹氏(以下、服部):準備ができたようなので、続いてパネルディスカッションを進めていきたいと思います。 ファシリテーターを務めるのは、GitHubの服部です。よろしくお願いします。では、左から自己紹介をしていただいてよいでしょうか? 黒瀧悠
皆さんこんにちは、ファイナルファンタジーXIVプロデューサー兼ディレクターの吉田です。パッチ6.11がリリースされ、絶竜詩戦争が公開となり、各種外部ツールの是非やエミュレーションサーバーが存在するか否かなど、一部プレイヤーの方からお声を頂戴しています。これについては以前プロデューサーレターLIVEにて、触れたことがありますが、再度文章としてお知らせしておきたいと思います。 なお、長文であり、ある程度コンピュータの知識が無ければ理解しづらく、また、興味の無い多くの方には無関係の内容となります。一読される際には、その点をご承知おきください。加えて本文は『全文』で意味を成しますので、一部の抜粋や切り抜きによる拡散は控えていただけますと幸いです。 外部ツールの使用についてファイナルファンタジーXIV利用規約にありますとおり、『外部ツールの使用は一切禁止』となります。調査のうえでツールの使用が認めら
概要 Linuxのスタンダードなローダ、ld-linux-x86-64.so.2 の挙動を理解するために、ld-linux-x86-64.so.2を置き換え可能な https://github.com/akawashiro/sloader を2年ほど前から開発しており、ある程度動くようになってきました。 目次 ローダとは何か ld-linux-x86-64.so.2 の問題点 sloader sloader の現状 sloaderの実装 libc.so内のシンボルの解決 ロードされたプログラムのためのTLS領域の確保 sloaderの課題 お願い ローダとは何か Linuxで実行可能なバイナリファイルをexecve(2)を使って実行するとき、その実行パスは大きく2つに分類されます。 Linux カーネルが直接、バイナリファイルをメモリ空間にロードする。 バイナリが指定したローダ[1]がバイ
オラクルはリレーショナルデータベース「MySQL」の新バージョンとなる「MySQL 9.0」をリリースしました。 MySQLは現在、数カ月ごとにリリースされ積極的に新機能が追加されるイノベーションリリース(Innovation Release)と、長期で安定して利用されることを想定して2年ごとにリリースされる長期サポート(LTS:Long Term Support)版の2つに分かれてリリースされています。 現在のLTS版は今年(2024年)4月に登場したMySQL 8.4です。 そして今回リリースされたMySQL 9.0はイノベーションリリースに該当します。最新機能をいちはやく試したい開発者やユーザーのためのリリースです。 MySQL 9.0の主な新機能 MySQL 9.0のドキュメント「What Is New in MySQL 9.0」から、新機能「JavaScriptストアドプログラム
Cloudflare、ヘッドレスブラウザ+Puppeteerがすぐ使える「Workers Browser Rendering API」発表 Cloudflareは、同社が提供するCloudflare Workersの新機能として、ヘッドレスブラウザとそれをコントロールするPupeteerを呼び出せる「Workers Browser Rendering API」(以下、Browser Rendering API)のクローズドベータを発表しました。 We’re excited to announce a private beta of the Workers Browser Rendering API. With browser automation, you can programmatically do anything that a user can do when interactin
こういうツイートが話題になっていた。 「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、空の配列を渡したらfalseを返すかtrueを返すかが、良いプログラマかどうかの一つの境目だ— ふみ (DJ Monad) (@fumieval) 2023年5月29日 つまりScalaで言うと次のようなコードが何になるか、というものである。 val xs = Seq.empty[Int] xs.forall(_ == 42) 結論から言うと、このような関数は常にtrueを返す。 なぜだろう?その理由をこれから説明する。 ちなみに他に以下のような意見があった: 仕様による 例外を投げるべき いずれもまぁありえなくはないが、やめておいたほうが良いと思う。もし仮にfalseを返すような仕様があった場合、それは数学から乖離しているのでいずれ仕様内部で矛盾する可能性が高いし*1、最終的に
後方互換性って辛いね、どうもかわしんです。 最近 Rust で SQLite をフルスクラッチで再実装しています。 github.com 再実装するために SQLite の公式ドキュメントやソースコードを読み込んでいるわけですが、その過程で気付いたおもしろポイントを共有しようかと思います。 今回はその第二弾、ファイルフォーマット編です。第一弾はこちら:SQLite のおもしろ仕様 (1) : データ型 - kawasin73のブログ 前提知識 : ページ まず、この記事を面白いと思ってもらうための前提知識です。 大抵のデータベースはデータを保存するファイルをページという単位で管理します。SQLite ではデフォルトでは 1 ページ 4096 バイトです。これは、ファイルを保存するデバイス(HDD や SSD など)としてブロックデバイスを想定しているからです。ブロックデバイスとはデータの読
htmxは、HTMLの属性を追加するだけで、インクリメンタル検索やインライン編集をはじめとするさまざまな動的なUI(User Interface)を実現できるJavaScriptライブラリです。SPA(Single Page Application)フレームワークのような大がかりなビルド環境を用意することなく、すでにあるサーバーサイドアプリケーションに段階的に導入できる点も大きな魅力です。 本記事では、htmxの基本的なしくみや使用方法を紹介したのち、架空のタスク管理アプリケーションを題材に、htmxで実現できるさまざまなインタラクションを紹介します。 htmxの概要 HTMLを拡張するアプローチ htmxの基本的なアイデアは、HTMLの属性を使ってサーバーとの通信およびDOM更新を宣言的に記述するというものです。 たとえば、ボタンがクリックされたらサーバーからデータを取得し、画面の一部を
新言語にできることはまだあるかい なんとかWIMPS 最近(1ヶ月くらい前)、こんな記事が出ました: 新しいプログラミング言語が出てこない(新しく出てた言語を追記) – きしだのHatena Kotlin, TypeScript, Rust, Swift以降にみんなが話題にするような新しい言語が出てこない、それはなぜか、みたいな趣旨です。客観的に見れば「新しい言語は常に出続けている」わけですが、「みんなが話題にするような」というのが多分曲者なんでしょうね。 例え話をすると、新しい若木は常に生えてきているんだけど、大木に成長するには時間がかかるので、大木にしか興味のない人には「この8年間で新しい大木は登場していない」と判断してしまうのかもしれません。 まあ私としても、Web (HTTP) APIを書く言語とか、JSON色付け係が使う言語はもう出揃ってしまったのかもしれないという気はしなくもな
1895年、フランスのリュミエール兄弟がシネマトグラフ(映画の原型となる技術)を発明し、映画の普及が始まったばかりの頃。兄弟は自ら映画制作を手掛け、完成した作品の上映会を開催していた。そうして公開された映画の1本に、有名な「列車の到着(ラ・シオタ駅への列車の到着)」がある。 長さはたった50秒間で、画面奥から手前に向かって列車が迫ってくるというシンプルな映像だったが「動く写真」というメディアを見たことのなかった観客たちは、驚いて逃げ惑ったという。 ただしこれは誇張された逸話らしく、観客たちは確かに驚いただろうが、パニックまで起きたという記録は無いそうだ。むしろリュミエール兄弟や初期の興行主たちが、この「パニック伝説」を宣伝材料として利用した可能性も指摘されている。 真偽はいずれにせよ、情報を伝達する「メディア(媒体)」についてイノベーションが起きたとき、私たちがその新たなメディアの持つ性質
Zenn、静かなインターネット、そして最新作のAI翻訳ツール「Nani!?」。 エンジニア界隈でヒットサービスを連発し、「天才」とも称される個人開発者・catnoseさん。 テックワールド代表の市川が、その謎に包まれたキャリアと開発の裏側に迫りました。ディープな技術論や、個人開発を取り巻く環境の変化、そして「売却後」のリアルな心境まで。1時間を超える濃密な対談を記事にしてお届けします。 森林科学から始まった、異色のエンジニア人生@市川: catnoseさんといえば、今はもう「個人開発界の神」みたいな存在ですが、そもそもプログラミングはいつ頃から始められたんですか? @catnose: 全然、神じゃないですよ(笑)。 プログラミング自体は7〜8年前からですね。ただ、その前段階としてWeb制作みたいなことは学生時代からやっていました。知り合いの会社に頼まれてWebサイトを作って、お小遣いをもら
2022/11追記: Nuxt 3 の stable リリースに合わせて新しく記事を書き直しました。 祝・正式リリース!5つのテーマで理解する Nuxt3 の魅力 上記の記事の方が最新の情報を詳しく網羅していますので、そちらを読んで頂くことをオススメします。 Nuxt.js バージョン3のPublic Betaが公開されて約2ヶ月が経ちました。 私自身この2ヶ月、プライベートでNuxt 3を触っているのですが、かなり気に入っています。 とにかく開発体験が向上していて、一言で表すと「開発していて楽しい」フレームワークです。あまりにも気持ちよく開発できるので、Nuxt 3が公開されてから明らかに睡眠時間が減っています。 ただ、実際に何が変わったのか、どんなところが良いのか、よくわからずにとりあえず様子見している方もいると思います。 Vue 3の目玉機能であるComposition APIはVu
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く