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

  • 更新されたJS、CSS、画像のみブラウザキャッシュを破棄して読み込ませる - Qiita

    WEBサービスの保守や開発をやっていると、JavaScriptやスタイルシート、画像などの静的リソースを更新した際、しばしば「確認したけど、更新されてないよ」とか云われて、「ブラウザのキャッシュを消してからもう一度見てみてください」みたいなやり取りが発生することがある。これが、サービス内部のメンバー間のやり取りであれば(非効率ではあるものの)まだ許せるが、サービスを提供している顧客側に更新内容が反映されない事態が発生してしまうと、それは障害と同義だ。 そんなわけで、WEBページにおける静的リソースの読み込みには開発時に注意を払う必要がある。確実な対処方法としては、静的リソースの読み込み時にリソースパスに動的パラメータを付与して、ブラウザにキャッシュされないようにすることだ。 下記のように、フロントエンドだけで対応することもできる。 <link href="/css/style.css?20

    更新されたJS、CSS、画像のみブラウザキャッシュを破棄して読み込ませる - Qiita
    hapilaki
    hapilaki 2020/01/20
    “PHPなら filemtime() を使おう”
  • コマンドプロンプトでDドライブに移動する - Qiita

    移動できない… なぜ…と思って調べたら、Dドライブに移動するときはちょっと違うみたいでした。 ↓↓↓

    コマンドプロンプトでDドライブに移動する - Qiita
  • FC2ブログの爆速テンプレートを解析してみた - Qiita

    2019年2月 爆速テンプレートが公開された 先日、FC2ブログにおいて「爆速テンプレート」というものがリリースされました。 これはその名の通りタフなニューメキシコの荒野でもブログが爆速で見れるテンプレートで、爆速である代わりにカスタマイズの自由度は通常のテンプレートよりもかなり低い、というもの。 その爆速具合を実際に体感できるようにサンプル用の爆速テンプレートブログが公開されていますので、具体的にどういうものか知りたい方は下記のリンク先で体感してください。 爆速テンプレート サンプルブログ この記事はその爆速さに興味をもってその中身を解析してみた結果をここにまとめておいたものです。 ただし飽くまで外部の人間が簡単に解析してみた結果であるため間違いや事実誤認が予想されます、気が付いた方はコメントにてご指摘ください。 なお ServiceWorker や CacheAPI に関する説明はここ

    FC2ブログの爆速テンプレートを解析してみた - Qiita
  • プログラミング初学者向け勉強会がマルチ商法の狩り場になっている件 - Qiita

    「初学者向けの勉強会でマルチ商法の勧誘をされた」という体験談を耳にするケースがここ最近非常に増えましたが、どうやら「勉強会の参加者の方から」勧誘されるケースだけでなく、「勉強会そのものがマルチ商法の勧誘を目的として開催されているのでは?」という疑念を持たざるを得ないケースもあるようです。 先日、私のTwitterフォロワーの方から「ENGINEER STYLE TOKYOという勉強会の主催者と運営サイドの人たちはアムウェイの勧誘をしています」というご連絡がありまして、私の方で主催者の方および主催者の方の運営されている団体様に関して調べてみたところ、何らかの形でアムウェイと関わっていると疑わざる得ない情報をいくつか発見いたしました。 私が主催している「雑エンジニアサロン」内でも質問してみたところ、「勉強会主催者の方にカフェに誘われたので行きました。徐々にプログラミングとは無関係の話題にな

    プログラミング初学者向け勉強会がマルチ商法の狩り場になっている件 - Qiita
    hapilaki
    hapilaki 2019/04/28
    プロフィールに「メガザル作戦展開中!」と書いておけば勧誘されないぞ。 https://hapilaki.net/wiki/no-more-multi-level-marketing
  • 一番分かりやすい OAuth の説明 - Qiita

    はじめに 過去三年間、技術者ではない方々に OAuth(オーオース)の説明を繰り返してきました※1,※2。その結果、OAuth をかなり分かりやすく説明することができるようになりました。この記事では、その説明手順をご紹介します。 ※1:Authlete 社の創業者として資金調達のため投資家巡りをしていました(TechCrunch Japan:『APIエコノミー立ち上がりのカギ、OAuth技術のAUTHLETEが500 Startups Japanらから1.4億円を調達』)。Authlete アカウント登録はこちら! ※2:そして2回目の資金調達!→『AUTHLETE 凸版・NTTドコモベンチャーズ・MTIからプレシリーズA資金調達』(2018 年 2 月 15 日発表) 説明手順 (1)ユーザーのデータがあります。 (2)ユーザーのデータを管理するサーバーがあります。これを『リソースサーバ

    一番分かりやすい OAuth の説明 - Qiita
    hapilaki
    hapilaki 2019/04/25
    “過去三年間、技術者ではない方々に OAuth(オーオース)の説明を繰り返してきました”
  • 1ディレクトリに大量のファイルを入れたときのパフォーマンスのお話:メモ - Qiita

    動画をブラウザからアップロードするシステムを作ろうと思ったとき、ある疑問が浮かびました。 1フォルダにいくつまでファイルを入れられるのだろう? いくつ以上のファイルをぶっこむと、パフォーマンスが落ちるのだろう? それに対する回答を見つけました 参考サイトはここです。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1424766974 http://q.hatena.ne.jp/1157692616 答えとしては、 今のコンピュータでは1ディレクトリに入れられるファイル数の上限はないが、 1000 ~ 1500 ファイル以上を入れるとパフォーマンスが悪くなる とのことでした。 どのくらい悪くなるのは、あんまりわかりません。 とりあえず、それ以下になるように分散させて管理するのがよさそうです。 以上、簡単なメモでした。

    1ディレクトリに大量のファイルを入れたときのパフォーマンスのお話:メモ - Qiita
    hapilaki
    hapilaki 2019/04/10
    “今のコンピュータでは1ディレクトリに入れられるファイル数の上限はないが、 1000 ~ 1500 ファイル以上を入れるとパフォーマンスが悪くなる”
  • HTML文字列をElementに変換する - Qiita

    document.createElementで適当なElementを作成し、innerHTMLHTMLの文字列を設定する。 差し込んだHTMLがfirstElementChildでElementとして取得できる。 /** * HTML文字列をElementへ変換する。 * @param html HTML文字列 * @returns {Element} */ function createElementFromHTML(html) { const tempEl = document.createElement('div'); tempEl.innerHTML = html; return tempEl.firstElementChild; } // 呼び出し例 createElementFromHTML('<div style="width: 300px;"></div>');

    HTML文字列をElementに変換する - Qiita
    hapilaki
    hapilaki 2019/02/22
    “function createElementFromHTML(html) { const tempEl = document.createElement('div'); tempEl.innerHTML = html; return tempEl.firstElementChild; } // 呼び出し例 createElementFromHTML('<div style="width: 300px;"></div>');”
  • コードに頻出する語形変化が難しい英単語: register, success, fail, data, statusなど - Qiita

    コードに頻出する語形変化が難しい英単語: register, success, fail, data, statusなど英語 コードによく使われる英単語だが、母語話者でないと語形変化がやや難しいかもしれず、注意して単語を選ばないと変な英語になるかもしれない単語について紹介する。 登録 登録する register 【動詞】 「商品を登録する」 registerItem() 登録した registered 【形容詞】 【動詞過去分詞】 登録された商品 registeredItems 「商品が登録された」 new ItemRegstered() 「登録済みか?」 if (item.isRegistered()) ... 登録 registering 【名詞】 「商品登録状況は承認済みか」 item.registeringState.isApproved 登録 registration 【名詞】

    コードに頻出する語形変化が難しい英単語: register, success, fail, data, statusなど - Qiita
  • 月数100万アクセスをDB使わず超簡単にさばく - Qiita

    初Qiitaな個人開発者のひさしAppと申します @Hisashi_vc 最近「じぶんコイン」というコイン系SNSサービスを作り、月間100万~数百万アクセスを激安サーバー(1000円ちょい)でさばき中です。 じぶんコイン https://crypto-app.tokyo/qCoin/?m=hisashi_vc おまけになかなかの高負荷で、3ヶ月で数百万回送金したり、10連ガチャ回しまくったり、全ユーザーページにチャットあったり、数百人に一斉メッセージ&送金したり、さらに内部API叩きまくってたりと、かなりのヤバさですが、ブロックチェーンどころかデータベース一切使ってません。 そんなツイートしたら予想よりビックリしてもらえたので、種明かししようと思います。ちなみに私はサーバーサイドエンジニアでも何でもないので、Hellow world覚えて3日目の中学生でもできるくら超簡単ですw この2つ

    月数100万アクセスをDB使わず超簡単にさばく - Qiita
  • Webパフォーマンス虎の巻

    Webパフォーマンス向上施策のために、今更ながら超速1を読んだので、今までの自分の知見と合わせてまとめてみます。 なるべく柔らかく、改善施策ってまず何をどうすればいいの?という疑問を持った人に向けて書いています。 ▪️格言 そもそもWebは速い。遅くしているのは我々です。大抵は技術の問題ではなくて、人の問題。 引用元: テクニックではなく、今、気で取り組むべきWebパフォーマンス (html5jパフォーマンス部 部長 竹洞さん) 心得 パフォーマンス向上に対する施策は大別すると以下の2通り 軽量化 (単純にやりとりするデータ容量を小さくすること) 圧縮 削除 最適化 (その時に最も適している実装・実行をとること) 経路・順番の変更 非同期 もっとも遅くしている原因を探して、それを対策するのが原則。「対効果」が絶対的正義である。手段から入るのは愚策。まず先に原因を知ることが重要。 ▪️1

    Webパフォーマンス虎の巻
  • レジストリを汚さないためのツールを作りました

    どういうツール 簡易的な仮想環境を作り、アプリケーションの動作を現在の環境から切り離すサンドボックスツールです。 レジストリとCドライブへのアクセスを仮想化することによって、 アプリケーションからシステム環境に影響を与えない様にする アプリケーションを単独で持ち運び可能にする などなどが可能になります。このツール自体はもちろんレジストリを汚しません。 どうやって DLLインジェクションからのIAT書き換えによるWin32 APIのフックにより動作を書き換えています。 IATを経由しない動的呼び出しもLoadLibraryやGetProcAddressを書き換えることで対処しています。 あくまで公開API(※)に渡す値を書き換えているだけで、質的にディスクアクセスに干渉しているわけではない、 例えばWindows APIが内部で呼び出す様なより低レベルな処理を直接呼ばれた場合などは対処出来

    レジストリを汚さないためのツールを作りました
  • JavaScript初心者にclassを伝える - Qiita

    初めに この記事ではJavascriptのclassについてザックリですが解説します。 多くの初心者にとってclassは「何だこれ???」と躓くポイントだと思います。 (実際、自分も最初眺めた時は意味が分からず頭が学級崩壊してました。) なので、記事ではサンプルコードと共に、 「何だこれ???」を「なるほど!!!」に 変えていけるように解説します。 序章 - 基構文 まずはclassの基構文を載せます。 使い方は後々に解説しますので、 とりあえず構文を眺めて美味しいご飯でも考えてください。 意味は深く考えないでいいと思います。 はいど~ん! classの基構文はこんな感じ!これだけ。 大丈夫です、内容も全く難しくないです。 解説すると、 ・NAMEは任意の名前(変数や関数の定義と一緒) ・constructorは必須な関数(classが呼び出された時に最初に実行される関数) ・a,

    JavaScript初心者にclassを伝える - Qiita
  • 実際のところ「ブラウザを立ち上げてページが表示されるまで」には何が起きるのか - Qiita

    9月15日(土) DNSについて追記しました。バックエンド?今はクラウドがきっと上手くやってくれるので深く考える必要は無いんですよ(知らないので書けません😔) 問題のツイート 面接の質問で「ブラウザを立ち上げてページが表示されるまでの仕組みを全て知ってる限り説明してください」ってのをやると結構Web系の知識どれだけあるか分かると思ってる — 🍛🍺 (@tan_go238) September 10, 2018 解釈 今回は「ChromeのURL欄に入力してからページが表示されるまで」をやります。ブラウザの起動云々はWeb系の話じゃないと信じてます。 1. HTTPリクエストが飛ぶ HTTP2のヘッダ圧縮技術に全て書いてありました。 (追記)下のリクエストヘッダはテキストで書かれていますが、実際にはこれをバイナリにしたものが飛んでいるとのことです。segfoさんありがとうございます!

    実際のところ「ブラウザを立ち上げてページが表示されるまで」には何が起きるのか - Qiita
  • Chrome拡張の高速な英語辞書ツールをつくりました(Mouse Dictionary) - Qiita

    経緯 もともとMouseoverDictionaryという素晴らしいFirefox用辞書があったのですが、Quantumの登場とXULの廃止とともに使えなくなってしまったため、自分用にChrome拡張をつくった次第です。 ソースコード 実装に関わる技術寄りの用語: React, esbuild, chrome.storage.local, chrome.storage.sync, Cross-extension messaging, Hogan, debounce, resizable/draggable, intl.v8BreakIterator, deinja, クロスブラウザ, など。 ※詳細は「Mouse Dictionaryの技術的な話」をご参照ください https://qiita.com/wtetsu/items/2a5568cb0b5a38c003fb 使い方 インストール

    Chrome拡張の高速な英語辞書ツールをつくりました(Mouse Dictionary) - Qiita
  • Webサーバをセキュアに保つ設定のまとめ - Qiita

    はじめに Webサーバをセキュアに保つ為、個人的に行っている設定をざっくりまとめてみました。 設定内容はApache 2.4での運用を想定していますので、他のHTTPdをお使いの方は適宜読み替えてください。 各設定項目は以下のオンラインテストサイトでA+相当を取ることを目指しています。 設定ファイル生成 Mozilla SSL Configuration Generator オンラインテスト Mozilla Observatory Qualys SSL Server Test 前提条件 以下で設定する項目は特にHTTPS接続や攻撃防止に関するものになります。 HTTPdそのものに関する基設定については別記事をご参照ください。 SSLProtocol 危殆化した古いプロトコルを有効にしている場合、古いプロトコルを標的としたダウングレード攻撃等を受ける可能性がある為、新しいプロトコルのみを有

    Webサーバをセキュアに保つ設定のまとめ - Qiita
  • プログラマが知っているとよい色(1)使い(JIS安全色) - Qiita

    <この項は書きかけです。順次追記します。> This section is about to be written. I will add it little by little. 目次の前に(forward) この記事は、インターンシップの大学生の方に、「ゲームはするよりもゲームプログラムを書く方が楽しい」ということを説明した際に、その説明の一部として書いたものです。ゲームを卒業研究の題材にするなら、ゲームの中での色使いで、人による見え方の違いに配慮した改訂のあったJIS安全色(国際整合:ISO 3864-4:2011(Graphical symbols−Safety colours and safety signs−Part 4: Colorimetric and photometric properties of safety sign materials))を参考にするとよいよとい

    プログラマが知っているとよい色(1)使い(JIS安全色) - Qiita
  • 「世界最悪のログイン処理コード」を解説してみた

    概要 ところでこのツイートを見てほしい。このソースコードをどう思う? 世界最悪のログイン処理コード。 実際のサービスで可動していたものだとか……https://t.co/C2bG93ZCkj pic.twitter.com/EfVNAEslrn — はっしー@海外プログラマ🇳🇿元社畜 (@hassy_nz) 2018年8月10日 すごく……セキュリティーホールです…… 一応は動いていますが、あまりに問題がありすぎるため、Twitterでも話題になっていました。 問題点は片手に入り切らないぐらいある気がしますが、一つづつ解説していきます。 ※元記事のタイトルに記載されていますが、このコードはイントラネット内で動作していたものです。 問題点リスト 1. クライアント上のJavaScriptで書かれている 他の問題点を全部ぶっ飛ばすぐらいの重大な不具合です。 クライアントと言うのはこの場合、

    「世界最悪のログイン処理コード」を解説してみた
  • シンプルなPWAサンプルここに置いておきますね - Qiita

    PWAってすごそう! PWA (Progressive Web Apps) とかいうやつに対応したら JavaScript でスマホアプリみたいなの作れるんだってヤッター! と喜んでいたら・・。 はじめてのプログレッシブ ウェブアプリ - Google Developers PWAってむずかしそう! なんか適当にPWA用のJSONファイルとかをサクっと置いとけばよしなに対応してくれるんでしょ って思ってちょちょーいとサンプルコードをググってたら、みなさん丁寧にしっかり解説しすぎてて、とりあえず動かそうとしてた私にはなんだかムズカシイと感じました。 必要最低限でうごくシンプルなやつちょーだい! ということで、細かい説明とか外部サービスとか npm とか余計な技術に触れずに、とにかく何にも依存しないクリーンなHTML/JS/CSSで短いPWAサンプルコードがあったら理解が早いし便利かなーって思

    シンプルなPWAサンプルここに置いておきますね - Qiita
  • 【備忘録】idやclassの先頭文字に数字は使えないけど、使いたいときにやること(使いたい時は、数字をエスケープする) - Qiita

    【備忘録】idやclassの先頭文字に数字は使えないけど、使いたいときにやること(使いたい時は、数字をエスケープする)HTMLCSSJavaScriptエスケープ たまーにid名やclass名の先頭に数字を入れたいことが有るのですが、 CSSやjs側に数字をそのまま記載すると反映されません。 一応、どんな事になるか&どうやって対応するか そして、それをCodePenで実際に書いてみた結果も含めてメモを残します。 【問題】id名やclass名の先頭に数字を記載すると、反映されない id名やclass名の先頭に数字を記載すると、記載したstyleは反映されません。 なので、数字そのものをid名やclass名として記載すると、記載したstyleはやっぱり反映されません。 という図を書いてみたのが下記になります。 (CSSやJSをポチポチして、反映されていないことをご確認下さい) See the

    【備忘録】idやclassの先頭文字に数字は使えないけど、使いたいときにやること(使いたい時は、数字をエスケープする) - Qiita
    hapilaki
    hapilaki 2018/06/27
    “CSSにてid名やclass名の先頭に書く場合は、数字の前に\3を記載します。 jsにてid名やclass名の先頭に書く場合は、数字の前に\\3を記載します。 先頭以外の数字や文字列は、先頭の数字の後ろに半角スペース入れ、その後ろに
  • 治安の悪い Slack Emoji を作るツールを作った - Qiita

    (治安の悪くない Emoji も作れます) 作ったもの ここで遊べます おもしろいところ GIF アニメのエンコードまですべて js で完結しているので、ありがちな「謎のサーバーに画像アップロードするといい感じに変換してくれる」的なサービスと違って、素性の知れたコードがクライアント側でサクサク動きます。 なにができるの? 画像を 128px x 128px に変形 画像を、 Slack にアップロードできる(現状)最大サイズの 128px x 128px に変形します。 ローカルのファイルから選ぶか、画像の URL を入力できます。アップロードするわけではないので、デカい画像でもサクサクなのがお気に入りです。 変形は 正方形に引き伸ばし(アス比無視) 正方形いっぱいに拡大して、余ったところはトリミング(アス比維持) 正方形に収まるように縮める(アス比維持) から選べます。 テキストから画像

    治安の悪い Slack Emoji を作るツールを作った - Qiita