サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
qiita.com/rana_kualu
Twitterでは多くの質問が殺到しました。 「どうしてJavaScriptでC言語を書きたいんだ?」 これまで、JavaScriptからシステムライブラリを呼び出す方法は2種類がありました。 ・N-APIアドオンもしくはV8 C++ APIアドオンの利用。 ・emscriptenもしくはwasm-packでWASMにコンパイル。 What's wrong with N-API (napi)? どうしてN-APIではだめなのか。 N-APIはネイティブライブラリをJavaScriptから使えるようにする、ランタイムに依存しないC APIです。 BunとNode.jsはこれを実装しています。 N-API以前はV8 C++ APIを使っていましたが、Node.jsがV8を更新するたびに互換性の問題が発生する可能性がありました。 Compiling native addons breaks CI
MAINTAINERSからメールアドレスがxx.ruの開発者が合計11名削除されました。 もちろん一部界隈で大騒ぎになりました。 「コンプライアンスの諸事情って何よ。ドキュメントもっとはっきり書けや。」 「オープンソースの黎明と終焉がひとつのプロジェクトで見れるとはね。」 「冷戦の再来である。」 「邪悪なクレジットを消したのに邪悪なソースコードを消さないのはなんで?」 「恥を知れ」 「オープンソースの精神()」 「Linux Foundationは、中立的で信頼できる組織です()」 「おいまだ足りないぞ。中国とイランとシリアとイエメンとイラクとアルジェリアとアフガニスタンとパキスタンとヨルダンとエジプトとリベリアとキューバとベネズエラも排除しないと。」 一部開発者の暴走かと思いきや、残念ながらLinusもこのcommitに同意しています。 このcommitをrevertするパッチに対して、
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 2024/09/10にIdle Detection APIというAPIが更新されていました。 ステータスはDraft Community Group Reportです。 これはコミュニティによる提案であり、W3Cによる正式な勧告ではありません。 個人や団体レベルでも、とりあえずRFCを作ってみたり検討したりできる段階ということです。 以下はこの提案を管理しているGitHubから、このRFCの意義を解説したReadmeの紹介です。 User Idle Detection API このAPIでは、開発者はユーザがアイドル状態になったとき(キ
アイドルマスター シンデレラガールズ スターライトステージ9周年おめでとうございます。 ところで日課の納税をするたびに気になっていたことがあるんですよね。 レアアイドルって本当にみんな均等に出現するんだろうか? デレステはガシャの出現率が全て表示されていまして、レアアイドルは全員0.825%で共通となっています。 ただ毎日引いていると、なんとなくそうではない気がしてくるんですよね。 西園寺琴歌やクラリスはわりとよく見かけるし、逆に楊菲菲や兵藤レナなどはあんまり見ない気がします。 これは単に記憶が偏っているだけなのでしょうか。 それとも本当に何らかの偏りが発生していたりするのでしょうかね。 調べてみたいですよね。 しかし調査するにしてもデータソースはどうしたら? 大丈夫。 なぜなら、私は2016/07/30以降、納税やガシャの結果を全て記録しているから。 これだけ記録を集めている人もそうそう
どういうわけか日本では一切話題に上がっていないのですが、Pythonの開発者コミュニティでなんか問題が起きているようです。 どうも話が様々なスレッドにとっ散らかっているうえに半分はDiscordや非公開のところで動いているみたいなので、読み取れていないところが色々あるかもしれません。 誰かが補足してくれるはず。 Proposed bylaws changes to improve our membership experience 最初のきっかけはこのスレッドです。 これは規約の一部を変更する提案であり、その中でも3番目の提案であるAdds provision to remove Members by vote of the Board of Directorsという変更が注目を浴びました。 Python財団にはフェローという制度があり、これはPythonエコシステムやコミュニティに優れた
かつてサードパーティーCookieのかわりとなる情報収集手段としてGoogleが提唱したものの全方位からボコボコにされてひっこめたFLoCのかわりとして、GoogleはTOPICS APIというものを発表しました。 これが2022年1月です。 それから2年半経ってTOPICSはどうなったかというと、Google以外の全てから一切相手にされていません。 TOPICS APIってなに? ひらたく言うと『興味のあるコンテンツ』です。 興味のあるコンテンツを設定することができるWebサイトがよくありますよね。 そこでチェックを入れたコンテンツが広告として出やすくなったりするわけです。 基本的にはそれと同じです。 ただし、対象は自分で選択するのではなく、アクセスしたWebサイトです。 すなわち、Chromeが訪問したサイトを勝手に集計して勝手に興味のあるコンテンツを選んで勝手にWebサイトに提供しま
PHP8.4 / PHP8.3 / PHP8.2 / PHP8.1 / PHP8.0 2024/08/13、PHP8.4がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2024/11/21にPHP8.4.0がリリースされる予定です。 というわけでPHP8.4で実装されるRFCを見てみましょう。 RFC Property access hooks 賛成42反対2で受理。 プロパティフックです。 class HOGE{ public string $tel{ set{ if(!ctype_digit($value)){ throw new ValueError("電話番号は数値のみ"); } if(strlen($value) < 10){ throw new ValueError("電話
PHPの隆盛を支えてきた開発者は非常にたくさん存在しますが、その中でも最近のPHPを支えている中心の有力者たちを紹介します。 選択の基準ですが、PHP FoundationのStructureに載っている人です。 他にも紹介したい人はたくさんいるのですが、きりがないですし、そもそも私はPHP言語開発者たちやコミュニティと一切関わりのない全く無関係な人間なので勝手に選抜するのもなんだかなあということでやめておきます。 PHP Foundationとは まずPHP Foundationって何なのかという話ですが、ここ数年PHP言語の発展を支えている団体です。 実は長らくの間PHP言語は、言語自体を支えている団体がおらず、ボランティアの個人が集まって開発が進められていました。 これは言語としてはかなり特異な状態であって、たとえばPHPと同列に語られがちなLLを見てみると、RubyにはRuby A
JavaScriptにはだいぶ前からSetオブジェクトがありましたが、何故か集合演算は全く定義されておらず自力で実装しなければなりませんでした。 その後、まあ不便だねってことでSet Methods for JavaScriptというproposalが提出されました。 実装は珍しくSafariが最も早く、2023/09/18のSafari17から対応しました。 その後2024/02/21にChrome122、そして2024/06/11にFirefox127で実装されたことにより、主要全ブラウザで集合演算が使用可能になりました。 複数環境で実装されたことから、無事ES2025としてStage4、つまり上がりになりました。 ということで使い方を紹介するよ。 Set.prototype.intersection() 要素と引数の、両方に含まれる値を返します。 new Set([1, 2, 3,
先日The Registerを見ていたらアジャイル開発の失敗率は268%も高い Study finds 268% higher failure rates for Agile software projectsという記事が目に入りました。 The RegisterはITニュースサイトで、日本で言うところのITmediaやWIRED、GIGAZINEみたいなところですかね。 その記事は元記事を紹介しているもので、『元記事はImpact Engineeringの宣伝ではあるが、アジャイル開発は期待ほどうまくいかないという疑念を抱かせるのにも十分である』というようなまとめになっていました。 ではImpact Engineeringってなんなんだよと元記事268% Higher Failure Rates for Agile Software Projects, Study Findsを最後まで読
class HOGE{ public string $tel{ set{ if(!ctype_digit($value)){ throw new ValueError("電話番号は数値のみ"); } if(strlen($value) < 10){ throw new ValueError("電話番号は10文字以上"); } $this->tel = $value; } get{ return '電話番号は' . $this->tel; } } } $hoge = new HOGE(); $hoge->tel = '123456789012'; // OK $hoge->tel = 'abcdefghijkl'; // Uncaught ValueError: 電話番号は数値のみ $hoge->tel = '123'; // Uncaught ValueError: 電話番号は10文字以上
よく見たら不自然なんだけどこれまで普通に許されていた、この引数デフォルト値がついに禁止されます。 何がおかしいって型がintなのに引数を渡さないと$xがnullになるので矛盾してしまうわけですね�� これはPHPが昔からの仕様を残しておいたためであり、いわゆる歴史的経緯というやつです。 以下は該当のRFC、Deprecate implicitly nullable parameter typesの日本語訳です。 PHP RFC: Deprecate implicitly nullable parameter types Introduction PHP7.1で?T構文、さらにPHP8.0でUnion型がサポートされたことにより、PHPはnull許容値型を正しく書くことができます。 歴史的にはPHP5.0でオブジェクト型、PHP5.1でarray、PHP5.4でcallable、PHP7.0で
はいどうも、Qiita参加者の中で最も田舎出身の @rana_kualu です。 これはもう間違いなく断言できますよ。 どのくらい田舎かって、たとえば小学校の同級生が私ともうひとりの2人だよ。 まあ今は1人だったり0人だったりするので、当時はまだマシだったんだけどな。 あと駄菓子に全く馴染みがないよ。 だがしかしは面白おかしく読んだけど、実際に食べたことのある駄菓子はほとんどなかったよ。 これは別にネグレクトだったとかではなく、単に近所に店がなかったからです。 最も近いコンビニ・スーパーは10km先だけど、山越え谷越えるから歩いて行きたくないしバスは一日一往復だったから外界に出る手段もないしで、そもそも接点が生まれないんだよね。 ちなみに今はバスが一日0.3往復みたい。 おそらく小学校は10年以内になくなるし、故郷自体も30年後にはなくなっていると思うよ。 そんなエンジニアとしてはそこそこ
いまさらjQuery? ここの人たちは見たくもない現実かもしれませんが、世界の9割はjQueryでできていいます。 ということで世界70億人が待望していたjQyery4のベータバージョンが2024/02/06に公開されたので以下で紹介します。 ちなみにjQuery1が2006/08/26、2が2013/04/18、3が2016/06/09のリリースであり、メジャーバージョンアップとしては8年ぶりとなります。 しかし開発が止まっていたとかというとそういうわけもはなく、流石に2010年代前半ごろの更新ラッシュは落ち着いてきたとはいえ、着実にメジャーバージョンが3のまま3.7.1まで更新され続けています。 jQuery 4.0.0 BETA! jQuery 4.0.0の開発を長いこと続けてきましたが、ついにベータ版リリースの準備が整いました。 やらなければならないことはたくさんあり、開発チームは
4. ジェネリクス PHP 8.2 では、ジェネリクスのサポートが導入されました。 ジェネリクスを使用すると、コードの再利用性が向上し、型安全性も確保されます。 interface Collection<T> { public function add(T $item): void; public function get(int $index): T; } class StringCollection implements Collection<string> { // ... } $stringCollection = new StringCollection(); $stringCollection->add("Hello"); $stringCollection->add(123); // エラー:string 型が期待されています この注釈、詳細ページには一切記述されていないため
2023 / 2022 / 2021 / 2020 JavaScriptライブラリのトレンドを紹介しているbestofjs.orgが、2023年に最もホットであったJavaScriptライブラリのランキングを発表しました。 選考基準は累計スター数ではなく、『2023年の一年間で増えたスターの数』です。 過去流行っていたけど落ち目となった技術は出てこないので、最近注目されている技術がわかります。 ちなみに総合ランキング1位は2016年~2019年にVue.jsが4連覇、2020年はDeno、2021年はzx、2022年はBunでした。 以下は2023年のランキング、2023 JavaScript Rising Starsの日本語訳です JavaScript ライジングスター 2023 8回目のJavaScript ライジングスターにようこそ! ここでは、2023年のJavaScriptエコシ
ES2024 / ES2023 / ES2022 / ES2021 JavaScriptの仕様は、TC39というところで決められています。 ブラウザベンダや関係者が定期的に会合を行い、様々な新機能について話し合ってどのようにするかを決めています。 ちなみに2023年9月のミーティングは東京で行われました。 ここでは2023年にFinishedになった、すなわち仕様が確定して複数のブラウザで実装がなされたproposalについて紹介してみます。 つまり、主要ブラウザでは既に使用可能です。 なお、2023年2月から2024年1月までにFinishedになったproposalがES2024と呼ばれるみたいです。 ずれているせいでややこしいですね。 年と一致させてくれ。 Finished Proposals Promise.withResolvers Promiseを外からresolve/reje
なんとなくRFCを見ていたらMultibyte for trim function mb_trim, mb_ltrim and mb_rtrimというRFCが投票に入っていました。 というわけで、以下はこのRFCの紹介です。 PHP RFC: Multibyte for trim function mb_trim, mb_ltrim and mb_rtrim Introduction PHPには、マルチバイトのtrim関数がありません。 preg_replace("/^\s+|\s+$/u", '', $string)で概ね想定した挙動になりますが、関数を予め用意しておくことでコードの可読性とわかりやすさを向上させることができるでしょう。 また、トリッキーになりがちなこの処理を標準化することができます。 この機能は多くのPHP開発者にとって有用であり、mbstringモジュールはこれで完成
CSSの大きな問題点のひとつとして、スタイルが影響する範囲を指定することができませんでした。 そのため一か所だけ書き替えたと思ったら全然関係ないところが崩れたりして、その欠陥をどうにかすべくBEMやらScoped CSSやらStyled Componentsやら解決策が乱立してどうにもならなくなりました。 とりあえずStyled Componentsとかの乱数スタイルシートはユーザスタイルシート適用が困難なのでさっさと滅びろ。 さて先日リリースされたGoogle Chrome 118でCSSが@scopeに対応しました。 なんと、素のCSSで適用範囲を制限できるようになります。 <div class="out"> <span>ここはfooの外</span> <div class="foo"> <span>ここはfooの中、barの外</span> <div class="bar"> <sp
アメリカ合衆国サイバーセキュリティ・社会基盤安全��障庁が、先日2023/08/04に2022 Top Routinely Exploited Vulnerabilitiesというレポートを公開していました。 2022年に最も悪用された脆弱性トップ12がリストアップされているようです。 以下では該当の脆弱性をそれぞれ紹介してみます。 理論上危険とか原理上危険とかではなく、実際に使われた脆弱性ということなので、対策する必要性は極めて高いといえるでしょう。 心当たりのある人はすぐに対処しましょう。 2022 Top Routinely Exploited Vulnerabilities CVE-2018-13379 Fortinet社のVPN機器FortiGateに存在する脆弱性で、VPNのログイン情報を抜かれます。 VPNでなりすまし放題ということなわけで、極めて重大な脆弱性と言えるでしょう。
Romeは、混沌の極みであるフロントエンドツールをひとつに纏め上げようという気宇壮大なプロジェクトです。 当初はOSSとして始まり、その後は資金提供を受けて会社を設立し、メンバーは給料をもらってフルタイム開発に従事していました。 さらに元々JavaScriptで書かれていて低速だったのをRustに切り替え、2022年11月には無事Stableまで辿り着くなどなど順風満帆であるように見えました。 しかし、その裏では大きな問題が発生していたようです。 開発は2023年1月あたりで停滞し、さらに一部の主要開発者が相次いで脱退してしまいました。 どうやら資金が尽きて給料を支払えなくなったようです。 このあたりの経緯は、ちょうど同時期に加入したnissy_devさんのRome の core contributor になったに詳しく記載されています。 その後2023/09/03にはRome公式サイトの
【W3Techs】2023年8月にWebで最も使われている技術はjQuery・Bootstrap・PHP・WordPressPHPJavaScriptランキングW3TechsQ-Success コンサル会社Q-Successは、World Wide Web Technology Surveysという分析サービスを提供しています。 なんかいかにもW3Cとかと関係ありそうな名前ですが、特に関係はないみたいです。 W3Techsでは、Webサイトを収集し、それらがどのような技術で作られているかといった調査結果を無料で分析・公開してくれています。 こんなに公開していて生計はどうやって立てているのかというと、過去の履歴や細かいレポートなどを有料で売っているみたいです。 6450ページのPDFとか細かすぎて逆に使いこなせそうにもなさそうですが、興味のある方は手を出してみてはどうでしょうか。 データを覗
PHP8.4 / PHP8.3 / PHP8.2 / PHP8.1 / PHP8.0 2023/11/23にリリースされました。 2023/07/18、PHP8.3がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2023/11/23にPHP8.3.0がリリースされる予定です。 というわけでPHP8.3で実装されるRFCを見てみましょう。 RFC Marking overridden methods (#[\Override]) 賛成22反対1で受理。 Overrideアトリビュートです。 class C1 { protected function foo(): void {} } class C2 extends C1 { #[\Override] public function fo
CPUにハードウェア的な欠陥が存在することがあります。 特に有名なのはMeltdown・Falloutあたりですが、これは投機的実行という高速化機構に潜んでいたバグです。 そして2023/08/08、CPUに潜んでいた新たなバグ、Downfallが発表されました。 CVE-IDはCVE-2022-40982です。 日本語紹介記事:Intel製CPUに情報漏えいの恐れがある脆弱性「Downfall」が発見される、データやパスワードなどの機密情報が抜き取られる危険性 / インテルのチップから機密情報が流出する? 新たな脆弱性「Downfall」の脅威 / Intel、第11世代までのCPUに影響する脆弱性などに対処 影響するCPUは2015年のSkylakeから2020年のTiger Lakeまでと、かなりの長期間にわたります。 ということで以下は公式?の紹介サイト、Downfall Atta
2018/04/06 97.5kg…… とても絶望的な数値が並んでいます。 ちなみに身長は175cmです。 2018/04 正直なところファッションとか外見とかに全く興味がありません。 靴下は全く同じ無地のものをまとめ買いしています。 履くときは適当に2本取ればいいので、片割れを探す手間だとか片方なくなったとかの面倒がなくなり圧倒的に楽です。 シャツも5着5千円とかで売ってる同じやつです。 洗濯も乾かすのが面倒だったから金の力で解決して、ハンガーラックの右から干して左から着る生��をしています。 どれを着ても同じだから、着合わせとかを考える必要もなくて楽ですね。 とまあこのように、興味のないところはなるべく省力化をしています。 省力化というか、どうでもいいので何も考えずに処理できるようにしているわけです。 なお流石に、毎日風呂に入って歯磨きする程度の最低限度の常識は持っています。 たぶん。
2023/06/22にSvelte 4がリリースされました。 Svelteはざっくり言うとフロントエンドフレームワークですが、ReactやVueといった他のフレームワークとは大きな思想の違いがあります。 他のフレームワークはブラウザで表示されたときにはまずライブラリを読み込んでから実行するため、初期動作にどうしても時間がかかります。 Svelteはコンパイル時に素のJavaScriptまで変換してしまうので、ブラウザで表示すると単純にただのJavaScriptが動くだけなので早い、というわけです。 初出からしばらくは全然話題にもならなかったのですが、最近やっと人気が上昇しつつあるようです。 やっぱ安定してきたのとSvelteKitのおかげかな。 以下は公式ブログからSvelte 4リリースのお知らせ、Announcing Svelte 4の紹介です。 Announcing Svelte 4
昨年2022/11/09に行われたGitHub Universe 2022において様々な発表が行われましたが、その新しい試みのひとつがGitHub Acceleratorです。 将来有望そうなメンテナやチームに対してGitHubが支援を行い、フルタイムでOSSにコミットできるようにするというプロジェクトです。 まあ要するに、GitHubがスポンサーのGitHub Sponsorsですね。 で、これの第一期対象の発表が2023/04/12にありました。 1000以上の応募から、20プロジェクト32名が選出されました。 彼らは最初の10週間で2万ドルを受け取り、その資源で財政的に持続可能な開発を目指します。 今後の展開次第ではさらに継続して支援を受けたりもできるようです。 そうしてフルタイムでOSSにコミットできる人材を増やすことが、GitHub Acceleratorの最終的な狙いのようです
Bun.build({ entrypoints: ['./src/index.tsx'], outdir: './build', minify: true, // その他設定があれば }); Reducing complexity in JavaScript フォームフィールドの自動入力から始まったJavaScriptは、今ではロケットを宇宙に打ち上げる機器に活躍するところまできています。 当然の成り行きですが、JavaScriptエコシステムの複雑さは爆発しました。 TypeScriptのファイルはどうやって実行する? 本番用コードはどうビルドする? そのパッケージはESMで動作する? ローカル設定を反映するにはどうすればいい? バージョン互換性をどう解決すればいい? ソースマップはどうやって作れば? 複雑であるということは、すなわち時間がかかるということです。 npmパッケージのインス
<div class="foo"> ここは青くしたい <div class="bar"> ここは赤くしたい </div> </div> その.foo .barどうにかならない? これはまだ2段階だから見ただけでわかりますが、ちょっと複雑なことをやるとすぐ地獄みたいなセレクタ塊になることは全CSS書きがよく知っています。 それを解決するために様々な解決策が現れましたが、いずれも外部ライブラリが必須だったり不自然な命名を強要されたり解決策同士の互換がないせいで乗り換えが大変だったりと非常につらい状況です。 ということで先日2023/04/05にリリースされたChrome112で、ようやくCSS Nestingがサポートされました。 ゴミみたいなことばっかり率先してやるくせに、全CSS書きが待ち望んでいる機能の実装には時間がかかるのはどうしてなんですかね。 ブラウザの対応状況 Chrome /
次のページ
このページを最初にブックマークしてみませんか?
『@rana_kualuのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く