タグ

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

  • 【熱望】javascript の for 文で var i を宣言するのはやめて下さい - Qiita

    この書き方でも for 文は正常に動作します。 しかしながらこの書き方は 以下の書き間違いが生じることがあります。 for(var i = 0; i < array1.length; i++) { //長い処理 for(var i = 0; i < array2.length; i++) { } } 長い処理の中で i を宣言したことを忘れて 再び i を宣言してしまうことで 外側の for 文のカウントにバグが発生し 期待した動作にならない例になります。 私も他の人が作成した web アプリで このバグを見かけたことがあります。 for の変数を宣言する場合 必ず let で宣言して下さい。 var でなければ正常に動作しないのは 構造的欠陥のハズです。 let array1 = [1, 2, 3]; let array2 = [4, 5, 6]; for(let i = 0; i <

    【熱望】javascript の for 文で var i を宣言するのはやめて下さい - Qiita
    Fluss_kawa
    Fluss_kawa 2024/04/22
    今時JSでvar使うことを勧めてるテキストってあんまりない気がするけど。最近の動向としては旧来からあるfor文は書かないようにする気がする。
  • どうしてあなたの共通化は間違っているのか:目次 - Qiita

    はじめに この連載では共通化とモジュール分割について扱います。この話題においてQiitaで有名な記事のひとつが@MinoDrivenさんの単一責任原則で無責任な多目的クラスを爆殺するでしょう。この記事を未読の方はまずこちらを読むことをお勧めします。連載では、この記事に書かれているような基礎的な事項については既知であることを前提に、どのようにすれば単一責任原則にそったモジュールの分割を行うことが出来るのかをなるべく 「場合による」という言葉に逃げずに なるべく 網羅的・理論的に 解説します。 いいね、ストックをよろしくお願いします。 対象読者 設計に興味のあるエンジニア 基礎的な設計原則について学んだものの、実際の場面でどのように応用すればいいのかが掴めないエンジニア ミクロな設計についての知識を増やしたい人 ※この記事では、特定のメソッドをどのように作成するべきか、このクラスは複数の処理

    どうしてあなたの共通化は間違っているのか:目次 - Qiita
    Fluss_kawa
    Fluss_kawa 2024/03/11
    ある程度の規模のプロダクトを作っては俯瞰して設計し直して作り直してを何回かしてだんだん勘所が掴めるようになっていくけれど、仕事ではなかなかそのサイクルを回せない。
  • GitHub Copilotが便利になったのでターミナルもVSCodeで良いのでは?という話 - Qiita

    この記事はラクスアドベントカレンダー2の17日目です。 先日のVSCodeのアップデートで、GitHub Copilotを使うとターミナル操作が便利になりました。 これにより、別途ターミナルのアプリを使わずにすべてVSCode上で操作した方が便利なのでは?となりました。 アップデート前までどうしてたか MaciTerm2上で、GitHub CopilotのCLI版(パブリックベータ)で入力補完やコマンドの意味を調べたりしていました。 それ自体は便利でしたが、いくつかの不便な点もありました。 使い方がちょっと煩雑だった 例えばコマンドをサジェストして欲しい場合、gh copilot suggest 'gitで1つ前のコミットを取り消したい'のようにタイプする文字数も多くなり、またそれが一般的なコマンド or ghコマンド or gitコマンドかの3択に答えないといけなくて面倒でした。 ss

    GitHub Copilotが便利になったのでターミナルもVSCodeで良いのでは?という話 - Qiita
    Fluss_kawa
    Fluss_kawa 2023/12/18
    もうさぁ、emacsでいいんじゃないかと思わなくもない。
  • Snowflake で1万"列"データを扱う技術 - Qiita

    そうです。わずか10行しかないデータですが、 15,000列 あります。 「それデータモデリングをミスってるやん」というツッコミはあると思いますが、今回はそのあたりについてはノーコメントです。諸事情ありこのようなデータを扱うことになりました。 今回は Snowflake でもなかなか扱うことが難しい (横方向に) クソデカデータの世界 をご案内したいと思います。 クソデカテーブルを作る まずテーブルを作ります。 この時点でエラーが出てくれるならまだ良かった。。。 なんとこのクエリは問題なく実行でき、テーブルは作成できます。 作成できてしまいます。 作成できてしまったが故に、「さすが Snowflake、列数が多いテーブルも簡単に扱えるんだね!!」と高をくくってしまいます。 ちなみに PostgreSQL の場合は1テーブルあたり最大 1,600 列だそうです。まぁそれだけあれば普通は困らな

    Snowflake で1万"列"データを扱う技術 - Qiita
    Fluss_kawa
    Fluss_kawa 2023/12/09
    特徴量行列とか作るとやたら横に長い表ができるんですよ。縦持ちしてたなぁ。全部を一気に使うことはあんまりなかったから。
  • 本番サーバー60台のホスト名を全部 cat にしてしまった話 - Qiita

    この記事は、番環境などでやらかしちゃった人 Advent Calendar 2023 の4日目です。年末進行、いかがお過ごしでしょうか?みなさま無事に仕事が納まることを願っております… 新人インフラエンジニアが、番ウェブサーバー60台のホスト名を全部 cat にしてしまった話について、ここに供養させていただきたいと思います 背景 おそらく今から7年くらい前、インフラエンジニアとして転職してきて1年ほどが経ち、番環境での作業もこなれてきたなというバッチリのタイミングで事を起こしてしまいました。サーバーは CentOS 6 だったと思います。 職場としてはまだまだベンチャー感にあふれ大きな裁量が与えられスピード感のある環境ながら、サービスの登録ユーザー数は1,000万を超え、番環境の規模としては既になかなかの大きさがあり、ウェブサーバーだけでも60台くらいあったと思います。ひと山につき

    本番サーバー60台のホスト名を全部 cat にしてしまった話 - Qiita
    Fluss_kawa
    Fluss_kawa 2023/12/05
    cronね。昔やらかしてからなるべくその場で編集せずに外部ファイルで編集してからcrontab fileするようにしてる。(ちょっと書き換えたい時はcron -eしちゃうけど)
  • 中途入社や部署異動で来た新メンバーを活躍しづらくするアンチパターン - Qiita

    1. はじめに ソフトウェア開発のチームに、新しいメンバーが入ってくることはよくあります。 以前に新卒社員がチーム入ってきた場合の育成方法を紹介しました(こちら)。 今回は、新卒社員ではなく、他の会社から中途入社か同じ会社の部署異動で来る新メンバーの話です。 (エンジニアが数百人などで規模が大きい会社の場合、部署が違うと仕事のやり方が全く変わる場合があるので、今回は中途入社と他の部署からの異動を同じように「新メンバー」として扱います) 会社や部署が変わると仕事のやり方が大きく変わるため、仕事のやり方に戸惑うことが多いと思います。 稿では、そのような「新メンバー」を活躍しづらくしてしまうアンチパターンとその対策を紹介します。 2. 中途入社や部署異動で来た新メンバーが適応することの困難さを理解する 中途入社や部署異動で来た新メンバーが組織に適応することは、新卒社員のそれとは別の難しさがあり

    中途入社や部署異動で来た新メンバーを活躍しづらくするアンチパターン - Qiita
    Fluss_kawa
    Fluss_kawa 2023/12/04
    技術的にはできることが多いのでテクニックに分類されるところは口出さないけど、仕事の進め方とかお約束ごとは各社全然違うのでそこは新卒以上に丁寧に教えないと力を発揮してもらえない。
  • Youtubeは無限のクラウドストレージ - Qiita

    みなさん、こんな経験はありませんか もちろんありますよね。ということで無料で無限にクラウドストレージを使う方法を考えました。(月額130円で50GBは破格だけど) Youtube好き 今回使うのはYoutubeです。ほぼ全員Youtubeを見たことあると思いますが、Youtubeに動画をあげたことがある人はあんまりいないんじゃないでしょうか。 なんとこのYoutube、動画のアップロード数に制限がありません!!!じゃあファイルを動画にしてアップロードしたら好きな時にダウンロードして使えるじゃん。 動画化の方法 ということでやっていきます。まず、ファイルを動画化する方法を考えます。 すべてのファイルはバイト列なので、そいつらをそのまま画像のピクセルにして、そいつらを動画にしたらいいんじゃないかというのが一番最初に思いつくと思いますが、それは甘いです。甘すぎます。 Youtubeに動画をアップ

    Youtubeは無限のクラウドストレージ - Qiita
    Fluss_kawa
    Fluss_kawa 2023/11/22
    音声信号である程度のゆっくりのボーとかにしとけば圧縮形式が変わろうとなんだろうと復元できる気はする。再生させてそれをスピーカーと前に置いたスマホとかでデコードすれば動画のダウンロード必要ないし。
  • 私がエンジニアをイラっとさせてきた質問時の態度5選 - Qiita

    上司に質問をすると、いつも相手を不機嫌にさせてしまいます…」 このような悩みを持つエンジニアは少なくないのではないでしょうか。実際、誰もが「こんな質問をして怒られたらどうしよう」と躊躇したことがあるでしょう。 ただ、もしかしたらその悩みは簡単に解消できるかもしれません。なぜなら、エンジニアがイラっとする質問の態度はある程度きまっているからです。質問者として適切な態度を理解することで、質問が改善されるはずです。 はじめに まず、これは全員の共通認識だと思うのですが、大前提として『質問をすること』は難しいです。ですので、この記事ではあえて「良い質問」と「悪い質問」の違いには触れません。その手の議論にはすでに飽き飽きしているからです。 次に、エンジニアという生き物について説明します。多くのエンジニア技術力を身につける必要があるため勤勉家な人が多いです。少なくとも私は「自分で学ぶ気のない人に厳

    私がエンジニアをイラっとさせてきた質問時の態度5選 - Qiita
    Fluss_kawa
    Fluss_kawa 2023/10/23
    仕事での質問なら特にイラッとしないけど、見返りもないプライベートだったらイラッとするかな。自分は非エンジニアのこうすればできると思うのですがとか言ってくるのが仕事でもイラっとしたなぁ。
  • 【アラサーIT資格最強勉強法】勉強から逃げてきたあなたへ、超現実的!7STEP勉強法 - Qiita

    アラサーになるまで勉強してこなかった高卒の人はこれを読むこと。(単なる私の勉強法備忘録と反省点w) CCNAやLPIC、AWSの試験に落ちてはまた再チャレンジしてきた僕が1年前の自分に勉強方法を教えるならこの方法だなと思い書きました。 勉強猛者の人がたくさんいるIT界隈、Quiitaを投稿している人たちからするとバカにされる内容かもしれませんが・・笑 私と同じく勉強を続けていても身についているかわからない・・周りの人に追い抜かれていく悔しさを感じている人の役に立てればと思い書きました。 ステップ1:問題集選びを間違えるな 勉強は努力量ではない。努力する方向がすべてだ。たった少しでも間違った方向へ向かってしまったら2ヶ月後、ゴールとは全く違う方向へ向かってしまう・・ 資格合格者達の合格体験記を調べよう。最新版でかつ試験のバージョンと合っているのか確認して選ぼう。もちろん1冊だけでは足りない。

    【アラサーIT資格最強勉強法】勉強から逃げてきたあなたへ、超現実的!7STEP勉強法 - Qiita
    Fluss_kawa
    Fluss_kawa 2023/07/27
    まぁ、資格を取るだけで良いならこの勉強方法だと思う。
  • jQueryへの別れ:現代的な開発のための必須JavaScriptメソッド - Qiita

    はじめに 私は長い間レガシーコードと共に仕事をしてきましたが、jQueryの重要性は依然として頻繁に話題に上がるトピックの一つです。ライブラリ自体は便利なままですが、それは別の時代のニーズを完璧に満たしていました。 現在、私たちは既にES2023について話していますが、過去にjQueryがカバーしていたほとんどの機能は、すでに2015年にリリースされたES6に取り込まれています。 ES6の標準は既に広範にサポートされており、96%のレベルに達しています(出典:caniuse.com)。そのため、特に要素の選択、スタイリング、アニメーション、データの取得などの基的なタスクについては、ライブラリの使用を見直す良いタイミングかもしれません。 以下のトピックは、いくつかの標準的なjQueryのパターンと、それに相当するバニラJavaScriptでの手法を示す参考資料として役立つと思います。 要素

    jQueryへの別れ:現代的な開発のための必須JavaScriptメソッド - Qiita
    Fluss_kawa
    Fluss_kawa 2023/06/24
    ここに書かれてる内容だったらjQueryを入れられない環境じゃなければjQueryで良くね?となるような。とはいえオーバースペックな時もあるよなぁ。
  • デジタル庁のサイトやばすぎるwww - Qiita

    はじめに みなさん、デジタル庁のサイトはご覧になったことはありますか?今話題のデジタル庁です。 こちらが2023年6月現在のデジタル庁のサイトです。やばくないですかこれ?最初見たときこれ「やっばw」と思いました。これからこのサイトのやばさを語っていきたいと思います。 洗練されたシンプルさ、そしてデザイン 僕は最初見たときびっくりしました。「なんてシンプルで見やすいんだ!」官公庁のサイトですよ?官公庁のサイトといえば、細かい字がずらっと並んで見づらいイメージでしたが、デジタル庁のサイトはとことんシンプルさを追求して見やすくしてます。フォントもNoto Sans JPを使われててとても読みやすい。黒も #000 でなく見やすい色になっている。 やばいですねこれ。 そしてこのレイアウトを見たとき、余白のおかげでとても見やすいなと思いました。そこでChrome Dev Toolでレイアウトを見てみ

    デジタル庁のサイトやばすぎるwww - Qiita
    Fluss_kawa
    Fluss_kawa 2023/06/12
    シンプルでwebエンジニアが好みそうというのはよくわかるけど、愛がないと言われるとそうだよなぁとも思う。万人が使えるシンプルさって難しい。
  • 1100万行・32GB超の巨大CSVファイルの基本統計量を4GBメモリマシンで算出する - Qiita

    はじめに この記事は,Kaggle Advent Calendar 2022第6日目の記事になります。 記事では、 32GB超のCSVデータの基統計量を、小規模マシンでも省メモリかつ高速に計算するテクニック について解説します。 Kaggleコンペに限らず、 マシンスペックが低いため、大きなデータセットを満足に処理できず困っている 毎回行うファイル読み込みが遅いので、もっと高速化したい ⚡ といった悩みや課題を抱えている方の参考になれば幸いです。 モチベーション データ分析業務やKaggle等のコンペティションで初めてのデータセットを扱う場合、いきなり機械学習アルゴリズムを行うことはまず無く、最初にデータ観察を行うのが一般的です。 テーブルデータであれば、各カラムの基統計量(最小値、最大値、平均、分散、四分位数)などを計算・可視化し、データクレンジングの要否や特徴量設計の方針などを検

    1100万行・32GB超の巨大CSVファイルの基本統計量を4GBメモリマシンで算出する - Qiita
    Fluss_kawa
    Fluss_kawa 2023/06/06
    逐次読み込みで基本統計量計算するアルゴリズムなかったっけ?
  • シェルスクリプトで日付処理ならdateコマンドは投げ捨ててDateutilsを使おう! - Qiita

    この中で私が特に気に入ったコマンドは dateround です。次点は dategrep です。この二つは特に強力で、awk やその他のコマンドを使って日時をこねくり回すような「無駄に難解なコード」を書かずに Dateutils のコマンド群だけで大抵のことはなんでもできてしまいます。専用のことをするには専用のコマンドを作ることが重要であることを思い出させてくれるでしょう。 Dateutils の重要な特徴と使用例 大抵のコマンドは機能の説明から想像できると思いますし、公式サイトにも例があるので詳細を一つ一つ説明することはしません。その代わりに「Dateutils の使いこなしに必要な考え方」が分かるような例をいくつか紹介します。 重要な注意点ですが Dateutils はロケールをサポートしていますが、原則としてシステムのロケール情報やユーザーの環境変数には依存していません。内部にロケー

    シェルスクリプトで日付処理ならdateコマンドは投げ捨ててDateutilsを使おう! - Qiita
    Fluss_kawa
    Fluss_kawa 2023/06/05
    標準で入ってるなら使うけど入ってないとなるとなかなか辛い。
  • 後輩エンジニアを絶望させるDB設計方法4選 - Qiita

    エンジニアの格闘 エンジニアのみなさんはかつてひどいコードや設計と直面し、それと格闘したことでレベルアップした経験はあるでしょう。 つまり、先輩エンジニアたるものクソコードやクソ設計を残して、後輩エンジニアのレベルアップに寄与するのは義務だと言っても過言ではありません(?) 今回はDB設計に焦点をあてて、そのように絶望させる設計の残し方を記しておきます。 初めての投稿なのでレベル的にはかなり初歩になっています。 ↑きっと彼も立派なエンジニアになった時感謝してくれるでしょう 1) 必要な正規化を行わない エンジニアという不思議な不思議な生き物は処理の共通化等なにかと処理をまとめたがる習性があります。 以下のように著者テーブルと書籍テーブルがあるとします。 書籍 書籍ID 書籍名 著者ID

    後輩エンジニアを絶望させるDB設計方法4選 - Qiita
    Fluss_kawa
    Fluss_kawa 2023/05/31
    んー、4は正規化が足りてない気がするけど。なんで教師名がコースにくっついてるんだよ。一人の先生が複数コース持ったときにその先生の担当コース出すの大変だろうに。
  • 詳細解説 jqコマンドとシェルスクリプトの正しい使い方と考え方 〜 データの流れを制するUNIX哲学流シェルプログラミング - Qiita

    詳細解説 jqコマンドとシェルスクリプトの正しい使い方と考え方 〜 データの流れを制するUNIX哲学流シェルプログラミングShellScriptUNIXシェル芸jqUnix哲学 はじめに シェルスクリプトから JSON データを処理する時に良く使われるのが jq コマンドです。しかしほとんどの人は jq コマンドとシェルスクリプトのつなぎ方を間違えています。jq コマンドの使い方が間違っているというより、シェルスクリプトの設計思想や考え方を正しく理解していないために、間違ったつなぎ方をしていると言った方がより正確でしょう。「シェルスクリプトは正しい書き方をすれば簡単になる」このことをこの記事では明らかにしています。 追記 「jqコマンドとシェルスクリプトの上手い速い使い方」に要約版を書きました。この記事は長すぎた…。 タイトルの「UNIX 哲学流」とは jq コマンドをフィルタして使い、J

    詳細解説 jqコマンドとシェルスクリプトの正しい使い方と考え方 〜 データの流れを制するUNIX哲学流シェルプログラミング - Qiita
    Fluss_kawa
    Fluss_kawa 2022/10/26
    そこまで間違った使用例が多いなら、もうそもそもの設計が不味かったのでは?自分はjqは、あくまでさくっとデータを眺めたいときに使う物だと思ってる。、
  • ルーチンワークはPythonにやらせよう Seleniumで勤怠処理を自動化する - Qiita

    勤怠処理の自動化は、以下の仕組みによって実現しています。 在宅勤務と出社では勤怠処理が異なるため、基的にフルリモート前提で在宅勤務の場合に処理を行うよう設定しています。 cronによってシェルスクリプトを起動 シェルスクリプトで在宅勤務の判定を行う 在宅勤務の場合、Pythonのプログラムを起動 Seleniumで勤怠入力 実装 Pythonのプログラムは、仮想環境を作成して実行しています。 仮想環境の作成及びSeleniumの導入 Pythonの仮想環境はvenvを使用して作成します。 仮想環境を作成するためには、以下のコマンドを実行します。 <Dir>には任意のディレクトリ名を指定します。 $ python3 -m venv <Dir> $ source <Dir>/bin/activate 仮想環境構築後、seleniumをインストールします。 仮想環境が有効な場合はプロンプトの表

    ルーチンワークはPythonにやらせよう Seleniumで勤怠処理を自動化する - Qiita
    Fluss_kawa
    Fluss_kawa 2022/09/18
    ソースコード読んで中で利用してるAPIを叩けば。。。
  • Dockerコンテナのpostgresqlがマルウェアに感染した件について - Qiita

    背景 Dockerコンテナを立てたらマルウェアに感染したのでサイバーセキュリティの啓蒙を兼ねてメモ書きしてみました。 注意事項 マルウェアに感染した被害の対処方法を記述しています。マルウェア自体の機能や解析の解説ではなく一般利用者ユーザーの視点から感染経路と対応方法についての記述になります。 マルウェア感染状況 症状 Dockerコンテナを稼働させたホストのロードアベレージ(CPU負荷)が常時4を超える状況になっていました。つまり400%でホストがフル回転してた訳ですな。 例えるならエヴァンゲリオン初号機が暴走してマヤちゃんがコンソール画面に向かって叫んでいるところです(違) こうなるとクラウドサービスのAWSとかだと英文で警告アラートが飛んで来ますし毎日課金されで膨大な利用料金請求が来ることになります。恐ろしい!! 状況の調査 CPUの利用状況やメモリの使用量などを調査するツール類があり

    Dockerコンテナのpostgresqlがマルウェアに感染した件について - Qiita
    Fluss_kawa
    Fluss_kawa 2022/08/28
    dockerってiptablesを直接いじるのか。まぁそうか。というかpotgresqlとか、mysqlってdocker使うメリットがいまいちわからん。
  • ドキュメントDBかリレーショナルDBどっち使う? - Qiita

    はじめに ドキュメントデータベースかリレーショナルデータベース、どちらを選ぶか。 この選択で、アプリケーションのパフォーマンス、コスト、コードの可読性など幅広い影響が出るため、慎重な判断が必要です。この記事では、自分が思う「考慮すべきポイント」を解説したいと思います。 考慮すべきポイント 1. どのデータモデルがアプリケーションコードに最適か スキーマ制約を課さずに、データレコードをドキュメント(つまりJSONオブジェクト)として保存すべきか?それともスキーマを正規化してデータをいくつかのテーブルに分けるべきか? このような判断をするために、開発しているアプリケーションのモデルの関係性(例: UserとTaskの関係が1:N)と、一度に読み込むデータの種類を見た方がいいです。 ドキュメントDBがおすすめの時 アプリケーションのデータは、以下のような木構造で表現できますか?普段そのデータを一

    ドキュメントDBかリレーショナルDBどっち使う? - Qiita
    Fluss_kawa
    Fluss_kawa 2022/08/10
    ドキュメントDBのキーをRDBに格納してタイムスタンプとか、正規化できそうな項目はカラムを作っておいてそれ以外をドキュメントDBにするかなと思ったけどRDBにJSONカラム作ればいいだけない気がしてきた。
  • オブジェクト指向プログラミングは終わった カプセル化が悪い(感想戦) - Qiita

    が(良くも悪くも)注目頂き、その観測で思ったことのメモです。1年後の自分用です! もっかい言いたいこと再考のポエムです。 概要 関数型には意図的に触れたくなかった 継承や再利用性への懐疑の共通認識 抽象化戦略開発戦略で補う話 タイトルは釣り 抽象化という言葉のふわっと感 カプセル化が問題 関数型言語には意図的に触れたくなかった ポリモーフィズムのくだりで、関数型のご指摘が多かったのですが、あえて直接は触れたくありませんでした。これは、オブジェクト指向 vs 関数型にしたくなかったからです。(結果、Rust/Goに被弾させました) なぜかと言えば、オブジェクト指向を(結果として)衰退させたのは、あくまでも 開発手法の変化 や設計論の精錬が主軸だと認識しています。 不確実性に適応する上で、継承やカプセル化による状態隠匿という戦略が、良い筋に動かず、オブジェクト指向なりに変化を遂げた結果だと考え

    オブジェクト指向プログラミングは終わった カプセル化が悪い(感想戦) - Qiita
    Fluss_kawa
    Fluss_kawa 2022/08/03
    MFCとかそれなりに成功してた気もする。マイクロサービスもカプセル化とかの文脈ではOOP的だし、オブジェクト指向はテクニックというより思想として生かされてると思ってる。
  • 【DNS】サブドメインのないドメインのAレコードは真っ先に書かないといけない - Qiita

    インシデントの話なのでせっかくだから私が体験した1番ゾッとするインシデントの話に参加してみたのですが、正直なところ1番ではないですね。 やっぱ一番はコレですよ。 というわけで先日起こした事故の紹介です。 まあタイトルどおりなのですが。 どういうこと?

    【DNS】サブドメインのないドメインのAレコードは真っ先に書かないといけない - Qiita
    Fluss_kawa
    Fluss_kawa 2022/07/14
    最近、ZONEファイル手書きで書いてないけど、昔は@で書いてたなぁ。システム設定ファイルをいじるのに不勉強すぎるのが原因だと思うけど。でも、こういう技術者増えてる気がする。