サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
qiita.com/rana_kualu
$dummy = file_get_contents('http://example.com'); var_dump($http_response_header); // ←なにこれ? PHPには、予め定義されている変数がいくつかあります。 有名どころとしては$_REQUEST・$_SESSION等のスーパーグローバル変数、PHPをコマンドライン実行した際に入ってくる$argc・$argvです。 そしてそれ以外にひとつだけ特殊な変数があり、HTTPラッパーを使うと唐突に$http_response_headerという変数が生えます。 非常にわかりにくいというか理解に苦しむ仕様なので、これを関数経由で取得するRFCが提出されました。 既に受理されており、PHP8.4から使用可能になります。 以下は該当のRFC、Add http_(get|clear)_last_response_header
ドコモのAQUOS R8 pro | SH-51Dを1年使用した感想です。 なお、『カメラ』と『デレステ』のみに特化した感想です。 それ以外については評価の対象外ですのでご注意ください。 経緯 以前はGalaxy S10+を使っていて、端の湾曲以外ほぼ全く不満がないとてもよい端末だったのですが、4年使っていたらバッテリーが膨らんで皮がはがれてしまいました。 ということで修理もしくは機種変更を検討したのですが、ちょうどそのタイミングでつよつよカメラと前評判の高かったAQUOS R8 proが発売になったのでそれに機種変更しました。 なお宗教上の理由でiPhoneは購入対象外です。 カメラ 等倍で小鉢を撮ると100%確実にピンボケします。 そのため、いちいち倍率を2倍に上げたうえで少し離れて撮影するという謎儀式を強いられます。 意味がわからない。 しかも倍率はカメラアプリを起動するたびにリセッ
public class SuperClass{ public SuperClass(long value) { /* なんか重い処理 */ } } public class SubClass extends SuperClass{ public SubClass(long value) { super(value); // super呼ぶ前に検証したいんじゃが if(value <= 0){ throw new IllegalArgumentException("non-positive value"); } } } これまでsuper()は必ずコンストラクタの一番最初に書かなければなりませんでした。 2024/03/19にリリースされたJava22において、ようやく次の書式が合法化されました。 public class SubClass extends SuperClass{ publ
以下はThe Mistakes I Made As a Beginner Programmerの日本語訳です。 The Mistakes I Made As a Beginner Programmer 初心者プログラマが犯しがちな間違いと、それらを特定し、避けるための習慣を学ぶ方法。 まず最初に言っておくことがあります。 この記事は、誤りを犯すことを悪いと糾弾するために作成されたものではありません。 むしろ貴方が誤りに自ら気付き、あるいはその兆候を見いだし、それらを避けられるようにするために書かれたものです。 私は過去これらの誤りを犯し、それぞれから学びを得てきました。 今ではこれらを避けるようなコーディングを習慣付けるようにしています。 貴方もそうしましょう。 紹介は順不同です。 1) 設計せずに実装する 高品質なコンテンツは、一般的には容易に作成できるものではありません。 それには慎重
よく見たら不自然なんだけどこれまで普通に許されていた、この引数デフォルト値がついに禁止されます。 何がおかしいって型がintなのに引数を渡さないことができてしまうので、矛盾してしまうわけですね。 これは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の開発を長いこと続けてきましたが、ついにベータ版リリースの準備が整いました。 やらなければならないことはたくさんあり、開発チームは
私@rana_kualuは、このたび富士山🗻の里親になりました。 今後富士山🗻を見かけるたびに、私のことを脳裏に思い浮かべるといいよ。 何これ? ユニコードコンソーシアムが行っている里親制度です。 里親制度ってなんだよという話ですが、まあ要するにUnicode Consortiumへの寄付です。 Unicode Consortiumは文字に関連する様々な策定や調整を行っている組織です。 もちろんUNICODE自体が最大の成功で、世界中の言語をひとつの文字コードに集約するという偉業に成功しました。 開発者として馴染み深いのはShift_JISとEUC-JPが滅んでUTF-8一本になってくれたことですね。 また日本人として馴染み深いのは絵文字でしょう。 絵文字自体は元々携帯電話会社の独自仕様として始まったもので、電話会社を超えると文字化けしてしまう『方言』でした。 しかしその後、様々な変遷
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 型が期待されています この注釈、詳細ページには一切記述されていないため
以下はMadza( Twitter / GitHub / LinkedIn / Webサイト )による記事、65 Things I wish I knew when I started to Code 🌱🚀の日本語訳です。 65 Things I wish I knew when I started to Code 🌱🚀 1.Coding is about problem-solving. コーディングは、問題解決の手段である。 コンピュータの前に座って適当にキーボードのボタンを押しまくることだけがプログラマの仕事ではありません。 それは現実世界の様々な問題を解決し、人々の生活をより快適にするための強力な手段なのです。 あなたにその力があるかぎり、あなたは守られるでしょう。 2.The golden rule is planning. 最優先すべきは計画である。 プロジェクトの成功
https://localhost/?a=1&b=2とhttps://localhost/?b=2&a=1は異なるURLなので、ブラウザはこれをキャッシュしません。 でも、このようなクエリパラメータの順番違いに意味があることなんてまず無いですよね。 であれば、意味的に同じURLは形式的に異なっていてもキャッシュしてしまっていいのでは? あと他所からのリンクにたまについてくるutm_source=xxxみたいなのはキャッシュには一切不要ですよね。 そういうのはクエリパラメータ自体を無視してキャッシュを使っちまおうぜ。 もちろんhttps://localhost/?a=1とhttps://localhost/?a=2は意味的に異なるURLなので、これにキャッシュを使ってはいけません。 また、並び順に意味があるサイトも万一存在するかもしれないので、全てのサイトで勝手にキャッシュするようにしてもい
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エコシ
サードパーティCookieについて サードパーティCookieは2024年以降、基本的に禁止されます。 この理由の大きなひとつが、サイトAとサイトBの情報を紐付けされてしまうことです。 ※画像出典:Chrome 114 の新機能 tracking.comはa.com上でのあなたの動きを監視することができますし、tracking.comはb.com上でのあなたの動きを監視することができます。 そしてtracking.comは、a.comとb.comの情報を紐付けることが可能です。 すなわち、多数のサイトで紐付けを行うことで、あなたの趣味嗜好思想信条が完全に把握されてしまうわけです。 FacebookやInstagramでは聖人面しておきながら裏ではあんなサイトやこんなサイトを見ているんだ、みたいなことが現在のCookieの仕組みでは可能です。 可能ですというかおそらく実際やっているでしょう。
以下はYoav(Webサイト / GitHub / X)による記事、So, you don't like a web platform proposalの紹介です。 So, you don't like a web platform proposal そうか、君はこのproposalが気に入らないというわけだ。 こんなことに遭遇したことはありますか? ある朝、コーヒーを飲みながらWebを見ていると、本当に気に入らないWeb APIの提案が目に入りました。 悪いことに、もしこれが通ったとしたら、Webに決定的な悪影響を与える可能性があります。 そしてあなたは、プラットフォームが大きな間違いを起こすことを防ぐに足る知識と経験を自身が持っていると自負しています。 素晴らしいことです。 Webプラットフォームは全ての人に開かれているので、Webプラットフォームの議論にはだれでも参加することができま
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
PHP8.3 / PHP8.2 / PHP8.1 / PHP8.0 2023/11/23にPHP8.3.0がリリースされました。 大きな新機能については、PHP8.0以降公開されるようになったランディングページで見ることができます。 マイグレーションガイドも既に日本語化されています。 また、採用されたRFCについてはPHP8.3の新機能でまとめています。 ここでは、概要だけではなくUPGRADINGに載っている変更点を全部見て回ることにします。 Backward Incompatible Changes 下位互換性のない変更点。 Core Programs that were very close to overflowing the call stack may now throw an Error コールスタックの容量設定zend.max_allowed_stack_size・zend
2022年から人数上限なしのひとりアドベントカレンダー完走賞が新設されたことに伴い、2023年はひとりでアドベントカレンダーを走る人がそこそこ見受けられました。 ということでこれは、何名がひとりアドベントカレンダーに挑戦し、そのうちどれほどが完走したかを調べてみたという嫌がらせ記事になります。 なお調査のためのデータ抽出は2023/12/30に行っています。 調査結果 全アドベントカレンダー数、1203件。 うち、参加者がひとりのカレンダー、320件。 うち、完走数、98件。 うち、完走賞ぬいぐるみGET、78件・77名。 完走率は30.6%でした。 てっきり完走率10%くらいかと思っていたのですが、1/3も完走しているとはなかなかなかなか高い完走率ですね。 また最初から一人を目指したわけではなく、参加者を募集したけど最終的に一人しかいなかったという悲しきカレンダーも含まれているので、実質
PHP8.3のランディングページがありますね。 右上のChange languageに日本語がありませんね。 深い悲しみに包まれたので増やした。 fork ランディングページの最下段、View Sourceってところからドキュメントのソースに進めます。 そこで右上のForkボタンを押せば、自分のスペースにforkされます。 branch 作業用にブランチを切ります。 名前はわりと適当。 Add Japanese translation 実際に動作する必要があるプログラムとかであれば開発環境の整ったローカルまで持ってくるほうがいいかもしれませんが、今回はただのドキュメントなのでオンラインで十分です。 まあ最近は実行環境とかもオンラインで色々できるみたいですがよくわかりません。 GitHubの画面上でおもむろに.を押すとオンラインエディタが起動します。 あとはランディングページの本体であるre
なんとなく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/06/12に、No Person Is an Island: Unpacking the Work and After-Work Consequences of Interacting With Artificial Intelligenceという論文が発表されました。 以下、該当論文のプレスリリースを紹介してみます。 Loneliness, insomnia linked to work with AI systems AIと頻繁に接する従業員ほど、孤独を感じやすく、不眠症や飲酒量が増える傾向がある、という研究結果がアメリカ心理学会より発表されました。 研究者はアメリカ、台湾、インドネシア、マレーシアでそれぞれ実験を行いましたが、文化圏を超えて同じような結果となりました。 この研究結果はJournal of Applied Psychologyのオンライン版に掲載されました。
C#は素人なのと、あとコードは再現なので不適切なコードになっている可能性が高いです。 おそらくもっといい解法があるはずですが、調べた限りではよくわかりませんでした。 課題 テーブルAからSELECTする、テーブルBからSELECTする、その後ふたつのデータを色々やって最後にテーブルCにインサートする、みたいなことがやりたかったわけですよ。 コード側で色々と処理を行う必要があるため、JOINやINSERT SELECTではなく一度コード側にデータを引き取るのが前提です。 問題 ベストプラクティスがわからない。 適切なサンプルコードが見付からない。 信頼できるドキュメントはMicrosoft公式くらいしかないわけですが、そこに載ってるサンプルコードはどうにも役に立ちません。 https://docs.microsoft.com/ja-jp/azure/mysql/connect-csharp
PHP8.0でJITがサポートされました。 その威力は絶大であり、単純な計算問題であればJITを有効にするだけで1分の処理が8秒になるほどの高速化でした。 そんなJITですが、次のバージョンでさらにブラッシュアップされることになりました。 (PHP8.4としていますが、もしかしたらPHP9.0かも) 以下は該当のRFC、A new JIT implementation based on IR Frameworkの紹介です。 なおCPUとかIRとかさっぱりわからないので、誤りや認識不足が多々含まれています。 誰かがPRで修正してくれるはず。 PHP RFC: A new JIT implementation based on IR Framework Introduction PHP用JITの最初のバージョンはPHP8.0でリリースされました。 その際、我々は最も単純なアプローチを採用しまし
Romeは、混沌の極みであるフロントエンドツールをひとつに纏め上げようという気宇壮大なプロジェクトです。 当初はOSSとして始まり、その後は資金提供を受けて会社を設立し、メンバーは給料をもらってフルタイム開発に従事していました。 さらに元々JavaScriptで書かれていて低速だったのをRustに切り替え、2022年11月には無事Stableまで辿り着くなどなど順風満帆であるように見えました。 しかし、その裏では大きな問題が発生していたようです。 開発は2023年1月あたりで停滞し、さらに一部の主要開発者が相次いで脱退してしまいました。 どうやら資金が尽きて給料を支払えなくなったようです。 このあたりの経緯は、ちょうど同時期に加入したnissy_devさんのRome の core contributor になったに詳しく記載されています。 その後2023/09/03にはRome公式サイトの
アメリカ合衆国サイバーセキュリティ・社会基盤安全保障庁が、先日2023/08/04に2022 Top Routinely Exploited Vulnerabilitiesというレポートを公開していました。 2022年に最も悪用された脆弱性トップ12がリストアップされているようです。 以下では該当の脆弱性をそれぞれ紹介してみます。 理論上危険とか原理上危険とかではなく、実際に使われた脆弱性ということなので、対策する必要性は極めて高いといえるでしょう。 心当たりのある人はすぐに対処しましょう。 2022 Top Routinely Exploited Vulnerabilities CVE-2018-13379 Fortinet社のVPN機器FortiGateに存在する脆弱性で、VPNのログイン情報を抜かれます。 VPNでなりすまし放題ということなわけで、極めて重大な脆弱性と言えるでしょう。
次のページ
このページを最初にブックマークしてみませんか?
『@rana_kualuのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く