タグ

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

  • JavaScriptでデッドロックを作ってみた

    いきなりですが、皆さんは排他制御をご存知でしょうか。排他制御は並列コンピューティングにおける概念であり、複数のプロセスが資源を共有して使用する際に、複数のプロセスが同時に資源を使用している状況(競合)が発生しないように制御する手法です。(この分野にはあまり詳しくないのでまさかり等は歓迎します)。 排他制御の一手法としてロックが知られています。この手法では、ある資源を使用するためにはまずその資源のロックを取得する必要があります。そして、資源を使い終わったらロックを解放します。あるプロセスがロックを取得している間は、別のプロセスは同じロックを取得することができません。よって、ロックを取得できたときのみ資源を使用するようにプログラムを書くことによって、資源に対する競合を防ぐことができます。 典型的には、使用したい資源が他のプロセスに使用されている場合、その資源のロックが解放されるまで待つことにな

    JavaScriptでデッドロックを作ってみた
  • 「ゴミ記事が多すぎる問題」に対する私見 - Qiita

    結論 「ゴミ記事」の判定とフィルタリングはGoogle1とそのユーザーの責務なので、気にせずに書き続けましょう。 以下、蛇足 定義 いくつかの記事についたコメントを見たところ、「ゴミ記事」の定義は以下に集約できそうです。 レベルが低い(入門者向け) 自分用のメモ(体系立っていない) わかりにくい(文章が下手) 情報が古い 内容が間違っている なお、複数人の意見を集約しただけであり、上の記事がすべて「ゴミ記事」である、という意味ではありません。(たとえば自分用のメモであっても多くの人の役に立つことがあります) 背景 そもそもなぜ記事を書くのかについて考えてみます。 ほかの人の役に立つため 勤務先の業務のため もしくは勤務先での評価を上げるため PVを稼ぐため 自分用の備忘録として残しておくため 原因 定義と背景に挙げた前提のもとで「ゴミ記事」が増えてしまう原因は以下が考えられます。 入門者向

    「ゴミ記事が多すぎる問題」に対する私見 - Qiita
  • 2018年Vue.jsとVuexを使ってる人には必ず知っていてほしいドキュメントに書かれていないコンポーネントやストア、メンテナンスの際に役立つTips - Qiita

    2018年Vue.jsとVuexを使ってる人には必ず知っていてほしいドキュメントに書かれていないコンポーネントやストア、メンテナンスの際に役立つTipsTypeScriptes6DesignPatternsVue.jsVuex はじめに 私はVue.js with Vuexを使った業務で1画面30APIを叩く必要のある画面から、たったの数APIしか叩かないけれど、代わりにUIがとても機能的で複雑な画面まで設計し、構築しました。 現在は構築したシステムを保守・運用しており、その際に得られたノウハウを言語化し、共有出来たらと思います。 ※ 記事の内容に意見がありましたら直接編集リクエストをください。 ※ パフォーマンスの話はしません。 ゴール 役立つTipsを身につけコード品質を向上させる コンポーネントのバグを減らせるTips ほとんどのバグは変数から来ます。 もし全ての値が定数なら状態から

    2018年Vue.jsとVuexを使ってる人には必ず知っていてほしいドキュメントに書かれていないコンポーネントやストア、メンテナンスの際に役立つTips - Qiita
  • ほぼCSSだけで、LPでよくある上下左右からフェードインするやつを実装する - Qiita

    背景 LP実装のフロントエンドを担当 Ruby on RailsのView内にてフロントエンド組み込み前提 デザインカンプにアニーメーション、インタラクションの仕様は無かったが、昨今全く動かないLPの方が少ないのではと思った デザイナーにインタラクション考えてもらうのも確認フロー大変だし、Railsにプラグイン組み込む検証リスクなど諸々あり、1回あきらめた 諦めてからが試合開始 変更に強いCSSアニメーション主軸にスクロールインタラクション作れればと思った ゴニョゴニョしたら意外と出来た 実装内容 CSSアニメーション実装 .anm_modデフォルト = 下から元来の位置に戻りつつフェードイン。速度ノーマル &.left, &.right 左右から元来の位置に戻りつつフェードイン &.delay, &.fast フェードイン速度遅め、早め 上記2点の設定で、フェードイン方向(3方向)とスピ

    ほぼCSSだけで、LPでよくある上下左右からフェードインするやつを実装する - Qiita
  • RFC標準を調べるための知識やツール - Qiita

    はじめに 記事では、RFC (Request for Comments) で提案・標準化された仕様を探して読むための基礎知識や、Web上で利用できるツール等について記します。 想定読者は、Web技術に関わるエンジニアで、RFCを参照して標準仕様を調べる機会がある人です。 ここに書かないこと RFCとは何か Internet-Draft (I-D) 段階の議論の追い方 I-Dから標準化のプロセスに乗るまでの細かい流れ 基礎知識 RFCの種類 すべてのRFCが仕様として標準化されるというわけではありません。 RFCは次のように、いくつかのCategoryに分類されます。 Category 説明

    RFC標準を調べるための知識やツール - Qiita
  • 月5ドルで動かしているWordPressでTV東京のWBS砲をさばく - Qiita

    リフカムではRefcomeというサービスを運営しています。このサービスのホームページはWordPressで作られており、WordPressAmazon Lightsailで構築しています。さらには、インスタンスのタイプも一番安い$5/monthなので大量のアクセスをさばくことは絶望的です。そこらへんは負荷が問題になってから考えればいいよねーと言って何も考えずに作ったのですが、TV取材が入って「放映されるから大至急高速化して」と言われて大慌てです。 実際に放送された内容 実際に放送された内容は以下になります。 http://www.tv-tokyo.co.jp/plus/business/entry/2018/017321.html 大体放映されたのが10分くらいで、撮影が1〜2時間くらいかかっているので編集の力を思い知ります。 Amazon Lightsailの性能を確かめる さて、前述

    月5ドルで動かしているWordPressでTV東京のWBS砲をさばく - Qiita
  • スピード感重視なのでテストは書かない。テストはなぜ開発を遅くするか - Qiita

    あまりにバズってしまったので、前書きを追加 ここまでバズってしまって正直すまんかった。 この記事はもともと愚痴記事をマイルドにして投稿しただけなので「テストを勧める」とか「テストを信奉する」とかそこまで強い意図は特にありません。(私がテスト好きなのは否定しません) 「テスト書こう」に対して「そんなコストはない」と言いながら、いろいろ問題が生じる現状を愚痴りたかっただけです。愚痴るだけだと生産性がないから、なんでこんなに認識が違うんだろうと原因を考えた結果、テストを書くことに対する技術で実際にコストが大きく異なるなと気づいて書いた次第です。 この記事の対象は「テストを書く技術がなく、テストを書く気がない」組織に所属する人です。 アジャイル開発において「テストコードは当然」なのか?という記事で(私の記事をきっかけとして)テストコードの「徹底」とか「カバレッジ100%」とかを批判し、トレードオフ

    スピード感重視なのでテストは書かない。テストはなぜ開発を遅くするか - Qiita
  • GAS のGoogle製CLIツール clasp - Qiita

    Google Apps Scriptというと以前はWebのエディター上でしかコードを書けなかった。 手に馴染んだエディタが使えないし、バージョン管理はしにくかった。 Googleからclaspが登場し開発環境は大幅に改善された。 利用バージョン: clasp v1.1.5 インストール npm コマンドでインストールできる。 npm i clasp でインストールすると以前は別モノがインストールされたが、今は An alias for @google/claspと書かれており単にclasp のみでも良さそう。 ログイン Webエディタ側から取るにも、Webエディタ側にアップするにもユーザ認証が必要ということで、まずはログインする必要がある。 ログインする前には Google Apps Script API を有効にしておく必要もある。 https://script.google.com/h

    GAS のGoogle製CLIツール clasp - Qiita
  • 「Vue.js + Go言語 + PAY.JP 」でクレジットカード決済できるWEBアプリケーション実装ハンズオン - Qiita

    そろそろカード決済の実装経験しとくかと思い、PAY.JPを眺めたらかなりドキュメントが充実してたので使いやすかった。今後、カード決済するサービスを作るのを見越して決済サービスをgRPCでマイクロサービス化してみた。そのまま Vue.js と Go言語を使い、カード決済できるWEBサービスのサンプルを試しに作ってみた。その実装を簡略化してハンズオン形式で紹介します。 全コードは GitHub にあげてます。 (こちらの画像は僕がVue.js+Goで作ったサービスで運用されています。https://ghlinkcard.com/) 得られるもの Vue.js + Go言語で簡易的なSPAをつくる経験 gRPC で簡単なマイクロサービスをつくる経験 PAY.JP を使ったカード決済の流れの理解 今回使う技術スタック フロントエンドVue.js。サーバーサイドは Go言語で実装します。それ以外

    「Vue.js + Go言語 + PAY.JP 」でクレジットカード決済できるWEBアプリケーション実装ハンズオン - Qiita
  • 寄り目を利用した「目diff」および「立体インデント」の考案 - Qiita

    疲れてくると寄り目になっちゃう現象ありますよね。 これを有効活用する方法を思いついたので書き留めようと思います。 先日 react native でアプリを作ってたんですが、なんかの操作の前後で挙動が想定と違いました。 よく分かんなかったので、とりあえずデータの中身を表示させて、 ふとした拍子で再現しなくなると困るので念のためスクショを撮りました。 (左: バグる前 / 右: バグった後。データは今てきとーにでっち上げたものです。) 見ても分かんない、えーと、どうすんだっけ… Remote Debug 有効にして Chrome の…テキストを diff で…あぁ、目が寄るぅ…… あぁなんだ categoryId が変わっちゃってるじゃん、と一目瞭然ですね。 インデントと行数が揃ってるっていう前提の上ですが、寄り目を使うと diff 部分が マトリックスでラグってるとき風に(網膜上に)表示さ

    寄り目を利用した「目diff」および「立体インデント」の考案 - Qiita
  • CSSのみで幅可変のヘッダ固定テーブルを実装 - Qiita

    テーブルのヘッダを固定して中身をスクロールさせたいって事、めちゃくちゃあると思います。 当然既にいろんな対策が練られています。 方法としては、大きく分けてCSSのみで実装する方法と、JQueryでプラグインなどを用いて実装する方法があります。 (参考:http://webnonotes.com/css/table-header/) しかし、CSSだけで実装する方法では、幅を固定しなければいけないというデメリットがあります。 でも… CSSだけで幅可変のヘッダ固定テーブル、作りたくない? と思ったのでやってみました。 解決法 結論から言うと、calc()とpaddingを利用します。 まずはテーブルを用意。 <table class="table-header-fixed"> <thead> <tr> <th>#</th><th>ヘッダ2</th><th>ヘッダ3</th> </tr> </

    CSSのみで幅可変のヘッダ固定テーブルを実装 - Qiita
  • [Python] Djangoチュートリアル - 汎用業務Webアプリを最速で作る - Qiita

    この記事を元に最小の学習コストでWebアプリを作成する方法を記事にしてみました。 こちらもよろしくお願いします。 [Python] プログラム初心者のためのWebアプリ簡単作成法 この記事について PythonのWebアプリケーションフレームワーク「Django」についてのチュートリアル記事です。 Djangoには定義したデータモデルを元に一覧画面や入力画面を動的に出力する「クラスベース汎用ビュー(class-based generic views)」という仕組みがあります。 これを活用すると単純なCRUD操作(登録・参照・更新・削除)を行うWebアプリを短時間で作成することができます。さらにDjangoのユーザー管理機能を加えてHeroku等のプラットフォームにデプロイすればインターネット上で運用できます。 Djangoのチュートリアルは良質のものがネットで読めますが、クラスベース汎用ビ

    [Python] Djangoチュートリアル - 汎用業務Webアプリを最速で作る - Qiita
  • 2018年の最先端バックエンドエンジニアに必要なスキルについて考えてみました。 - Qiita

    @rana_kualuさんの2018年の最先端バックエンドエンジニアになろうという翻訳記事がとても興味深かったのですが、記事内で提示されているロードマップに関して微妙に違和感を感じる部分もありましたので、 記事に記載されているスキルは現場でどの程度必要なのか 記事に記載されていないが現場において重要なスキルは何か といった辺りを、自分なりの意見を交えてちょっと書き出してみました。 自分をエンジニアとして最先端だとは全く思っていないのですが、最近のバックエンドのトレンドに一応多少なりともきちんとキャッチアップしてるかなとは思うので、若い方や、まだ経験の短いエンジニアの方たちのご参考になりましたら幸いです。 言語 ロードマップに記載されていた言語のうち、私は一応 Elixir Scala Java .NET (C#とVB.NET) Python Ruby PHP TypeScript Gola

    2018年の最先端バックエンドエンジニアに必要なスキルについて考えてみました。 - Qiita
  • リアルタイムグラフなら「とりあえずEpoch.js」をおススメしたい - Qiita

    この記事について IoTっぽいことをやりたくて表示画面の方から作ってみました。 リアルタイム表示が可能なJavascriptのグラフ表示ライブラリを色々物色した結果、Epoch.jsが一番使いやすいという結論になりました。サンプルコードを書きつつEpoch.jsの使い方等についてまとめてみました。 サンプルコード See the Pen GQpbRR by okoppe8 (@okoppe8) on CodePen. スライダーの部分はIoT機器のPostのシミュレータです。 Epoch.js とは 公式:https://epochjs.github.io/epoch/ Epoch.jsは様々なグラフを生成するJavascriptライブラリです。同様の目的のメジャーなライブラリにChart.js、highchart.js、Google Chart Tools などがあります。 Epoch.

    リアルタイムグラフなら「とりあえずEpoch.js」をおススメしたい - Qiita
  • 開設後3週間で収益10万円を得た個人開発サイトでやったことの全部を公開する - Qiita

    開設して3週間ほどで収益10万円を個人開発サイトから得たので、そこでやったことを全部ここに公開する。 世の中には**億ドルのバリュエーションを獲得したスゲー起業家の話か、個人開発サイトを立ち上げたものの収益なんてゼロに近い話かの両極端しか無いように感じる。 パッと立ち上げてだいたい1ヶ月でiPhoneXが買えるぐらいのサイト規模というのは、どんなレベルのエンジニアでも手が届く範囲内にあるのが実感だ。「人生賭けて起業!」とかそんな熱い話ではない。普段の仕事が終わったら、ちょこちょこコードかいて個人的にアプリを公開して収益を得る、ぐらいの話。「1億総クリエイター時代」ではこんなやり方が世の流れに合っている気がする。 この記事でも「エンジニアアウトプット至上主義であるべき」と主張している。自分で主張するからにはやっぱり得たノウハウは全部公開するのは当然だな、と。だいたい数週間で収益が10万円な

    開設後3週間で収益10万円を得た個人開発サイトでやったことの全部を公開する - Qiita
  • 学生でもできる!Webサービスの開発・リリースするまでの道のり - Qiita

    昨年末ごろから黙々と開発し続けていたサービスをついにリリースしました。 学生の身分でありながらひたすら開発し続け、リリースまで約5ヶ月弱、様々なことがあり、モチベーションや多くの苦難を乗り越えてきたので、これからサービスを作ろうと思っている学生や個人に向けてQiitaに記事を残しておこうと思います。 また、学生でも個人でも良いサービスを作れるんだ!ということを、この記事でもっと知ってもらえるようになればいいと思っています。 リリースしたサービス Sphotz - 写真・フォトスポット共有サービス トップ画面 ログイン画面 投稿詳細画面 どんなサービスなのか 大まかにいうと... 写真とフォトスポットを同時に投稿してもらい、写真が好きな人やカメラが好きな人がもっと幸せになれるサービスを作りました。 機能としては、 写真・フォトスポット投稿機能 写真の情報や位置情報を確認できる機能 投稿をお気

    学生でもできる!Webサービスの開発・リリースするまでの道のり - Qiita
  • 【Python入門】いまさらだけどパイソニスタとして必要な文法を網羅してみた - Qiita

    はじめに Pythonの対象バージョンは3系です。(2系でも通じるものは多いはず) 対象読者レベルは他言語を軽くでも触ったことある人です。「あー、Pythonだとこれはこう書くのねー」が網羅的に分かるようにまとめたつもりです。 ここではWEBアプリケーションフレームワーク(DjangoとかFlaskとか)に関してはほぼ触れません。 @shiracamus 多くの有益なコメントと編集リクエストありがとうございます。 Python開発環境構築 下記(私の記事ですが)はWindowsでの構築となっていますが、Macでもほぼ同じ通りにできます。 今からWindowsでベストなPython開発環境を構築する手順 Pythonについて 今最も勢いに乗っているプログラミング言語。 オブジェクト指向。Pythonでは全てがオブジェクト。 動的言語(スクリプト言語)のため、変数宣言時に型を明示的に定義しない

    【Python入門】いまさらだけどパイソニスタとして必要な文法を網羅してみた - Qiita
  • 個人開発者向けサーバ環境の選び方まとめ(heroku,aws,firebaseなどなど) - Qiita

    この記事は下記のブログに移行しました この記事の目的 上記の記事で 個人開発における特有のインフラ周りの悩み それぞれのサーバー、インフラを使った人の生の声 パターン別のおすすめサーバー などをまとめています。 個人開発や広告マネタイズなどtwitterで発信しているのでその辺興味ある人は気軽にフォローしてください。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationWhat you can do with signing up

    個人開発者向けサーバ環境の選び方まとめ(heroku,aws,firebaseなどなど) - Qiita
  • 【それでもCSSは破綻する】 CSSの設計手法と書き方を考える - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationWhat you can do with signing up

    【それでもCSSは破綻する】 CSSの設計手法と書き方を考える - Qiita
  • 脆弱性のあるJavaScriptライブラリを検出するRetire.jsを紹介 - Qiita

    「Webには時代遅れで脆弱性のあるJavaScirptライブラリで溢れていることが研究により明らかに」という記事のとおり、世の中には脆弱性のあるJavaScriptライブラリを使った多くのウェブサイトが存在します。 IPAが公開している「安全なウェブサイトの作り方」には脆弱性が修正されたバージョンのライブラリを使用する。と記述があったり、「OWASP TOP10 2017 (日語版)」にも既知の脆弱性のあるコンポーネントの使用を避けるように、と脆弱性のあるライブラリを使用しないよう注意喚起されています。 脆弱性のあるライブラリを使用しているか調べることができるRetire.jsを紹介します。 すべての脆弱性を防げる保証は無いので、あくまで自己責任でお使いください。 Retire.jsとは Retire.jsは上の画像のようにCLIなどで実行することができる脆弱性のあるJSライブラリを検出

    脆弱性のあるJavaScriptライブラリを検出するRetire.jsを紹介 - Qiita