タグ

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

  • ServiceWorkerとCache APIを使ってオフラインでも動くWebアプリを作る - Qiita

    はじめに Thetaの360°画像にぼかしを入れるWebアプリSphereBlur.comを作った際に、オフラインでも動くようにするために、HTML5の新しい技術Service Workerを使った。なお、下の動画でホーム画面からネイティブアプリっぽく起動しているのはWeb App Manifestのおかげである。 Service Worker Service Workerは、通常のページの環境とは別に、バックグラウンドで実行されるJavaScript実行環境で、ページからのネットワークリクエストを横取りしたり、ウェブサイトからのPush通知を受けとって表示するといった、今まではできなかった処理をすることができる。Push通知の方は、去年Facebookが使い始めたので有名になったが、今回はPush通知ではなく、ネットワークリクエストを横取りする機能を使ってオフライン対応をした。 ネットワ

    ServiceWorkerとCache APIを使ってオフラインでも動くWebアプリを作る - Qiita
    sujii
    sujii 2016/01/31
  • 旧石器時代のJavaScriptを書いてる各位に告ぐ、現代的なJavaScript超入門 Section1 ~すぐにでも現代っぽく出来るワンポイントまとめ~ - Qiita

    はじめに ネットには様々な情報が溢れており、JavaScriptに関する情報も多数存在しております。 その中には、「今時こんな書き方しねえよ…」と思わずツッコミを入れたくなるような、当に、当に古い内容について書かれている古文書も存在します。 そんな罠記事の情報に囚われてしまって、いつまで経っても現代的なJavaScriptが書けない皆さんのために、このシリーズの記事では、各セクション毎に分けて、旧石器時代の記述と、現代の記述を紹介する形で、文明開化をしていきたいという思いで記述する。 最初は、現在比較的メジャーなブラウザで一通り動作する「ECMAScript 5」までの内容に関してポエムを書き連ねていき、最終的には一連の内容を読むだけで「ES6(ES2015)」による新機能や、絶賛提案中の「ES7」の一部提案内容についても把握し、おおよそ現代人を育成することを目標とする。 …なんてめっ

    旧石器時代のJavaScriptを書いてる各位に告ぐ、現代的なJavaScript超入門 Section1 ~すぐにでも現代っぽく出来るワンポイントまとめ~ - Qiita
    sujii
    sujii 2016/01/20
  • 1年間真剣にJavaScriptに取り組んだ話 - Qiita

    まえがき JavaScriptアドベントカレンダーの最終日をやらせて頂いて光栄です。 http://qiita.com/advent-calendar/2015/javascript ※元々は2の最終日を担当するつもりでしたが、家が空いておりましたので失礼させていただいております。 2015年、自分の中で一番何に夢中だったかといいますと、モンハンかJavaScript(Node.js)だったなぁと思います。 そんなで今回は1年間どんな感じにJavaScriptとじゃれてきたのかをモクモクと書いてみようと思います。 たまにJavaScriptではなくて、PHPの話とかもするかもしれませんが、あしからず。 1年前のJavaScriptのスキル JavaScriptを使ったWEBアプリ(SPA)を一様書くことはできる。 Backbone.js/Marionette.jsを使ったサービスをすごい

    1年間真剣にJavaScriptに取り組んだ話 - Qiita
    sujii
    sujii 2015/12/25
  • まだMVC,MVP,MVVMで消耗してるの? iOS Clean Architectureについて - Qiita

    <この記事は「Money Forward Advent Calendar 2015」の22日目の記事です> この記事は、iOS Clean Architectureと実際にコードへ適用した内容について紹介します。 コードについては、改善の余地があるため随時修正していくと思います。 → github: https://github.com/koutalou/iOS-CleanArchitecture iOS開発においてよくある問題点 「ビジネスロジックはModelに置くべき」と言うが、開発者によって理解や意見がバラバラで統一的な実装ができない 度重なる仕様変更や複雑な仕様に対応するためにViewControllerや特定のModelが肥大化し、ビジネスロジックの質を見失う MVC,MVP,MVVMだけで考えると、どこかのレイヤが複数の責務を持つことになり依存度の高い複雑なコードが生まれてし

    まだMVC,MVP,MVVMで消耗してるの? iOS Clean Architectureについて - Qiita
    sujii
    sujii 2015/12/23
  • Vim で引き籠る - Qiita

    2015年総括 今年も沢山、良い Vim プラグインが誕生しました。 また皆さんからも幾度か vim-jp に vim の不具合報告を頂き、vim-dev にパッチとして還元する事が出来ました。当にありがとうございました。さらに個人的には技術評論社出版の「Software Design」で連載記事「Vim の細道」を執筆させて頂く事になり1、自他共にビムビムしい1年だったと思います。 しかし今後も皆さんが使うテキストエディタは皆さん自身が考えて良くしていく、そういう気持ちを持ちながら引き続き Vim 活動を続けて行きたいと思います。 さて 2015年は如何だったでしょうか。Vimmer になりたいと思っている人たちは Vimmer になれたでしょうか。Vimmer の世間一般のイメージと言えば vimrc ばかり弄っている プラグインばかり作っている 現代でも vim が最強だと思ってる

    Vim で引き籠る - Qiita
    sujii
    sujii 2015/12/14
  • 【中級編】Riot.js + Typescript + karmaで今日から始めるElixir on Phoenixフロント開発入門 その1 - Qiita

    【中級編】Riot.js + Typescript + karmaで今日から始めるElixir on Phoenixフロント開発入門 その1TypeScriptElixirkarmaPhoenixriot はじめに 皆さん、おはこんばんちは。 年の瀬です。 コミケの入稿割引が減っていきます。 第2回 企業対抗トーナメントも大晦日に、あります。ギルティです。 正直色々忙しいですね。分かります。だって師走だもの。 そんな時は肩の力をいったん抜いて、Elixir on Phoenix、入門していきましょう。 CentOS + Erlang + Elixir + PhoenixのDockerイメージで今日から始めるElixir on Phoenix入門 【中級編】drone.io + exrmで今日から始めるElixir on Phoenixホットデプロイ入門 前回、前々回に引き続き、Elixir

    【中級編】Riot.js + Typescript + karmaで今日から始めるElixir on Phoenixフロント開発入門 その1 - Qiita
    sujii
    sujii 2015/12/12
  • NginxによるHTTP/2 事始め - Qiita

    freeeでアプリケーションエンジニアをやっています @jpshadowapps です。Twitter上では「ビール飲みたい」「35億欲しい」と発作的に呟く 老害 オジさんをやっています。 この記事は freee Engineers Advent Calendar 2015 の9日目です。 サーバーサイドで出来る事って何だろう? フロントエンドの開発プロセスや構成がとてつもないスピードで変化を続けている昨今、私のようなサーバーサイドがメインの 老害 オジさんはそのスピードに若干圧倒され白目を剥きつつ動向を追いかけている状態です。 そうしたフロントエンド技術刷新も(特に)負債返却・開発品質とスピードの向上 という意味で重要な事ではありますが、最終的にデプロイされたアプリケーションが「正確で、かつストレス無く高速に」動く事も重要です。動く=ユーザーに届く、と読み替えても頂いても良いと思います

    NginxによるHTTP/2 事始め - Qiita
    sujii
    sujii 2015/12/09
  • Adobe Creative SDK for ios が本当にやばい - Qiita

    https://creativesdk.adobe.com/ 今まで散々様々なSDKを使ってきましたが、正直感動しました。 こんな簡単に超リッチな画像加工ができるなんて当にすごいです。 しかも 実装方法が超かんたん。 まずは少しみてください。 一部機能の紹介 画像のフィルター フィルターの種類も豊富で、お手軽にインスタグラムっぽい画像を作れちゃいます 画像の切り抜き 画像の方向変換 文字入力 指定した色だけ色を出したり ほら、やばい 実装方法 swiftで書きますので、objective-cの方は適時読み替えてください。 一応今回のサンプルコードもgithubにアップしておきます。 https://github.com/yamasakitomohiro/AdobeCreativeSample SDKのダウンロード 以下のリンク作からiOS SDKをダウンロードしてください。 https:

    Adobe Creative SDK for ios が本当にやばい - Qiita
    sujii
    sujii 2015/12/08
  • Web APIにはJSONベースのフォーマットを使おう - Qiita

    { "response": { "id": 3342124, "message": "Hi!", "user": { "id": 3456, "name": "Taro Yamada", "image_url": "/images/taro.png" } } } など、どの構造がいいでしょうか? もっと違う構造も考えられます。 JSONはシンプルですが、構造に制約がなさすぎます。適切な設計を行うには適切な制約が必要です。 そこで、plain JSONに少し制約を加えたJSONベースのフォーマットを使うことをおすすめします。 もしあなたが、JSONレスポンスをどのようなフォーマットにするかをチームで議論したことがあるなら、JSON APIは『自転車置き場の議論』に対抗する武器となる。 共有された規約に従うことで、生産性が向上し、汎用的なツールを利用でき、アプリケーションという重要なものに集中

    Web APIにはJSONベースのフォーマットを使おう - Qiita
    sujii
    sujii 2015/12/07
  • 仮想DOMで魂が震えてから一年、仮想DOMとFluxの今 - Qiita

    なぜ仮想DOMという概念が俺達の魂を震えさせるのか から一年、みなさまどのようなフロントエンドをお過ごしでしょうか。 僕はひたすら過去資産をリファクタしています。 需要の雰囲気 色んな所に書きましたが、去年僕が仮想DOM AdventCalendar をやったのは、「僕自身がproductionで使いたい」ので、「Reactまあいいよね」的な雰囲気を作って外堀埋めるのが目的でした。そして、その目的はおおよそ果たされたと言ってもいいでしょう。ご協力ありがとうございました。 僕自身はKobito for WindowsReactを使ってみて、そのノウハウを公開したり、今年前半は色々とアウトプットをしていましたが、後半はSpecificなアプリケーションドメインを記述することが多くて、あまりアウトプットする内容がなくなってました。 取り敢えずは、新規のプロダクトなら採用してもよい、という雰囲

    仮想DOMで魂が震えてから一年、仮想DOMとFluxの今 - Qiita
    sujii
    sujii 2015/12/02
  • はじめてのVue.js - 単一ファイルコンポーネントを作れる環境構築編 (npm + gulp + browserify + babel + vueify)

    はじめてのVue.js - 単一ファイルコンポーネントを作れる環境構築編 (npm + gulp + browserify + babel + vueify) browserifyVue.jsvueifybabel この記事では、RailsPHP といったサーバーサイドのプログラミングをメインでやっている人向けに Vue.js を用いた簡単な TODO 管理アプリを作るまでを、2回に分けて解説します。 なお、著者の作業環境の都合上、Mac OSX を対象として記事を執筆しています。 1回目では、Vue.js を用いたアプリのモダンな開発環境構築について説明いたします。 Vue.js とは? Vue.js は「リアクティブなデータバインディング」と「コンポーネントシステム」に主眼を置いたフロントエンド向けの JavaScript ライブラリです。 最も簡単な vue.js の始め方 (

    はじめてのVue.js - 単一ファイルコンポーネントを作れる環境構築編 (npm + gulp + browserify + babel + vueify)
    sujii
    sujii 2015/11/23
  • gitとプルリクエストに関して思うことまとめ - Qiita

    ※この記事は元々「Gitのこれやめて!リスト」として2015年11月に投稿したものを改訂したものです。 この記事について 私が個人的にgitとプルリクエストについて、「こうして欲しい」とか「これはやらないで!!」とか思っていることをまとめたものです。 元々は2015年に私がコードレビューをしてる時に気になったことを、あまり推敲もせず思うがままに書いた記事でした。今改めて読み返すと稚拙な文章なのと、他に思うところとがあったりしたので、改めて書き直しました。いいね貰ってるのに書き直すのに若干後ろめたさがあるのですが、よりいい内容にできればと思います。 コミットログがきれいだとレビューしやすい 一人で開発するときはgit使っててもブランチ切らないし、プルリクもださないしで、コミットログも"First Commit"の次が"Second Commit"とかでも支障はないです。しかし、チームで開発す

    gitとプルリクエストに関して思うことまとめ - Qiita
    sujii
    sujii 2015/11/09
  • 若者はどうやってCSSを覚えたのか - Qiita

    先日、@Jxckさん主催で行われた次世代WebカンファレンスでCSSのセッションに登壇させていただきました。(動画) セッション中に@cssradarさんに「morishitterはどうやってCSSを覚えたのか」と聞かれ曖昧にしか答えられなかったので、 自分が今までどうやってCSSを学んできたのか を振り返ってみる。 黎明期 プログラムを書き始めたのは3年半ぐらい前からだと思う。PHPでWebアプリを書いたのがはじめで、そのときにBootstrap v2をベースに何もわからないまま、雑にCSSを書いた。 BootstrapのようなCSSフレームワークからCSSを始めると、floatやpositionのようなレイアウトに関わるプロパティがどういうものなのかを知らなくても、何となくでWebアプリのレイアウティングができる。 そしてブラックボックス化されたBootstrapのコードを読もうとして

    若者はどうやってCSSを覚えたのか - Qiita
    sujii
    sujii 2015/10/31
  • Ruby のココがダメ - Qiita

    タイトルは釣りです。Ruby に盲目的に惚れている迂生には Ruby の痘痕(あばた)はエクボです。 それはともかく。 メソッド名の別名がありすぎ 「あなたは map 派? それとも collect 派?」っていう問いがまず嫌い。 いや,別名にも意義があるとは思うんだけど,記憶の負担が大きい。 自分では map しか使わなくても,他人のコード読むんだったら collect を知っていなくちゃならない。 しばらく前に reduce っていうメソッド見て,そんなのあったっけ?と思ったら inject の別名だった。 map/collect と inject/reduce の名前とその背景にある発想については,Rubyist Magazine に良い記事がある: そうかと思えば,Array#delete_if と Array#reject! みたいに,働きは基的に同じだけど,削除が行われなかっ

    Ruby のココがダメ - Qiita
    sujii
    sujii 2015/10/28
  • AndroidでViewを角丸にする - Qiita

    はじめに デザインの都合上ボタンとか、LinearLayoutを角丸にしたかった時に調べた時のメモ。 実装 基的にはbackgroundを指定する際に、別ファイルで角丸を定義したものを読みこめばうまく行きます。 ボタンの比較 まずはボタンで比較してみます。 比較対象は通常のボタン、角丸(5dp)のボタン、角丸(10dp)のボタンです。 <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp"> <!--通常のボタン--> <Button android:id="@+id/buttonNormal" android:layout_width="wrap_content" android:layout_heig

    AndroidでViewを角丸にする - Qiita
    sujii
    sujii 2015/10/27
  • 僕なりのフロントエンド開発環境 - Qiita

    ちょっと古くなってきたので、タスクをアップデートした http://qiita.com/koh110/items/83cb29f8ecc2738ea8bb 最近フロントエンドよりの開発をする事が多く、そろそろ面倒くさい部分を自動化せねばなぁと思ってgulpのタスクなどを色々まとめて、僕の考えた最強のフロントエンド開発環境を整えた。 随時アップデートはしていくつもりだけど、しばらくはこれを使ってみようと思う。 ひと通りは以下のリポジトリにまとめた。 https://github.com/koh110/minjsapp 簡単に他のリポジトリで利用できるようにファイルだけcopyするシェルスクリプト付き $ git clone https://github.com/koh110/minjsapp.git $ cd minjsapp $ ./copy.sh /path/to/yourproject

    僕なりのフロントエンド開発環境 - Qiita
    sujii
    sujii 2015/10/22
  • チーム展開と保守性を考慮したクロスプラットフォームHTML5ビルドシステムの考察 - Qiita

    概要 稿は、HTML5を効率的に開発する環境をマルチプラットフォームで素早く展開する方法について考えて試作したものの備忘録です。後述するツール達は、執筆時点で選定した技術ですが、既に古くなったものもあると思います。Web開発の技術は非常に早いペースで世代交代しているため実際に利用する際には、選定技術の見直しやバージョンアップを行ってください。なお稿は、所属会社の自習課題として書き進めたものですが発表するアテが無くなってしまった為、こちらに投稿します。 構築方針 現在私の所属している会社の開発プラットフォームは、Windowsのみという状況になっています。一方ターゲットとなるプラットフォームは、モバイルアプリケーションやWebへ移りつつあります。ターゲットとなるプラットフォームがWindowsから移りつつあるため開発環境もクロスプラットフォームな方が良いと考えました。また、個人的にメイン

    チーム展開と保守性を考慮したクロスプラットフォームHTML5ビルドシステムの考察 - Qiita
    sujii
    sujii 2015/10/22
  • pythonと遺伝的アルゴリズムで作るFX自動売買システム その1 - Qiita

    作ったモノ 次の機能を実装してみました 1. 最新の為替レートを取得し続けるプログラム 2. AIを稼働させ自動売買するプログラム 3. 最新のデータを元に新しいAIを遺伝的アルゴリズムで生成するプログラム 4. AIのパフォーマンスを測定して引退と取引通貨単位を管理するプログラム 背景 OANDAが提供している取引用APIが、かなり良い感じだったので実現できました。 特に1通貨単位(1ドル単位)で売買できるため、AI100個動かし取引を重ねても損失は1日数十円に収まります。試験時に売買システムがバグで暴走しても安心です。このAPIが無ければ個人では実現出来なかったので、良い時代になったなーと思います。 http://developer.oanda.com/rest-live/development-guide/ 遺伝的アルゴリズムの特徴 最適化問題の準最適解を短時間で解ける。 最適化問題

    pythonと遺伝的アルゴリズムで作るFX自動売買システム その1 - Qiita
    sujii
    sujii 2015/09/30
  • Adam論文概要とコード - Qiita

    最近、機械学習系のタスクから離れていて(ずっとRails書いてました...そろそろ機械学習界隈の世界に戻らんと...) まだAdamの論文読めてなかったので、読んで適当に実装してみました。 motivation 簡単に実装できて、計算効率が良くて、省メモリで、スケールの影響も受けにくくて、大規模なデータ/パラメタに対して適応的なモデルを作りたい Adamの名前の由来 Adaptive moment estimation Adamの利点 AdaGradとRMSPropの良い所を合わせ持った手法 AdaGradはsparse gradientに強い(が、一次モーメントのバイアス訂正項がないのでバイアスが非常に大きくなって、パラメタの更新が非常に大きくなる) RMSPropはオンラインで非定常な設定で強い(がバイアス訂正項が小さな値になるとstepsizeがバカでかくなる) 初期値を与える必要は

    Adam論文概要とコード - Qiita
    sujii
    sujii 2015/09/26
  • npm とか bower とか一体何なんだよ!Javascript 界隈の文脈を理解しよう - Qiita

    背景 Javascript で Web アプリを作ろうとすると、よくわからないことだらけで超混乱します。 npm と bower の違いは? npm はサーバーサイド用、bower はクライアントサイド用らしいよ えっ、でもなんで bower のインストールに npm が必要なの? サーバーサイドは Rails で書きたいから npm 要らないと思うんだけど・・・ ていうかサーバーサイドJSとか node.js って何? よく見る browserify って何? こういった疑問が沸き上がるのは、各ツールが生まれた文脈がよくわかっていないからです。いろいろ調べてやっとちょっとわかってきたのでメモします。間違いがあったらご指摘ください。 「CommonJS」誕生 - Javascript は汎用プログラミング言語へ その昔、Javascript 大好きおじさんは言いました。 Javascrip

    npm とか bower とか一体何なんだよ!Javascript 界隈の文脈を理解しよう - Qiita
    sujii
    sujii 2015/09/24