タグ

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

  • JavaScript にも "マルチスレッド プログラミングの頻出問題" がある。 - Qiita

    元ネタ: eslint/eslint#10405 このルール提案は「アトミックではない変数の更新を警告したい」というものです。 アトミックではない変数の更新というのは、マルチスレッド プログラミングの最初の方に出てくるアレです。または、RDB のトランザクションの説明で出てくるアレです。 JavaScript のコードはシングルスレッドで動くのに、アトミックではない変数の更新なんてあるの? と思ったらありました。スレッドを自由に作成できる言語と違って、どこでも自由に別処理が割り込んでくるわけではありません。しかし、yieldやawaitによって、式の途中で別処理が割り込んでくることがありえるのです。 See the Pen Threading problem by Toru Nagashima (@mysticatea) on CodePen. 肝はここです。 次のように動作します。 変数

    JavaScript にも "マルチスレッド プログラミングの頻出問題" がある。 - Qiita
  • 個人的にPHPで開発する上で頭に入れておきたいと思っている事 - Qiita

    はじめに 私は、これまでいくつかのPJでPHPの開発をしたり、自分でも勉強がてらアプリを作ったりしてきました。 その中で、同じPJに参画していた方から教えていただいた技術や自分でこれは心得ておきたいと思った事をまとめてみました。 また、最初にこの記事を書いたのは2018年3月ですが、半年後、1年後、さらにその先はガラリと状況が変わっている可能性もあります。 その場合、できるだけ最新の情報に更新し続けたいです。 1. バージョン もし、これから新規でPHPで何かを作り始めるなら間違いなく7系を使った方がいいです。 5系に比べて言語としての処理速度も上がっていますし、新機能も増えています。 昔からある古いプロダクトの保守などで、どうしても5系を使い続けなければいけないPJもあると思いますが、 5系で一番新しい5.6ですら2018年内にセキュリティサポートが切れてしまうので、多少大変でも7系への

    個人的にPHPで開発する上で頭に入れておきたいと思っている事 - Qiita
  • “Web Componentsだけ” で新サービスを実装して見えたこと - Qiita

    Double O というサービスを作りました。 フロントエンドはピュアな Web Components を採用していて、バックエンドは Lambda と DynamoDB のみで構成しました。 (厳密には CloudFront とか API Gateway とかもあるけどそこは省いていいよね?) REST API 以外の Util 系の Lambda 関数はすべて AWS Cloud9 で管理することで環境構築も不要な Lambda ができて楽でした。 TL;DR サーバーレスについてはごく普通のことしかしていないので、詳しくは触れないでおきます。 ピュアな Web Components だけでサービスを成立させることができた。 HTMLElement クラスを継承するだけなのでメジャーライブラリは不要になった。 Web Components の Custom Elements は標準仕様

    “Web Componentsだけ” で新サービスを実装して見えたこと - Qiita
  • 2018年のパスワードハッシュ - Qiita

    数年前であれば仕方なかったところですが、2018年の今となっては、パスワードハッシュの手動計算はもはや"悪"です。 まずログイン認証と称してmd5とかsha1とか書いてあるソースはゴミなので投げ捨てましょう。 hashやcryptは上記に比べればずっとマシですが、使い方によっては簡単に脆弱になりえます。 あと『パスワードを暗号化する』って表現してるところも見なくていいです。 PHPには、ハッシュに関わる諸々の落とし穴を一発で解消してくれるpassword_hashという超絶便利関数があるので、これを使います。 というか、これ以外を使ってはいけません。 以下はフレームワークを使わずに実装する際の例示です。 フレームワークを使っている場合は当然その流儀に従っておきましょう。 ハッシュの実装 データベース ユーザ情報を保存するテーブルを作成します。 パスワードカラムの文字数は、システム上のパスワ

    2018年のパスワードハッシュ - Qiita
  • 今さらProtocol Buffersと、手に馴染む道具の話 - Qiita

    Protocol Buffersは別に新しい技術ではない。同時にそれは、未だ知られざる、未だに可能性を秘めた先端のソフトウェア技術基盤である。 新しくないのは事実で、GoogleがProtocol Buffersをオープンソース化したのは2008年のことだし、オープンソース化前に社内で使われ出したのは更に昔に遡るだろう。たぶん。 デザイン的にもJSON対応は後付けで、将来JSONが隆盛を極めることなんか全然想定していなかったのが透けて見えて古くさい。 しかし、同時にどうも情報に聡い人であってもなかなかその真価を実感し得ておらず、ある意味で未知の技術であるらしい。ならば、Protobuf (Protocol Buffersの略)を解説した文書は幾多あれども、それに1を加えるのもやぶさかではない。 Protocol Buffersとは Protobufはスキーマ言語だ! 一般的にはProtob

    今さらProtocol Buffersと、手に馴染む道具の話 - Qiita
  • イマドキのJavaScriptの書き方2018

    PySpa統合思念体です。これからJavaScriptを覚えるなら、「この書き方はもう覚えなくていい」(よりよい代替がある)というものを集めてみました。 ES6以降の難しさは、旧来の書き方にプラスが増えただけではなく、大量の「旧来の書き方は間違いを誘発しやすいから非推奨」というものを作り出した点にあります。5年前、10年前のやウェブがあまり役に立たちません。なお、書き方が複数あるものは、好き嫌いは当然あると思いますが、あえて過激に1つに絞っているところもあります。なお、これはこれから新規に学ぶ人が、過去のドキュメントやコードを見た時に古い情報を選別するためのまとめです。残念ながら、今時の書き方のみで構成された書籍などが存在しないからです。 たぶん明示的に書いていても読み飛ばす人はいると思いますが、すでに書いている人向けではありません。これから書くコードをこのスタイルにしていくのは別にいい

    イマドキのJavaScriptの書き方2018
  • 極めろ!!Google Chrome Devtools 52の関節技 - Qiita

    転職ナビのフロントエンドを担当しています、@sueshinです。 Livesense - 関 Advent Calendar 2017、22件目をお送りします。 どうぞ宜しくお願いします。 はじめに フロントエンドでよく注目されるJavaScriptではなく、 地味で渋いまるで関節技のような、Google Chrome Devtoolsを使った技術をtipsの形式でまとめました。 免責事項 ショートカットなどは全てMacのキーボード操作にしています。Windowsユーザーは適宜読みかえてください。 Chromeのバージョンは63系に基づいて紹介しています。 52の関節技!! Elements 1.hover時のコンポーネントのCSSルールを表示 使い方 ①DOM要素を選択 ②Stylesペインを開く ③:hovをクリック ④hoverフィルタを適用 2.対応するCSSファイルを開く 使い方

    極めろ!!Google Chrome Devtools 52の関節技 - Qiita
  • Vue.js いろいろまとめ - Qiita

    はじめに Vue.jsも流行ってきて色々ライブラリなども充実してきたと思うので色々まとめようと思います(適当) UI Framework 名称 解説

    Vue.js いろいろまとめ - Qiita
  • クリーンなJavaScriptコードを書くためのガイド - Qiita

    Clean Code PHP / Clean Code JavaScript 以下はClean Code JavaScriptの日語訳です。 clean-code-javascript Introduction Robert C. Martinの著書Clean Codeは、JavaScriptにも当てはまることばかりです。 これはスタイルガイドではありません。 JavaScriptで3R(Readable、Reusable、Refactorable)なコードを推進するためのガイドです。 ここに書いてあることの全てに従わねばならないわけではなく、普遍的に合意されているわけでもありません。 ただのガイドラインであり、それ以上のものではありません。 しかしこれらは、Clean Codeの著者らが長年の集合知の結果をまとめたものです。 ソフトウェアエンジニアリングの歴史は僅か50年程度のものでし

    クリーンなJavaScriptコードを書くためのガイド - Qiita
  • WebAssemblyで実装された仮想DOM asm-dom をさわってみた - Qiita

    asm-domとは asm-domはWebAssemblyで実装された仮想DOMライブラリです。 仮想DOMのdiff、patch部分のアルゴリズムをWebAssemblyに任せたミニマルな実装なので、Reactのような多彩な機能はないようです。WebAssemblyなので、爆速を期待してしまいます。 最初のコミットが2017/2/26なのでまだ一年も経っていないライブラリです。 ライセンスの表記にsnabbdomの名前があるので何か関係があるのかもしれません。 Simon Friis Vindum, 2015 as part of project snabbdom 使い方 C++でも書けるようなのですが、今回はwebらしくjsで使ってみました。

    WebAssemblyで実装された仮想DOM asm-dom をさわってみた - Qiita
  • AssemblyScriptを使ってTypeScriptのコードを早くしよう - Qiita

    TL;DR; AssemblyScriptを使うと、TypeScriptコードをWebAssemblyに変換できます。オブジェクト指向プログラミングをしている場合は、オブジェクトが保存されるメモリ領域を自分で管理しなくてはならないので、その手間とのトレードオフを見極めてください。 なお、使用しているascのバージョンは 0.9.2 です。 C書けない私にWebAssemblyをつくれと言われましても WebAssembly(以下、WASM)とはWebブラウザで動くプログラムのバイナリ表現です。Safari, Edge, Chrome, Firefoxと、モダンなWebブラウザへの搭載も終わり、格的に利用できるようになってきました。その特徴はスピードです。ネイティブに近いスピードで動作します。画像処理やエンコード、暗号といったCPUの処理能力に依存するような処理を行うモジュールをWebAs

    AssemblyScriptを使ってTypeScriptのコードを早くしよう - Qiita
  • 俺的MarkdownにおけるXSS - Qiita

    はじめに Markdown便利ですよね。QiitaやGutHubなど主要なサービスでは主にMarkdownを使って記事の投稿だったり、中~長文を投稿するときにはよく使われていますよね でもユーザーにWebページに投稿するときに気をつけないといけないのはXSS インターンシップなどで学生が作ったサイトとかだと大体6割はXSSできちゃいます。(とか言う自分も学生なんですけどね!) ここでは私個人が経験したXSSについて色々紹介したいと思います。 追記 書いてて思ったけど、Markdownあんまり関係ないです。 いってみよぉ! HTML編 まず最初はこちら!

    俺的MarkdownにおけるXSS - Qiita
  • [Node.js] 無料で簡単にウェブアプリを公開できるサービス「Glitch」を使ってみた! - Qiita

    Glitchとは GlitchはNode.jsのアプリを公開するためのサービスです。 Node.jsでウェブアプリを公開しようとすると、サーバーの設定したりドメインを取得したり…とても複雑です。 Glitchは、あなたの創造性を試すことだけに集中できます。 Glitchは、あの有名なプロジェクト管理ツールのTrelloをつくったFogCreekSoftware社によって開発が進められています! アプリを公開するためだけでなく、オンラインのEditorなどもついていい感じです。 使ってみる これまでAWSやさくらインターネットなどを使っていましたが、Glitchはずば抜けて簡単です。 まずはGlitchにアクセスします。 新しいプロジェクトの作成1 右上の①[Sign in]ボタンからログインします。 FacebookかGitHubが選べますが、後々GitHubからソースコードを取得すること

    [Node.js] 無料で簡単にウェブアプリを公開できるサービス「Glitch」を使ってみた! - Qiita
  • 僕が遭遇したIE11固有の不具合とその対策 - Qiita

    最近大学時代の同期と飲んだらMSに転職したので 現在から過去の案件で産廃IEくたばれと心底思った発生した事象と対策を書いていきます 他にもこんなことあったぜ!って意見ありましたらお待ちしております。 キャッシュ Windows10のIE11で遭遇した事象 ログイン→ログアウト→別アカウントログイン したときの挙動が最初のログインアカウントの状態のレスポンスが返ってくる Authorization: Bearerヘッダーが再ログインしても前のBearerトークンが残り続ける APIレスポンスが前回のものが返ってくる JSのすごい人に助けてもらいました・・・ ClearAuthenticationCacheを無効にする リクエストキャッシュしないようにリクエストパラメータ末尾に日付をつける→jQueryでもこの方法で回避しているらしい これIEのバグですよね? // ClearAuthenti

    僕が遭遇したIE11固有の不具合とその対策 - Qiita
  • フロントエンドチェックリスト(日本語訳) - Qiita

    GitHubで公開されているフロントエンドチェックリストというドキュメントが、網羅されている内容が幅広く便利そうだったので、日語に翻訳しました。 日語版は、以下のGitHubリポジトリにあります。GitHub側と自動的に連携するようにしておりますので、誤訳や誤りなどがあれば GitHub のプルリクエストまたは Issue で報告していただけると幸いです。 https://github.com/miya0001/Front-End-Checklist 日語版への貢献方法 最終更新日時: 2017-11-19 03:50:47+09:00 (未翻訳) Front-End Checklist The Front-End Checklist is an exhaustive list of all elements you need to have / to test before lau

    フロントエンドチェックリスト(日本語訳) - Qiita
  • VueをSSRに乗せると容易にXSSを生み出す場合がある件について - Qiita

    はじめに 最近Vue.jsを頻繁に使用するのですが、他のSSR(サーバーサイドレンダリング)の仕組みと組み合わせる場合、容易にXSSを生み出してしまうケースが存在するので、注意喚起も兼ねて事例を紹介させていただきます。 9月7日 追記を追記しました 前提 サーバーサイドで動的に要素をレンダリングするシステムとVue.jsを組み合わせた場合 この記事はrailsのSSRとの組み合わせで解説しますが、プレーンなPHP等、動的にHTMLをレンダリングシステムとの組み合わせでも発生します。 サンプルコード まず、こちらのコードをご覧ください。 user.erb <div id="app"> <div class="user"> <%= @user.name %> </div> <button v-on:click="registerFavorite" data-user-id="<%= @user

    VueをSSRに乗せると容易にXSSを生み出す場合がある件について - Qiita
  • macOSでディスプレイ1枚で作業する技術 - Qiita

    今まで、自宅・職場では外部ディスプレイを使って作業をしてましたが最近はRoostを使い始めて、家でも外でもRoostと外部キーボード、マウスで仕事するようになりました。これで肩の痛みが激減したので下を向いて作業する時間が多いと首の筋肉に引っ張られて肩が凝るみたいですね。 ここできになるのはディスプレイ1枚だと画面切り替え大変じゃないのってところなのですが、以前 @reoring さんに教えてもらって自分にすごいフィットしたので共有しておきます。あまりmacデスクトップについての記事がないような。 [追記2020/11/16] macOS 11.0 Big Sur(Intel) で動作確認できました。Total Spaces2をBig Surより前から使っている場合は最新版(v2.9.6~)を再インストールする必要があります。 TL;DR デスクトップを10画面作成する ショートカットキー

    macOSでディスプレイ1枚で作業する技術 - Qiita
  • ヘッドレスブラウザ(Chrome)を使ってSPAをスクレイピングする - Qiita

    一般的なスクレイピング手法とその問題点 スクレイピングというと、HTTPクライアントライブラリを用いてHTML取得し、HTML/XMLパーサーで解析するというのが一般的だと思います。 この手法の場合、以下の場合にうまく処理できません。 ターゲットのページがJavaScriptにより動的にDOMを操作する場合 HTML/XMLパーサーが取得したHTMLを正しく解釈できない場合(正しくないHTMLでもブラウザはなんとか処理するが、パーサーライブラリは正確なHTMLでないと処理できないことがある) 特に問題になるのは前者でしょう。最近のWebサイトではJavaScriptでDOMを操作することは珍しくなくなってきています。SPAであればなおさら難しく、もはやこういった手法によるスクレイピングは不可能でしょう。 ヘッドレスブラウザによるスクレイピング 動的なDOMやパーサーがうまく解釈できないとい

    ヘッドレスブラウザ(Chrome)を使ってSPAをスクレイピングする - Qiita
  • 機械学習の情報を手法を中心にざっくり整理 - Qiita

    概要 自分用のメモとして、機械学習に関する情報を浅く ( それなりに ) 広くをモットーに、ざっくり整理してみました。 少しでも、他の方の理解に役立ったら嬉しいです。 機械学習とは コンピュータプログラムが経験によって自動的に出力結果を改善していく仕組み。 機械学習の代表的な手法について記載します。 1.教師あり学習 2.教師なし学習 3.強化学習 に分けて記載しました。 ※概要説明は一例です。 1.教師あり学習 1-1.線形回帰 予測したい値を算出する式を連続する多項式として表し、各係数を最小二乗法や最尤推定法で求めることでモデルとなる式を決定する Pythonライブラリ:scikit-learn(sklearn.linear_model.LinearRegression) 参考:最小二乗法による線形回帰のアルゴリズム (自身のQiitaの過去記事です) 1-2.ロジスティック回帰 2択

    機械学習の情報を手法を中心にざっくり整理 - Qiita
  • OAuth 2.0 全フローの図解と動画 - Qiita

    RFC 6749 (The OAuth 2.0 Authorization Framework) で定義されている 4 つの認可フロー、および、リフレッシュトークンを用いてアクセストークンの再発行を受けるフローの図解及び動画です。動画は YouTube へのリンクとなっています。 English version: Diagrams And Movies Of All The OAuth 2.0 Flows 追記 (2019-07-02) 認可決定エンドポイントからクライアントに認可コードやアクセストークンを渡す方法については、別記事『OAuth 2.0 の認可レスポンスとリダイレクトに関する説明』で解説していますので、ご参照ください。 追記(2020-03-20) この記事の内容を含む、筆者人による『OAuth & OIDC 入門編』解説動画を公開しました! 1. 認可コードフロー RF

    OAuth 2.0 全フローの図解と動画 - Qiita