タグ

ブックマーク / qiita.com/rana_kualu (42)

  • 2023年、今私が使っている生産性爆上げツールたち - Qiita

    Original article:https://blog.cassidoo.co/post/producivity-apps-2023/ 以下はCassidy Williams ( dev.to / Twitter / GitHub / Webサイト ) による投稿、The Productivity apps I use in 2023の日語訳です。 技術者には珍しくWebサイトがファンシー。 The Productivity apps I use in 2023 お気に入りのツールや、それをどう使って仕事を進めるのかについてよく聞かれます。 その質問に答えるため、そして次に同じことを聞かれたときにリンクを投げつけるために、この記事を書いています。 効率的ですね! 昨年にも同じ記事を書きましたが、全てを書ききれていなかったのと、さらに書き足したいことがあったことに気が付きました。 なお

    2023年、今私が使っている生産性爆上げツールたち - Qiita
    ymm1x
    ymm1x 2023/04/19
  • 【PHP8.2】PHP8.2の新機能 - Qiita

    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){}

    【PHP8.2】PHP8.2の新機能 - Qiita
  • 【PHP9】ついに未定義変数が使えなくなる - Qiita

    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であるかのように扱われますが、実行が中断されることはありません。 しかし、これは意図しない挙動である可能性が高いでしょう。 この挙動を変更して例外を出すためにカスタムエラーハンドラ

    【PHP9】ついに未定義変数が使えなくなる - Qiita
    ymm1x
    ymm1x 2022/03/22
  • StackOverflowからのコピペをやめろ。今すぐにだ。 - Qiita

    Original article:https://dev.to/dotnetsafer/rip-copy-and-paste-from-stackoverflow-trojan-source-solution-4p8f その昔コピペできない文章というものがありました。 実際は単にフォントを変えているだけというものですが、人間の目に見える文字と実際の文字が異なることを利用した攻撃の一種と見ることもできます。 さて、最近になって似たような攻撃に関する論文が公開されました。 人間には見えない文字を織り交ぜることによって、一見問題ないコードが実は脆弱になってしまうというものです。 ただ論文は堅苦しいうえに長くて読むのがつらいので、具体的に何がどうなのかよくわかりません。 平易に解説している記事があったので紹介してみます。 以下はDotnetsafer( Twitter / GitHub / Web

    StackOverflowからのコピペをやめろ。今すぐにだ。 - Qiita
    ymm1x
    ymm1x 2021/12/28
  • 【PHP8.1】PHP8.1の新機能 - Qiita

    PHP8.2 / PHP8.1 / PHP8.0 / PHP7.4 2021/11/26にリリースされました 2021/07/20、PHP8.1がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2021/11/25にPHP8.1.0がリリースされる予定です。 というわけでPHP8.1で実装されるRFCを見てみましょう。 RFC Fibers 賛成50反対14で受理。 Fiberです。 PHPで非同期コードを書けるようになります。 $fiber = new Fiber(function (): void { $value = Fiber::suspend('fiber'); echo "レジュームした。$value: ", $value, "\n"; }); $value = $fiber

    【PHP8.1】PHP8.1の新機能 - Qiita
  • 【PHP8.1】PHPで交差型が使えるようになる - Qiita

    交差型は何かって一言で言うと型のANDです。 PHP8.0で型のORことUNION型が導入されましたが、これに続いてPHP8.1で交差型が導入されることになりました。 これでPHPでも型パズルマウント取れるようになりますね。 ということで以下はPure intersection typesの紹介です。 PHP RFC: Pure intersection types Introduction 交差型とは、型がひとつの制約ではなく、複数の制約を同時に満たすことを必要とする型です。 交差型は、現在のところ言語ネイティブには対応していません。 かわりにphpdocアノテーションを使用したり、型付きプロパティを濫用したりしています。 class Test { private ?Traversable $traversable = null; private ?Countable $countabl

    【PHP8.1】PHPで交差型が使えるようになる - Qiita
    ymm1x
    ymm1x 2021/06/08
  • 【PHP src】PHPはソース管理に独自gitサーバを辞めてGitHubに移行する - Qiita

    これまでPHPはgit.php.netがメインのソース管理リポジトリでした。 GitHubにもリポジトリはありましたが、あくまでミラーという扱いでした。 しかし今後はgit.php.netを廃止し、GitHubへと完全移行することになりました。 原因はハッキングです。 経緯 https://github.com/php/php-src/commit/c730aa26bd52829a49f2ad284b181b7e82a68d7d Rasmus Lerdorf名義でおかしなコミットが行われました。 zval *enc; if ((Z_TYPE(PG(http_globals)[TRACK_VARS_SERVER]) == IS_ARRAY || zend_is_auto_global_str(ZEND_STRL("_SERVER"))) && (enc = zend_hash_str_fin

    【PHP src】PHPはソース管理に独自gitサーバを辞めてGitHubに移行する - Qiita
  • 【PHP8.1】PHPで簡単に非同期処理を書けるようになる - Qiita

    PHPは長きにわたり同期的、すなわち、あらゆる処理を上から順に実行していくというスタイルを取ってきました。 しかしたとえば、複数のURLからデータを取ってきて結果をまとめたいといった場合、時間のかかるHTTPリクエストは同時に投げたいですよね。 この用途にはGuzzleというライブラリが存在し、これを使えば同時にリクエストを投げられます。 しかし、ではHTTPアクセスとDBアクセスを同時にやりたい場合は? 時間のかかる計算を裏でやりたい場合は? などと考え始めると、こういった個別のライブラリでは対処しきれません。 ということで汎用的な非同期処理をPHPで書けるようにするRFCが提出されました。 PHP RFC: Fibers Introduction 人類史上ほぼ全ての期間において、人々はPHPを同期的なコードとしてのみ書いてきました。 同期的に実行されるコードのみが存在し、そしてそれを同

    【PHP8.1】PHPで簡単に非同期処理を書けるようになる - Qiita
  • 【PHP8.0】PHP8.0の新機能 - Qiita

    PHP8.2 / PHP8.1 / PHP8.0 / PHP7.4 2020/11/26に リリースされました 。 2020/08/04にPHP8.0がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2020/11/26にPHP8.0がリリースされる予定です。 というわけでPHP8.0で対応することが決まったRFCを見てみましょう。 RFC JIT 賛成50反対2で受理。 PHP8の目玉、JITです。 PHPをネイティブコードにコンパイルし、さらにコンパイルした結果を次のリクエストに使い回すことができます。 速度はOpcacheがオンの状態から平均的に1.3-1.5倍程度、さらにCPUバウンドな処理なら3倍以上という劇的な高速化が見込めます。 Opcache無しからだと、1分かかっていた

    【PHP8.0】PHP8.0の新機能 - Qiita
    ymm1x
    ymm1x 2020/08/11
  • 【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita

    結果は順にtrue、true、falseです。 これがPHP7までの非厳密な比較(等価)演算子だったわけですが、まあおかしいよねってことで、この挙動がPHP8.0で変更になることになりました。 よもや今さら基中の基である比較演算子の動作を弄ってくるとは思わなかったぞ。 以下はSaner string to number comparisonsの日語訳です。 PHP RFC: Saner string to number comparisons Introduction ==やその他の非厳密な比較演算子を用いた文字列と数値の比較は、現在は、文字列を数値にキャストし、その後整数か浮動小数の比較を行っています。 この結果、多数の不可解な結果が得られますが、中でも注目すべきは0 == "foobar"がtrueになることです。 このRFCでは、文字列が実際に数値型文字列である場合にのみ数値型

    【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita
    ymm1x
    ymm1x 2020/08/03
  • 【PHP8.0】PHPにヌルセーフ演算子が導入される - Qiita

    $user = null; echo $user->address->country ?? ''; PHPのプロパティは元よりnull安全なので、存在しないプロパティだろうがnullだろうがプリミティブ型だろうがいきなりプロパティを取り出せます。 取れない場合はE_NOTICEが発生しますが、??を使えば黙殺できます。 しかしメソッドはだめです。 echo $user->getAddress()->getCountry() ?? ''; // Fatal error: Call to a member function getAddress() // 1 if (method_exists($user, 'getAddress')) { if (method_exists($user->getAddress(), 'getCountry')) { echo $user->getAddres

    【PHP8.0】PHPにヌルセーフ演算子が導入される - Qiita
    ymm1x
    ymm1x 2020/07/21
  • PHP8.0.0α1がリリースされたのでさっそくJITの威力を体感する(した) - Qiita

    当かよ????????? まずPHP7.4.7からPHP8にアップデートするだけで処理時間が1割削減されています。 ただでさえ新機能てんこ盛りだってのに、そのうえ速度も上がるとかどうなってるんだPHP8。 次いでopcacheを有効にすると処理時間が半分になります。 最後にJITを有効にしたら、処理時間がopcache有効状態の30%になりました。 30%縮まりました、ではありません。 なんだこれ。 ということで、JITを有効にするだけで、処理時間がPHP8デフォルト設定の13%になりました。 どういうことかというと、元々1分かかっていた処理が8秒で終わるようになります。 足枷を外したとかいうレベルじゃねーぞ。 これ当に計算してるのか? 計算結果が固定値だから結果だけどこかに保存してるとかじゃないよな? しかもこれ、opcacheやJITの設定はほぼ初期値で、とりあえず有効にしただけと

    PHP8.0.0α1がリリースされたのでさっそくJITの威力を体感する(した) - Qiita
    ymm1x
    ymm1x 2020/06/29
  • 【PHP8.0】PHPにオブジェクト初期化子が導入される - Qiita

    これまで何度も塩漬けにされたり却下されたりしていたオブジェクト初期化子ですが、ついにPHP8.0で導入されることになりました。 オブジェクト初期化子が何かというとこれです。 これはオブジェクト初期化子でいいのか? 日語で何と表すのか適切な単語が思いつかなかったのでとりあえずオブジェクト初期化子としておきます。 愚直に訳すと"コンストラクタ引数昇格"ですが、そんな単語は無いうえに型昇格と紛らわしいです。 引数プロパティ宣言もパラメータプロパティ宣言もほぼ使われてないし何と表現すればいいのだろう。 きっと誰かが適切な語をプルリクしてくれるはず。 以下は該当のRFC、PHP RFC: Constructor Property Promotionの日語訳です。 PHP RFC: Constructor Property Promotion Introduction PHPでは現在のところ、オブ

    【PHP8.0】PHPにオブジェクト初期化子が導入される - Qiita
    ymm1x
    ymm1x 2020/06/02
  • 一度入れたJavaScriptライブラリは二度とアップデートされることはない - Qiita

    以下はCloudflareによるレポート、JavaScript Libraries Are Almost Never Updated Once Installedの日語訳です。 JavaScript Libraries Are Almost Never Updated Once Installed Cloudflareは、WebページにJavaScriptやその他のフロントエンドリソースを配置するための一般的な方法である、CDNJSを支援しています。 今回我々は、CDNJSチームの許可を得て、CDNJSへのリクエストから匿名化・集約されたデータを収集し、インターネットでWebサイトがどのように構築されているかを分析することにしました。 今回のエントリでは、ひとつの疑問に焦点を当てています。 すなわち、いちどJavaScriptライブラリをサイトにインストールしたあとで、ライブラリは更新さ

    一度入れたJavaScriptライブラリは二度とアップデートされることはない - Qiita
    ymm1x
    ymm1x 2020/02/18
  • PHPカンファレンス中央ヨーロッパ2019が中止になっていた - Qiita

    PHPのカンファレンスについて、大きなものはPHP公式に掲載されます。 PHPカンファレンス日2019ももちろん載っています。 なんとなくそのへんを見ていたら、php Central Europe 2019というカンファレンスが紹介されていました。 2019年10月4日~6日と3日間にわたって行われる予定の大きなカンファレンスだったのですが、公式を見てのとおり中止になりました。 原因はというと最近流行りの多様性なんちゃらです。 登壇予定者のうち幾人かが『登壇者に白人男性しかいない』ことを理由に登壇をキャンセルし、結果としてイベント自体のキャンセルにまで繋がったようです。 Larry Garfield Skipping PHP.CE this year asking them to drop some of our double-sessions in favor of more fema

    PHPカンファレンス中央ヨーロッパ2019が中止になっていた - Qiita
    ymm1x
    ymm1x 2019/12/24
  • 【PHP8.0】PHPでunion型が使えるようになる - Qiita

    Union Types 2.0というRFCが投票中です。 提案者はまたまたのNikita。 2019/10/25開始、2019/11/08終了で、受理には2/3+1の賛成が必要です。 2019/11/04時点で賛成55反対5であり、ほぼ導入確定です。 PHPのunion型って何かというと、TypeScriptのunion型とだいたい同じです。 int|string $aと書いたら$aはint型もしくはstring型ですよ、ということです。 ちなみに別途RFCをGitHubで管理しようという実験が進行中で、このRFCの詳細はGitHub上に存在します。 このRFCはまだNikitaの個人GitHub上にしかないのですが、決まりになったらPHP公式に移動になると思います。 まあGitHubのほうが管理とか更新とか楽ですからね。 ただGitHubはURLがすぐ404になるのだけはどうにかしてほ

    【PHP8.0】PHPでunion型が使えるようになる - Qiita
    ymm1x
    ymm1x 2019/11/05
  • JavaScriptの配列操作に役立つ13のヒントとトリック - Qiita

    以下はDuomly ( Webサイト / Twitter )による記事、13 useful JavaScript array tips and tricks you should knowの日語訳です。 Duomlyはプログラミング学習コースを提供しているWebサイトです。 ただランディングページにたいしたことが書いてないので、詳細はよくわかりません。 ここはもう少し書いておいてほしいところ。 13 useful JavaScript array tips and tricks you should know 配列はJavaScriptで最も一般的な概念のひとつであり、内部に格納されたデータを操作する手段は多数存在します。 配列はJavaScriptの最も基的なトピックであり、プログラミング学習パスの最初に学習するものだという前提のうえで、この記事ではあなたが知らないかもしれない、しか

    JavaScriptの配列操作に役立つ13のヒントとトリック - Qiita
  • Bash初心者からエキスパートになるためのコマンドとヒント101 - Qiita

    以下はAndrewによる記事、101 Bash Commands and Tips for Beginners to Expertsの日語訳です。 一部を除き、上から順にコマンドを打って確かめることができるようになっています。 読むだけではなく、実際に打って試してみることで理解が早まることでしょう。 101 Bash Commands and Tips for Beginners to Experts 一年前まで、私はもっぱらMacOSとUbuntuのふたつのOSで作業をしていました。 両OSにおいて、私のデフォルトシェルはbashです。 過去6、7年ほどbashで仕事をしているため、bashがどのように動作するか、ある程度は理解しているつもりです。 従って、bashを始めたばかりの人にとって一般的で有用なコマンドについて、いくつか解説していきたいと思います。 また、bashについて知っ

    Bash初心者からエキスパートになるためのコマンドとヒント101 - Qiita
    ymm1x
    ymm1x 2019/09/28
  • JavaScriptのエキサイティングな新機能7選 - Qiita

    以下はMostafa Gaafarによる記事、7 New Exciting JavaScript Features You Need to Knowの日語訳です。 7 New Exciting JavaScript Features You Need to Know JavaScript ( ECMA Script ) は進化する言語であり、たくさんのproposalやアイデアが出番を待ち受けています。 TC39 (Technical Committee 39) という委員会がJavaScript標準と新機能の定義を担当しています。 そして今年は彼らの活動が活発になっています。 以下は、現在ステージ3にある提案の一部の紹介です。 ステージ3は完成する直前の段階です。 これはつまり、この機能がブラウザやその他のJavaScriptエンジンにすぐに実装されることを表しています。 実際、以下の

    JavaScriptのエキサイティングな新機能7選 - Qiita
  • CSSを非同期ロードする最も簡単な方法 - Qiita

    CSS読み込みの<link rel="stylesheet">は同期なので、レンダリングブロックします。 どういうことかというと、CSSファイルの読み込み・パースが終わるまで画面描写が止まってしまいます。 これに対策する方法としてpreloadというものが策定されましたが、対応状況が微妙です。 2019年7月時点でもブラウザシェアが8割しかなく、Firefoxは当面対応するつもりがないようです。 とはいえ残り2割のためにloadCSSを突っ込んだりとか始めると末転倒感に溢れます。 全ブラウザ対応のためには、なんにしろ結局JavaScriptをこりこり書くしかない状況でした。 が、なんかすっごい簡単な対処法があったので紹介してみます。 以下はScott Jehlによる記事、The Simplest Way to Load CSS Asynchronouslyの日語訳です。 ちなみにSco

    CSSを非同期ロードする最も簡単な方法 - Qiita