サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
qiita.com/rana_kualu
class XorShift128Plus { /* constants */ protected const MASK_S5 = 0x07ffffffffffffff; protected const MASK_S18 = 0x00003fffffffffff; protected const MASK_S27 = 0x0000001fffffffff; protected const MASK_S30 = 0x00000003ffffffff; protected const MASK_S31 = 0x00000001ffffffff; protected const MASK_LO = 0x00000000ffffffff; protected const ADD_HI = 0x9e3779b9; protected const ADD_LO = 0x7f4a7c15; protec
Denoは先日v1.25で2022/08/25にnpm対応したぞーと発表したのですが、そのバージョンではExperimental npm support、あくまで実験的サポートであり、まだ実戦投入できる段階ではありませんでした。 そんなわけで実際に使えるのはまだまだ先だねえと思っていたのですが、2022/11/14に公開されたv1.28で早くもExperimentalが取れました。 はえーよ。 ということで以下は該当のリリースノートの紹介です。 Deno 1.28: Featuring 1.3 Million New Modules Deno 1.28を公開できたことをうれしく思います。 本リリースでは、npmの互換性を安定させました。 すなわち、130万以上のnpmモジュールをDenoがインポートできるようになったことを意味します。 これによってPrisma・Mongoose・MySQL
Romeってなに? フロントエンドはいまだに混沌の極みです。 ○○には××、△△には□□、🌝🌝には♨♨、といった具合で様々なツールを駆使しなければなりません。 異なる作者が作っている異なる思想のツールの詰め合わせなので、ツールによっては設定項目が喧嘩したり、無意味な設定があったり、設定ファイル形式が異なるなんてこともよくあります。 それらをどうにかするためにツール詰め合わせツールなんてものも現れていますが、広範に対応するため最大公約数的な設定しかなされておらず、細かく調整するには結局それぞれのツールについて深く知らなければなりません。 私は単にWebサイトを作りたいだけであって開発環境構築マニアではないので、そんな面倒なことをやりたいわけではないんだ。 ということで、そんな混沌をどうにかすべく登場したのがRomeです。 最初から最後までをひとつの設計思想で貫き通すことで、設定が容易にな
以下はThe Hacker Newsの記事、Last Years Open Source - Tomorrow's Vulnerabilitiesの紹介です。 The Hacker NewsとHacker Newsのちがいはなんなんだろ? Last Years Open Source - Tomorrow's Vulnerabilities LinuxとGitの生みの親であるLinus Torvaldsは、ソフトウェア開発において独自の見識を持っています。 「十分な目玉さえあれば、どんなバグも底の浅いものである。」 このフレーズはオープンソースの神髄を言い当てているでしょう。 もし、誰でもコードを簡単に利用できて、誰でもバグの修正をできるなら、それは安全だと。 しかし、それは本当でしょうか? 全てのバグは底の浅いものであるというのは、底の浅いバグにのみ当てはまるものであり、底の深いバグには
2022/10/26、VercelはWebpackの正統後継を詠ったバンドルツール、Turbopackを発表しました。 以下はVercelのブログから、Introducing Turbopack: Rust-based successor to Webpackの紹介です。 Introducing Turbopack: Rust-based successor to Webpack Vercelの使命は、イノベーターが閃きを形作るのに必要なスピードと信頼性を提供することです。 昨年は、我々はNext.jsがアプリをバンドルするスピードを向上することに注力しました。 JavaScriptベースからRustベースのツールに移行するたびに、如実に効果が現れました。 Babelからの移行では、トランスパイルの速度が17倍になりました。 Terserの移行においては、minifyが6倍になり、さらに読
先日Herokuの完全有償化が発表されて以降、蜘蛛の子を散らすようにHerokuからの脱出が図られています。 そんなわけで概ねHerokuの代替となりそうな無料サービスを紹介していきます。 ほとんどの代替サービスは完全無料というわけではなく、機能の少ない無料プランと高機能の有料プランが存在します。 有料化前のHerokuと同じということですね。 各サービスについて、実際に使ってみたという参考記事を貼っておくので、実際の使い勝手等はそちらを参照してください(他力本願) Qiita内に使ってみた記事が見つからなかったサービスは、日本では人気がないのだろうということで選外にしました。 また概要は、各サービスの説明やドキュメントに記載されているものです。 代替サービス一覧 FLy Flyはグローバルなアプリケーション配布プラットフォームです。 Turbokuを使えばHerokuアプリをFly.io
Denoは、Nodeの作者がNodeの反省を生かして作り上げたランタイムシステムです。 Nodeより高速・高性能で使い方も容易です。 が、いまいち流行ってない理由の大きなひとつがnpmが使えないことです。 Denoユーザの多くが古臭くて非標準的で奇怪なパッケージ管理から開放されたことに歓喜しているそうですが、それはそれとして過去の遺産が使えないので新たなライブラリを探さなければならず手間がかかります。 またDenoは様々なレジストリが使えることが利点とされていますが、個人的にはこれ欠点だと思っています。 探し回るのなんて面倒だから一か所にまとめてくれよ。 そんなわけで2022/08/15にやっぱnpm対応するわという公式発表がなされました。 と思ったらわずか10日後の2022/08/25に対応したって発表されました。 はえーよ。 ということで以下該当リリースノートの紹介です。 npm以外に
2021年8月に書いたFirefox OSの軌跡のコメント欄で、どうやって英語の情報収集しているか教えてほしいと聞かれたので書いてみたものです。 なんで1年も経ってるんだよ。 いやー1週間で8割方書いてたんだけど、どうにも話が面白くならなくてそのまま寝かせてたんですよね。 なお寝かせたら熟成して面白くなったかというと別にそんなことはないです。 それどころか放置しすぎたせいで元コメントの人も呆れて消えてしまい、私が謎の独り言を言ってるだけに見えてしまうという悲劇。 はじめに キャリアアップ? スキルアップ? キャッチアップ? 知るか。 そもそも私は『トレンドに追いつくため常に広く深く情報収集していかねばならない』みたいなことは全く考えてないので、毎日定期的に見て回ってチェックして、なんて面倒なことはやっていません。 気が向いたときにだらだら眺める程度です。 というか勉強なんてしたくないし仕事
末尾セミコロンはしばしば宗教戦争になりますね。 Qiitaでもその他のSNS等でも、そのようなバトルはいくらでも見つかります。 しかし意外にも、この戦争の原因を大本まで辿ってる人はほとんど見当たりません。 見つけたものではこの人(と、この記事を参照している記事)くらいでした。 以下は、JavaScriptの末尾セミコロンについて、JavaScriptの生みの親であるBrendan Eichによる見解、The infernal semicolonの紹介です。 なお2012年の記事なので、存在しないリンクや古くなった知見が含まれる可能性があります。 The infernal semicolon このツリーのコメントを見るたびに、私は悲しみに包まれます。 問題のコード、 このコードは自動セミコロン挿入(ASI)に依存しているため、ミニファイを行うためには、ASIを含めた完全なパースを行い、cle
なんとなくoauth2のGitHubリポジトリを覗いたら、Peter Bolingって人がなんか楽しそうなことをやってたんですよ。 おれはGitHubをやめるぞ! GitHubはFOSSではない!プロプライエタリで秘密主義だ! GitHubをFOSS開発に使うことを深く懸念する!! I'm leaving Github!! oauthはGitHubをやめるぞ!! とまあそんなようなことを言っています。 今こそ!GitHubを辞めるときが来た! 上記記事からリンクされている、Software Freedom ConservancyによるGitHubを深く懸念する記事です。 Software Freedom ConservancyはFOSSを支援する非営利団体なのですが、原理主義すぎて言動がかなり過激なことでも知られています。 本記事、Give Up GitHub: The Time Has
PHP8.3 / PHP8.2 / PHP8.1 / PHP8.0 2022/07/19、PHP8.2がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2022/11/24にPHP8.2.0がリリースされる予定です。 というわけでPHP8.2で実装されるRFCを見てみましょう。 RFC Disjunctive Normal Form Types 賛成25、反対1で受理。 選言標準形です。 UNION型と交差型を同時に使えるようになります。 思う存分型パズルで遊べますね。 // A型、もしくはB型かつC型、もしくはint function hoge( A | (B & C) | int $param){}
インシデントの話なのでせっかくだから私が体験した1番ゾッとするインシデントの話に参加してみたのですが、正直なところ1番ではないですね。 やっぱ一番はコレですよ。 というわけで先日起こした事故の紹介です。 まあタイトルどおりなのですが。 どういうこと?
タイトルの意味はよくわからない。 さてPHPでは、PHP8.0で型のOR、PHP8.1で型のANDが使えるようになりました。 しかし、この両者を組み合わせて使うことはできません。 function f(A | B | C $param){} // OK function f(A & B & C $param){} // OK function f(A | B & C $param){} // NG ← ということで、これを可能にしようというRFCが提出されました。 既に投票は終わっており、賛成多数で可決されました。 PHP8.2からDNF型が使用可能になります。 以下は該当のRFC、Disjunctive Normal Form Typesの日本語訳です。 PHP RFC: Disjunctive Normal Form Types Introduction Disjunctive Nor
フルスクリーンでゲームなどをプレイしているときに、うっかりESCを押してしまってフルスクリーンから脱出してしまって興がそがれた、なんて経験はありませんか? フルスクリーンモードでは、ESCをキャプチャすることができません。 またCtrl+WやWindows+DといったOSによって制御されるショートカットは、そもそもJavaScriptから操作することができません。 ということで、そのあたりのキーボード入力を制御できるようにしようというAPIがWICGに提出されています。 以下は該当のAPI、Keyboard Lockの紹介です。 現在のステータスはDraft Community Group Reportですが、これどの勧告レベルなのかよくわかりません。 Working Draftの一種でいいんですかね。 いずれにせよ、まだ実装はされていません。 Keyboard Lock 1 Introd
いつのまにかPHP Foundationの公式サイトができていました。 PHP Foundationとは? PHPの開発をこれまでのようにボランティア任せにするのではなく、きちんと給料を出して開発してもらおうという仕組みです。 これによって、開発者離れによるプロジェクトの停滞・衰退を防ぎ、コードの質を保ち、将来の展望を広げるわけです。 このように有償開発者を囲い込む動きは、最近では多くのプロジェクトでみられます。 PHPにおけるこの試みはOpen Collectiveにおいて多大な支持を集め、ひとまずは順調な滑り出しを見せました。 日本からも多くの企業や個人が寄付を寄せています。 コア開発者が決定 2022年1月にコア開発者募集中という記事を訳しましたが、その後無事に6名のコア開発者が決定しました。 ・Arnaud Le Blanc @arnaud-lb ・Derick Rethans @
Original article:https://httpie.io/blog/stardust HTTPieは概ねcurlっぽい、そしてcurlよりもユーザフレンドリーで使いやすいコマンドラインのHTTPクライアントです。 以下は本リポジトリを襲った悲劇について、HTTPieのCEOであるJakub Roztocil( Twitter / GitHub / Webサイト )によって書かれた記事、How we lost 54k GitHub starsの日本語訳です。 How we lost 54k GitHub stars HTTPie for Terminalは、最初のコミットから10周年を迎えました。 これが何かを簡単に説明すると、オープンソースのCLI HTTPクライアントです。 HTTPieの特徴は、ターミナルへの出力を限りなくユーザフレンドリーにするために一から構築されていると
Original article:https://dev.to/eludadev/take-your-github-repository-to-the-next-level-17ge 以下はEluda( Twitter / Twitter日本語 / GitHub / dev.to )による記事、Take Your Github Repository To The Next Level 🚀️の日本語訳です。 Take Your Github Repository To The Next Level 🚀️ 私はもうずいぶんと長いことGitHubを使っていますが、その過程において私は、完璧なGitHubリポジトリを作るためのガイドを集めてきました。 この記事は、そのガイドたちの集大成です。 それではさっそく始めていきましょう! Step 0. Make Your Project More D
Braveはフォントを取得できないようにした。いっぽうChromeはフォントを根刮ぎ取得しようとしている。ChromeGoogleSecuritybraveブラウザフィンガープリント JavaScriptから、現在表示されているフォントを取得することが可能です。 仕組みを簡単に説明すると、フォントによって文字の横幅は異なるので、font-familyを変えてみてwidthが変わったらそのフォントがインストールされている、みたいな識別方法です。 つまり、フォントを表示させて、そのフォントが入っているかどうかをチェックすることで、ブラウザフィンガープリントになります。 Braveはフォントを取得できないようにした How Brave defends against font fingerprintingの記事において、Braveはフォントによるフィンガープリント防止について解説しています。 H
PHP9以降、致命的エラーになります。 以下は該当のRFC、Undefined Variable Error Promotionの紹介です。 投票期間は2022/03/14から2022/03/28です。 2022/03/21時点では賛成30反対6の賛成多数であり、ほぼ確実に可決されます。 Undefined Variable Error Promotion Introduction 未定義変数とは、使用する前に値がまだ初期化されていない変数のことです。 未定義変数にアクセスすると、現在はWarning: Undefined variable $varnameの警告E_WARNINGが表示され、その変数値はNULLであるかのように扱われますが、実行が中断されることはありません。 しかし、これは意図しない挙動である可能性が高いでしょう。 この挙動を変更して例外を出すためにカスタムエラーハンドラ
私は関係者でも何でもないので、特に新しい知見とかはないです。 さらに末期の情報がろくに出てこないので力尽きた。 インターネットナンバーってなに? もはや誰も覚えていないと思いますが、その昔インターネットナンバーという概念が存在しました。 2000年前後の話です。 https://ascii.jp/elem/000/000/312/312110/ http://ntn81.jp/guide/inn.html 簡単に言うと、URL欄に0120444444と入力したら再春館製薬所のWebサイトに飛ぶよ、みたいな仕組みです。 え?何でそんなものが必要なの?って思いますよね。 URL欄に電話番号を入力したら検索結果が出てくるからそこから飛べばいいし、何なら直接商品名で検索したほうが早いですからね。 はい、でもそれは、今だからこそ言えることです。 歴史 当時のブラウザは検索エンジンなんてものを搭載して
ある日突然メールが送れなくなることがあります。 Microsoft Azureからメール送りたい Microsoft Azureには、何故かメール関連のリソースが全く存在しません。 メールサーバみたいなサービスはありませんし、自力でのSMTP設置も非推奨です。 公式にもSendGridを使えという立場みたいです。 SendGridとは SendGridはメール送信サービスです。 適当にPOSTするだけで、それをメールにして送ってくれるというナイスなサービスです。 curl --request POST \ --url https://api.sendgrid.com/v3/mail/send \ --header "Authorization: Bearer $SENDGRID_API_KEY" \ --header 'Content-Type: application/json' \ -
<link href="https://fonts.googleapis.com">って書くと罰金取られます。 以下はGerman Court Rules Websites Embedding Google Fonts Violates GDPRというニュースの紹介です。 German Court Rules Websites Embedding Google Fonts Violates GDPR ドイツのミュンヘン地方裁判所は、あるWebサイトの運営者が、ユーザの個人情報を本人の同意なしにフォントライブラリを経由してGoogleに提供したとして、100ユーロの賠償を命じました。 Webサイトが原告のIPアドレスをGoogleに無断で提供したことは、ユーザのプライバシー権の侵害に当たると判断しました。 さらに、Webサイトの運営者は収集した情報をその他のデータと突き合わせることで『IPア
前、Chromeを使うなら、必ずServiceWorkersを無効化しようという記事を書いたのですが、あの方法はてんで全然ダメダメでした。 chrome://serviceworker-internalsには無用なServiceWorkerが増え続け、chrome://flags/からはServiceWorkerの削除設定が削除されました。 そんなわけで、今度こそServiceWorkerを決定的かつ完全に消し去りたいと思います。 といっても自力でどうこうしたわけではなく、全面的に他人の力を借りただけですが。 Reject Service Worker Reject Service Workerをインストールする。 おわり。 かんたん! 作者はtoshiさんです。 ありがとうございます。 アドオンの技術的内容はServiceWorkerを無効化するという記事に書かれているのですが、Serv
2022 / 2021 / 2020 / 2019 JavaScriptライブラリのトレンドを紹介しているbestofjs.orgが、2021年に最もホットであったJavaScriptライブラリのランキングを発表しました。 選考基準は累計スター数ではなく、『2021年の一年間で増えたスターの数』です。 過去流行っていたけど落ち目となった技術は出てこないので、最近注目されている技術がわかります。 ちなみに2016年の総合ランキング1位はVue.js、2017年の総合ランキング1位はVue.js、2018年の総合ランキング1位はVue.js、2019年の総合ランキング1位はVue.js、2020年の総合ランキングはDenoです。 以下は2021年のランキング、2021 JavaScript Rising Starsの日本語訳です。 JavaScript ライジングスター 2021 6回目のJa
Original article:https://dev.to/dotnetsafer/rip-copy-and-paste-from-stackoverflow-trojan-source-solution-4p8f その昔コピペできない文章というものがありました。 実際は単にフォントを変えているだけというものですが、人間の目に見える文字と実際の文字が異なることを利用した攻撃の一種と見ることもできます。 さて、最近になって似たような攻撃に関する論文が公開されました。 人間には見えない文字を織り交ぜることによって、一見問題ないコードが実は脆弱になってしまうというものです。 ただ論文は堅苦しいうえに長くて読むのがつらいので、具体的に何がどうなのかよくわかりません。 平易に解説している記事があったので紹介してみます。 以下はDotnetsafer( Twitter / GitHub / Web
ES2023 / ES2022 / ES2021 もうじき2022年ということで、ES2022にFinished Proposalsとして取り入れられた機能がそれぞれどんなものなのか見てみることにします。 ちなみにFinished Proposalの手前の段階であるStage4が「複数の実装が既に存在する」というのが定義なので、2022という名前にもかかわらず既に一部のブラウザで使用可能、というか一部以外のブラウザで使用可能です。 ES2022 Class Fields Class Fieldsは似たような3RFCの集合体です。 Private instance methods and accessors privateメソッドです。 むしろ今まで存在してなかったことにびっくりだよ。 class Foo{ #privatemethod() { return "privatemethod";
1000000インスタンス生成に8秒強かかっていたのが0.1秒になりました。 なんだこれ。 timelib performance fix Dmitry Stogov へいDerick、https://github.com/derickr/timelib/pull/99のプルリクについて意見を聞かせてくれないか? この修正でnew DateTimeZone()を170倍改善したよ。 結果、幾つかの現実的なアプリでも目に見える高速化があったよ。 たとえばSymfonyのデモではcallgrindが7%改善した。 この修正は半年以上前に送ったやつなんだけど、PHP8.1に入れてくれたらありがたい。 Derick Rethans 当時のプルリクでは修正必須のステータスだったと思うんだけど、今見てみたらPOSIXの仕様にちゃんと従ってますね。 PHPのmasterに、他のバグフィックスと共にマージ
PHP8.2 / PHP8.1 / PHP8.0 2021/11/26にPHP8.1.0がリリースされました。 大きな新機能については、PHP8.0以降公開されるようになったランディングページで見ることができます。 ここでは、概要ではなくUPGRADINGに載っている変更点を全部見て回ることにします。 Backward Incompatible Changes 下位互換性のない変更点。 PHPコア Access to the $GLOBALS array is now subject to a number of restrictions $GLOBALSの内部処理を変更します。 $a = 1; $globals = $GLOBALS; // 値をコピー $globals['a'] = 2; var_dump($a); // PHP8.1 int(1) // PHP8.0 int(2) $
次のページ
このページを最初にブックマークしてみませんか?
『@rana_kualuのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く