タグ

ブックマーク / qiita.com (982)

  • Qiitaの質問に答えまくって気付いた初心者に足りないバグ解決スキル - Qiita

    ここのところちょっと時間に余裕があり、暇を見つけてはQiitaの質問に答えるという取り組みをやっています。以前StackOverflowでも同様の取り組みをちょっとだけしてたことがあります。 9日間で35個の質問に回答してみて、正直に思うのは「質問の質が悪すぎるなー」ということです。ただ、どう質が悪いのか上手く言語化できず悶々としていました。 そんな折、今朝googleのおススメ記事に飛び込んできたQuaraのこちらの回答を読んで、「これこれ!こういうことよ!」という気持ちになったため、これから質問する人に向けてこの内容を少し嚙み砕いてまとめてみます。 ベテランはどうデバッグをしてるのか (自分をベテランと言っていいのかはさておき)日頃からコードを書いていると、デバッグには、その時使っている言語やフレームワークによらず、ある程度の行動パターンがあることに気付いてきます。 デバッグには難しい

    Qiitaの質問に答えまくって気付いた初心者に足りないバグ解決スキル - Qiita
    n314
    n314 2022/03/30
    エラーのスタックトレースとか初めて見るとうえってなるよね。知らない単語や関数が8割ぐらいだと読めない。今でも例えばデバイスエラーでカーネルパニックになってトレースログが表示されても全く何も分からない。
  • 【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
    n314
    n314 2022/03/25
    ラスマス氏「PHPはひどいコードを動かすのが驚くほど得意」と言っていたけども、段々得意じゃなくなってくるのか。
  • 利用者は数十億人!? SQLiteはどこが凄いデータベース管理システムなのか調べてみた - Qiita

    はじめに SQLite は世界で一番使われている だから世界で一番凄いものに決まってるだろ SQLite は世界で最も使われている RDBMS です。名前に反して(?)おもちゃの RDBMS ではありません。元ネタと同じで 一番普及しているからと言って必ずしも一番凄いものであるとは限りませんが、普及しているのであればそこには何かしらの理由があるはずです。その理由を調べないことには、凄いか凄くないかの結論は出せないので SQLite のなにがそんなに凄いのかを調査しました。 2022/04/01 続編記事↓を書きました。 注意 この記事は「なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決する」の補足記事して書いたものです。ところどころ不自然にシェルスクリプトや Unix コマンドの話が登場するのはそのためです。基

    利用者は数十億人!? SQLiteはどこが凄いデータベース管理システムなのか調べてみた - Qiita
    n314
    n314 2022/03/10
    テストえぐいな…。後方互換性が失われることは無いと考えることもできそう。
  • オセロAI世界1位になってオセロAIをカンゼンニリカイシタ話 - Qiita

    オセロAIを作り始めた日のこと あれは2021年4月のこと、今思い返せば偶然が重なって起きた出来事でした。 第一の偶然は、ゲームAI(ゲームを自動プレイするAI)世界4連覇の方になぜかゲームAIの初歩的な話を30分程度教わっていたことです。 第二の偶然は、Twitterの知り合いが「オセロソフトRTA」なる競技をやっているのを目にしたことです。なんじゃそりゃ、と思った私はすぐに、その競技が 「オセロで遊ぶプラットフォームをどれだけ早く作るか」を競うものだとわかりました。 面白い、やってみよう。 YouTubeでライブ配信しながら、私はオセロソフトRTAをやってみました。その時のライブはこちら。3時間で完成できれば良いと思っていたのですが、思ったよりも早く終わってしまいました。 オセロAIでも作るか。 こうして私のオセロAI制作が開始しました。 何をしたら良いかわからなかった オセロAIを作

    オセロAI世界1位になってオセロAIをカンゼンニリカイシタ話 - Qiita
    n314
    n314 2022/02/22
    何も分からない状態からそんなことある!?と思ったけど、ルービックキューブを解くロボット(!?)とか作ってたのか。基礎力って大事だな…。
  • SQLでもイベントソーシングはできるという話 - Qiita

    イベントソーシング(ES)って何? イベントソーシング(以降、ESと呼ぶ)とは、かなり端的にいうとCRUDにおけるU(update; 更新)とD(delete; 削除)を使わないでアプリケーションのステートを管理する手法のことである。 なぜ使わないかというと、データの更新と削除は質的に「情報を消し去る」操作であり、消し去った情報が後々ビジネス価値のあるものだと気づいたとしても泣き寝入りするしかないからだ。 ESにおいては、データの更新や削除をするかわりにアプリケーションが管理するステートに対してどのような操作が行われたかをappend-onlyのイベントログに記録していき、ある時点でのステートを知りたいときはアプリケーション側でイベントログの内容を元にステートを導き出すという方法を取る。 CRUDとESの比較 例えば、「ユーザーがパスワード変更する」場合、よくあるCRUDパターンでは u

    SQLでもイベントソーシングはできるという話 - Qiita
    n314
    n314 2022/02/15
    論理的には「イベントが起きる => ユーザーが作成・変更される」だと思うけど、ERD的には逆になるなら、イベント無しのユーザーが存在してしまうね。スナップショットも取るならuser_password_historiesでいいような。
  • パスワードの1文字目に「~(チルダ)」を使って痛い目にあった - Qiita

    何を言っているんだと思われるかもしれないですが、気軽にパスワードの1文字目に「~」を使わないほうがいいというお話です。 起こった問題 踏み台サーバー経由でサーバーAに接続して作業をしていた時の話です。 いわゆる多段 ssh 接続というもので、リモートワークになってからは結構使われる方も多いかと思います。 サーバーA上で root 権限になろうと sudo su - してパスワードを入力したら Connection to xxx.xxx.yyy.zzz closed. の文字とともにサーバーAから追い出されてしまいました。 なにかの間違いだろうと何度か挑戦していたのですが、結果はサーバーAから切断され踏み台サーバーに戻る羽目に。。。 そのときに入力していたパスワードが ~.xxxxxxxxxx のような ~ から始まるものでした。 調査 ~ って何か意味があったよなーと思ってどう調べようかと

    パスワードの1文字目に「~(チルダ)」を使って痛い目にあった - Qiita
    n314
    n314 2022/02/11
    よくssh使ってるのに初めて知った。試しにsshで接続して ~. を入力したら切断された。~? でコマンド一覧が出る。
  • Googleフォントを使うと犯罪になる - Qiita

    <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ア

    Googleフォントを使うと犯罪になる - Qiita
    n314
    n314 2022/02/08
    まあ確かにフォントなら問題ないということになったら1ピクセルの透過画像を使わずにフォントを使えばいいわけだしね。
  • 「別プロセスの PHP が今何をしているか」を実況するプログラムを PHP で作った - Qiita

    0 fgets <internal>:-1 1 <main> <internal>:-1 0 fgets <internal>:-1 1 <main> <internal>:-1 0 fgets <internal>:-1 1 <main> <internal>:-1 ... 0 time_nanosleep <internal>:-1 1 PhpProfiler\Lib\Loop\LoopMiddleware\NanoSleepMiddleware::invoke /home/sji/work/php-profiler/src/Lib/Loop/LoopMiddleware/NanoSleepMiddleware.php:33 2 PhpProfiler\Lib\Loop\LoopMiddleware\KeyboardCancelMiddleware::invoke /home/sji/

    「別プロセスの PHP が今何をしているか」を実況するプログラムを PHP で作った - Qiita
  • 【Chrome】ServiceWorkerを今度こそ決定的かつ完全に消去する - Qiita

    前、Chromeを使うなら、必ずServiceWorkersを無効化しようという記事を書いたのですが、あの方法はてんで全然ダメダメでした。 chrome://serviceworker-internalsには無用なServiceWorkerが増え続け、chrome://flags/からはServiceWorkerの削除設定が削除されました。 そんなわけで、今度こそServiceWorkerを決定的かつ完全に消し去りたいと思います。 といっても自力でどうこうしたわけではなく、全面的に他人の力を借りただけですが。 Reject Service Worker Reject Service Workerをインストールする。 おわり。 かんたん! 作者はtoshiさんです。 ありがとうございます。 アドオンの技術的内容はServiceWorkerを無効化するという記事に書かれているのですが、Serv

    【Chrome】ServiceWorkerを今度こそ決定的かつ完全に消去する - Qiita
    n314
    n314 2022/02/03
    Running Status: RUNNING で検索したら動いてるのはgoogleとqiitaだけだった。今開いてるから?全部で252個登録されていたけど大半は記憶に無いんだよなあ…。一度見ただけのブログやニュースかな。
  • 急なTypeScript案件🔥最初の30日間に使い倒したい「コードリーディング支援ツール」 - Qiita

    この投稿では、「TypeScriptの文法や用語がよく分からない」という問題を解消してくれそうなツールを紹介します。 勉強しながらの見切り発車 最近はTypeScript未経験でも、TypeScript案件にアサインされることが増えてきているように思います。 運がいいと着手前にTypeScriptをじっくり学習する時間を与えられることがあります。しかし、多くのケースでは、見切り発車で開発に参加するのではないでしょうか。 コードリーディングから始まる TypeScript案件は、理解すべき既存のTypeScript/JavaScriptコードがあるケースが多いです。 そのため、 読んで理解すべき既存のTypeScriptコードがある しかし、TypeScriptの知識が乏しい状態でスタート といった事態がよく起きます。 新規プロジェクトでは既存コードがありませんが、ググって出てきたサンプルコ

    急なTypeScript案件🔥最初の30日間に使い倒したい「コードリーディング支援ツール」 - Qiita
  • 他言語ユーザがRust言語をガチめに使っての雑感 - 分散KVSを書いてみて - - Qiita

    どうも ryo_grid です。 昨年はRustを覚えたいと思い、題材としてRESTインタフェースを持った分散KVS(実質はいわゆる分散ハッシュテーブル)を書いたりしました。 FunnelKVS: Rust implementation of autonomous distributed key-value store which has REST interfaces この記事では、他言語を使ってきた私が、経験のないRustを用いてそこそこのコード規模・複雑さのシステムソフトウェアを書いてみた上で、Rustについて感じたことを、独断と偏見で述べます。 Rustってなんか流行りそうな雰囲気あるけど難しいとも聞くし、どうなんだろ?と考えている方や、Rustガチ勢の方々に、「初学者はこう感じるんだな」「ここらへんに苦労するんだな」というところを伝えることで、Rustのスムーズな普及に少しでも寄

    他言語ユーザがRust言語をガチめに使っての雑感 - 分散KVSを書いてみて - - Qiita
    n314
    n314 2022/01/12
  • JavaScript ライジングスター 2021 - Qiita

    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

    JavaScript ライジングスター 2021 - Qiita
    n314
    n314 2022/01/11
    知らないものが増えてきた
  • そこのお前! 余計なuseMemo1個に含まれるオーバーヘッドは余計なdiv 0.57個分だぜ! - Qiita

    ※効果には個人差があります。 useMemoのオーバーヘッドについて ReactのuseMemoは、パフォーマンス最適化に使われるAPIです。コンポーネント内で計算やオブジェクトの生成を行う際に、以前の計算結果をキャッシュして使い回すことで再レンダリング時の計算を削減したり、新しいオブジェクトの生成を防ぐことができます。 useMemoに関しては、あくまで最適化のためのものであるから「無駄に使うべきではない」という言説がよく見られます。その理由は、useMemoのコストもゼロではなく、余計な使用はそれだけパフォーマンスの低下に繋がってしまうからです。 しかし、筆者はuseMemoのコストは微々たるものであり、当に一目見て明らかに無駄でない限りは積極的に使うべきだと思っています。 そこで、筆者はuseMemoのオーバーヘッドがどれくらいかを調べるためのベンチマークを作成しました。この記事で

    そこのお前! 余計なuseMemo1個に含まれるオーバーヘッドは余計なdiv 0.57個分だぜ! - Qiita
    n314
    n314 2022/01/07
    メモリ気にしない?カレンダーとかセルが大量にある場合、ちょっと古いAndroidだと遅かったりしたんだよな〜。あと他のアプリ見て戻った時に勝手にリロードされることが増えるとか。
  • 英語をロクに喋れないプログラマ、AI・MLに支援され、海外登壇でライブコーディングしたら絶賛された ~Elixirで世界進出のススメ~ - Qiita

    英語をロクに喋れないプログラマ、AI・MLに支援され、海外登壇でライブコーディングしたら絶賛された ~Elixirで世界進出のススメ~Elixir海外fukuoka.ex登壇 この記事は、Elixir Advent Calendar 2021の19日目です 昨日は @ohr486 さんの「iex inside」でした piacere です、ご覧いただいてありがとございます さて私は海外登壇の3週間前まで英語が喋れなかったが… 今年10月、プログラミング言語「Elixir」の海外MeetUpである「ElixirConf US 2021」で、海外勢を目の前に、会員制サイトをわずか20分で作るライブコーディングをブッ込んできました … 下記の画像をクリックしたらYouTubeで視聴できます 登壇が決まったときは、凄まじい興奮と同時に、「ヤバい、当に喋ることになってしもた … 英語ぜんぜんだけど

    英語をロクに喋れないプログラマ、AI・MLに支援され、海外登壇でライブコーディングしたら絶賛された ~Elixirで世界進出のススメ~ - Qiita
    n314
    n314 2022/01/06
    学生のときに欲しかった…。
  • 【firestoreアンチパターン】RDB思考でfirestoreを使うと危険な4つのケースと対策 - Qiita

    こんにちは。virapture株式会社のもぐめっとです。 最近ユニクロで友達とオソロのメタモンTシャツ買いました。カワイイです。 日はfirestore使ってて辛いよーという声をよく聞いたので、そのままfirestore使っていると危険な理由と対策など4つのアンチパターンとして紹介しようと思います。 1. Join Lover: データをjoinする 目的 RDBではよくあるテーブル同士を結合してデータを取り出すJoinfirestorejoinを用いたいケースというのは特定のドキュメントのデータだけでは表示する要素が足りないので別のドキュメントから取得してなんとかするみたいな感じになると思います。 しかし、firestoreのプロもおっしゃってますが、firestoreへのjoin追加は望みが薄いと思われます。 RDBで重くなってる要因も外部結合や副問い合わせとかガンガン使って重

    【firestoreアンチパターン】RDB思考でfirestoreを使うと危険な4つのケースと対策 - Qiita
    n314
    n314 2022/01/06
    ちょくちょくRDBのjoinで遅くなるという話が挟まってるけど、それってRDBではなくてMySQLの特徴なんじゃないのかな。もしくはインデックスが無いとかメモリ制限されてるとか。
  • 英語面接で5歳児みたいなことしか言えないからカッとなってWebサービス作った【個人開発】 - Qiita

    要約 「英語で意見を言おうとすると5歳児のようになってしまう」という課題を解決するEnglisterというサービスを開発した。 自分で使ってみたところ、10問程度の問題を解くだけでスラスラと英語で意見を言えるようになった。 実装はDeepL APINext.jsAPI routeを使って爆速開発をした。 追加(2021/01/18) 記事を公開してから毎日機能追加をしています。2週間前からどれだけ変わったか是非見ていただきたいです。 背景にあった課題 「英語で意見を言おうとすると5歳児のようになってしまう」 英語にすごい苦手意識があるわけではない。TOEICは840点で、すごく簡単な日常会話なら問題なくできるので、海外旅行で困るということはなかった。しかし、仕事でたまに海外の人とやりとりをするときや外資系企業の英語面接で**「ちょっと難しい質問」**をされると、途端に5歳児になってしま

    英語面接で5歳児みたいなことしか言えないからカッとなってWebサービス作った【個人開発】 - Qiita
    n314
    n314 2022/01/04
    すごい。ありそうで無かった?
  • 半角スペースの有無だけでサーバーをぶっ壊しそうになった話 - Qiita

    記事は「番環境でやらかしちゃった人 Advent Calendar 2021」24日目となります。 前提事項 事故を起こしたのは確か6年くらい前 サーバーのOSは確かCentOS6 諸事情でワンオペだった 当時の記憶を元にした再現であり多少盛ってるので細かいツッコミは勘弁してください 何をしてたか ~~~番環境作業中~~~ (手順書ナガメー) よし、次はファイルの移動か mvコマンド入力してカチャカチャカチャ…ッターン mv: cannot move /bin/ac to '/home/user/work_dir': Permission denied mv: cannot move /bin/aconnet to '/home/user/work_dir': Permission denied mv: cannot move /bin/addr2line to '/home/us

    半角スペースの有無だけでサーバーをぶっ壊しそうになった話 - Qiita
    n314
    n314 2021/12/27
    手癖でコマンド入力するときは何度もTabを押すので、この手のミスをすることって無かったかなあ。コマンドのテキスト用意しても、logfile.1.zip とかがあると結局ミスになるような。
  • PHPによる疑似的なイミュータブルとムーブセマンティクスモドキ - Qiita

    PHP Advent Calendar 2021 15日目 前日は@hanhan1978さんの複雑度の上がったLaravelをミドルウェアから眺める方法でした 早速題というか軽い説明と実装に入ります 【実装】イミュータブル イミュータブルとは不変である事を意味しますが、今回は再束縛・再定義・再代入全ての意味で不可という意味で使います 簡単に言うとjavascriptのconstです phpによる実装の前にnodejsとdenoにおけるconstの確認から始めます nodejsのconst Welcome to Node.js v17.2.0. Type ".help" for more information. > const varx =123; undefined > const varx =123; Uncaught SyntaxError: Identifier 'varx' h

    PHPによる疑似的なイミュータブルとムーブセマンティクスモドキ - Qiita
    n314
    n314 2021/12/24
    ムーブセマンティクス風というか、フラッシュセッション風。
  • バージョン不一致でdockerのpostgresqlに接続できなくなった件 - Qiita

    gitリポジトリを更新したらローカルDBに接続できなくなった 表題の件解決にいたるまでの覚書です。 プロジェクトphpのバージョンが8.1になったということなので git pullしてローカルをアップデートしたら dockerのコンテナの1つが立ち上がらなくなってDBに接続できなくなった。 とりあえずdockerのログを確認する。 The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 14.1. バージョンの不一致らしい。phpのバージョンアップと共にpostgresのバージョンも上げたようだ。 なのでpostgresqlのバージョンを13.5→14.1に上げた・・・が立ち上げなおしても上記のエラーが出続ける。 ネットで上記のエラーログを

    バージョン不一致でdockerのpostgresqlに接続できなくなった件 - Qiita
    n314
    n314 2021/12/16
    PostgreSQLサーバーのバージョンを上げたらDBクラスタのバージョンも上げないといけない。debian系ならpg_updateclusterを実行するだけだけど、yum系だとどうするんだろ。
  • なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita

    なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】UXUIDesignUIデザイン画面設計 1.はじめに エンジニアの私がデザインを気で勉強した結果、デザイナーとエンジニアはそもそも思考が大きく違っているということがわかりました。 今回は「それ」をデザインに苦手意識のあるエンジニア方にも理解してもらえたらと思い、わかりやすくまとめてみました。 2.アプリの画面デザインを考えてみよう まず、こんなアプリを考えてみてください。 フィットネストレーナーが使うアプリ トレーニングルームでお客様とお話しながら使う 端末はタブレット そして 会員の個人情報確認 前回までのトレーニング状況の確認 次回の予約受付 といったことをします。 使える情報としては、こんな感じです。 あなたならどう画面デザインをするか、もしお時間があったら考えてみてください。

    なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita
    n314
    n314 2021/12/09
    とても良いけどサンプルがちょっと引っかかるかな…。一般ユーザー向けじゃない情報をぎっしり詰め込んだ文字だらけの管理画面って、作ってるこっちよりオペレーターの方が把握してて使いこなしてる。