サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
qiita.com/akameco
【Electron + react + flowtype】TweetDeckライクなpixivクライアントPixivDeckをつくったflowpixivReactElectronredux electron + react + flowtype + styled-components + webpackでpixivのデスクトップアプリを書いた。 前半にアプリについて、後半に技術的なことを書くので、どんな技術を使ったかのみ知りたい人は前半飛ばしてください。 GitHub - akameco/PixivDeck: TweetDeck like pixiv client for desktop ダウンロードページ スクリーンショット TweetDeckライクなpixivイラストビューア スクロール(IntersectionObserverで画像の遅延読み込み) カラムの移動(react-sort
react devtoolsやredux devtoolsは非常に便利ですが、electronではchromeにインストールしたDevTools Extensionをそのまま使えません。 そして、electronはDevTools Extensionをサポートしていますが、その導入はやや複雑です。 electron/devtools-extension.md ドキュメントにはReact Developer Toolsを例にその導入方法が書かれています。 ChromeにReact Developer Toolsをインストールしてください。 検索バーからchrome://extensionsに移動し、extension IDを見つけます。fmkadmapgofadopljbjfkapdkoienihiのようにハッシュ文字列になっています。 拡張機能を格納しているChromeのファイルシステムの
Electronアプリでxssを発生させると任意のコードが実行できるらしいのでrm -fr /を試してみます。 想定 web版とelectron版のあるチャットアプリケーションという設定です。攻撃者が用意したリンクをクリックすると、PC内のすべてのファイルを消し去るというシチュエーションを考えてみます。 用意 環境はホストmac OSX、ゲストにubuntu14.04環境をvagrantを利用し用意しました。 expressでリストとフォームからなる脆弱性のあるチャットをつくります。エスケープ処理をしてないので、任意のコードが実行できる状況です。 'use strict'; const path = require('path'); const express = require('express'); const app = express(); const ejs = require(
npm publishをする前の前提を確認してみます。 npm publish前に確認すること 1. git status gitにコミットしてないファイルがないか。 npm publishはgitの結果ではなく現在のファイルを公開するので、commitにファイルを変更していたらそれが公開されてしまいます。 2. git fetch リモートレポジトリの方が進んでいないか。 3. node_modulesを削除しnpm installを実行 最新の依存関係で動作するか。 4. npm test テストが通るか 5. バージョンを上げ、git tagを作成 npm versionを実行すると、タグ付けとコミットを自動で行います。 基本的にセマンティックバージョニングに従います。 いきなりメジャーバージョンを付加することは稀なので、はじめはnpm version minorを実行しましょう。
Electronで内部的に使われているnodeのバージョンはv5系です。 process.versionsを確認すると内部で使われているnodeとchromeのバージョンが確認できます。 console.log(process.versions); // => { http_parser: '2.6.2', // node: '5.10.0', // v8: '4.9.385.28', // uv: '1.8.0', // zlib: '1.2.8', // ares: '1.10.1-DEV', // modules: '47', // openssl: '1.0.2g', // electron: '0.37.8', // 'atom-shell': '0.37.8', // chrome: '49.0.2623.75 // } node 5.10.0は本来ならば、デストラクチャリング
redux-sagaが盛り上がってるらしいので触ってみました。 yelouafi/redux-saga: An alternative side effect model for Redux apps redux-sagaはreduxにおける非同期アクションをジェネレーター関数を用いて、同期なスタイルで扱うことができるミドルウェアです。 公式に日本語のドキュメントもあります。 翻訳してくれた@kuyさんに感謝です。 redux-saga/README_ja.md at master · yelouafi/redux-saga 詳しい日本語の解説記事はこれから出てくることを期待して、とりあえず触ってみます。 reactと一緒に使うことがほとんどだと思いますが、最小構成で試したいのでreduxとredux-sagaのみでnode 6.1.0にて試してみました。 インストール
getoptsを利用します。 getoptsの引数の後ろに:をつけるとOPTARG変数にその値が保持されるので、-の後ろにつけてロングオプションに対応します。 #!/bin/bash help() { echo help } version() { echo version } while getopts ":vh-:" opt; do case "$opt" in -) case "${OPTARG}" in help) help ;; version) version ;; esac ;; h) help ;; v) version ;; esac done
JavaScriptのプログラミング技術で2016年1番人気なのはMicrosoft社製のTypeScript。類似の技術であるBabel、Haxe、CoffeeScriptと比べても人気のある技術です。Babelも伸びてはいますが、TypeScriptの方が抜きん出ている状況です。 これを選んでおけば間違いない2016年流行りのCSS・JavaScript・タスクランナー - Qiita GoogleトレンドによるとTypeScript一強時代に入ったようです。 が、個人的にはGoogleトレンド?それで何がわかるの?と思っているので、npmのダウンロード数を比較してみます。Babelの構文調べるならBabelなんて書かずにES6ってみんな調べるんじゃないかなぁ typescript vs babel-core vs-coffee-script - npm trends だいたいBabe
そこで、editorconfigです。 editorconfigを使うことで、各々のエディタの設定がそのプロジェクト用に切り替わります。 EditorConfig 使い方 プロジェクトのルートに.editorconfigを配置するだけです。 参考までにjs用の自分のeditorconfigの設定を載せておきます。自分はタブ派なので、自分がプロジェクトをつくるときは以下のように設定しています。 root = true [*] indent_style = tab end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [{package.json,*.yml}] indent_style = space indent_size = 2
ブラウザのコンソールでrangeの作り方を試行錯誤してる記事を見つけました。 飛び飛びArrayのイテレート - Qiita Array.fromあまり使ったことがなかったので、なるほどという感じです。 今回は、自分なりにrange関数を考えたいと思います。 動作確認はモダンブラウザ(Chrome49)及びnode5.9で行いました。 Array.from さて、上記の記事にもある通り、まずはArray.fromを使ってみます。 Array.from() - JavaScript | MDN をみると、Array.fromは任意で配列のすべての要素に対して呼び出されるMap関数を引数にとれます。 とゆうかMDNの例のなかに目当てのものがいますね。完。 // Generate a sequence of numbers Array.from({length: 5}, (v, k) => k)
2017/01/17追記 Herokuのプランが変更されたようです。 詳しくは、コメント欄を参照してください。 追記ここまで みなさん、bot活用していますか? どんどん便利なスクリプトを追加し、日々の業務や生活になくなてはならない存在になっていると思います。しかしながら、botをどこで運用するかという悩ましい問題があります。少し前ならheroku一択でしたが、herokuのプランが変更され24時間完全に無料で運用することが難しくなりました。 herokuで運用する問題点 herokuは素晴らしい環境です。が、無料でbotをつくるとなると話は少し変わってきます。 30分アクセスしなければスリープ 24時間連続で動かすことができない(6時間のスリープ) hubot-heroku-keepaliveによって30分のスリープの問題はいいですが、24時間稼働できないのはどうしようもありません。まあ
春です。テストの季節です。 そこで、「テスト書いてない」とPCの前でつぶやくと画面いっぱいに例のライオンのスタンドが光臨するelectronアプリケーションを書いてみました。 ぜひ、音声ありで見てみてください。 音声認識について全く伝わりませんが、gifもおいておきます。 ダウンロード 以下のリンクからダウンロードできます。 なお、透明なアプリケーションなので、「テスト書いてない」と発言して動作確認してください。 Release akameco/twada-stand windows版もありますが、動作確認していませんので、もし動かなかったらごめんなさい。 わたしのwin機はwindows10にアップデートしようとしたら失敗して無限に再起動を繰り返すようになってしまったので。 ソースコード: github 音声認識 electronからwebkitSpeechRecognitionを利用し
研究室の先輩にelixirとphoenixを布教されたので軽く触れてみました。 とりあえず、インストールから簡単なREST APIつくってReactから使ってみることにします。 前提としてmac環境とします。 インストール $ brew install elixir $ mix local.hex $ mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez これでphoenixの環境が整いました。インストールでハマるところなくいい感じです。 プロジェクトの作成 今回はとりあえずマイクロブログをつくってみることします。 Railsのrails newと似たような感じでphoenix.newでプロジェクトを作成することができます。 dbは手軽なのでsqliteを使います
このページを最初にブックマークしてみませんか?
『@akamecoのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く