タグ

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

  • GradleのTaskでGooglePlayにAPKとスクショ類をアップロードする ver 2017.Q1 - Qiita

    結構前にGoogle Play Developer APIが公開され、それなりに便利そうな割にはあんまり使ってる人を見かけないので、何が便利でどういう問題があるのか、実際に触れ合ってみました。 最初に書いときますが、APIだけでは個人的に必要な要望を満たせませんでした。 Google Playの機能拡張待ちです。 Google Play Developer APIとは Google Playのコンソール画面(アプリを公開したりする画面)の操作を行えるAPI 2015.4月現在はv2が提供されている 各種言語から扱えるライブラリやサンプルコードが配布されている JavaだとMaven Centralとかで配布 API自体は非常にカンタンに覚えられる Gradleからアップロードしたい Gradleからアップロードできれば、Jenkinsやら流行りのTravisやらCircleやらのCIでアッ

    GradleのTaskでGooglePlayにAPKとスクショ類をアップロードする ver 2017.Q1 - Qiita
  • LeakCanaryでメモリリークを検出する - Qiita

    Squareがメモリリークを検出するライブラリ square/leakcanary を公開したので、さっそく使ってみたらすごく便利だった話です。 A small leak will sink a great ship Piwaiが書いたLeakCanaryの記事がこちらです。 LeakCanary: Detect all memory leaks! 要約すると、 Squareではビットマップキャッシュに顧客の署名を書いていたが、端末の画面のサイズ分のメモリを確保するので、署名をするときにクラッシュすることがあり、それがOOMの大半を占めていた。 Bitmap.Configを変更したり、OOMをキャッチしてGCを走らせたりしたが、問題の解決には至らなかった。 我々は間違ったアプローチを取っていたことに気が付いた。ビットマップの大きさではなくメモリリークが根的な原因だったのだ。 通常であれば

    LeakCanaryでメモリリークを検出する - Qiita
  • [翻訳] Haskellで生産的になる(Pythonから移行して) - Qiita

    Matthew Griffithさんのブログ記事 MECHANICAL ELEPHANT - Becoming Productive in Haskell comming from Pythonの翻訳です。そういえばProductive ProgrammerってにもHaskellを使って実証実験する話が出てました。Haskellは何度も勉強しようとして途中で止まっては忘れを繰り返しているので見習いたいと思います。 最近になってようやく私は生産性を高められるぐらいHaskellに熟達してきました。そこでHaskellを学習してきた経験について、それらを忘れてしまう前に私の考えを書き留めておこうと思います。今や私はWebプロトタイピングのほとんどをHaskellで行っています。まだ普段はPythonを使い、また楽しんでいるにも関わらず、です。 Data First(データが第一) これは動的

    [翻訳] Haskellで生産的になる(Pythonから移行して) - Qiita
  • LinuxのSSD設定 - Qiita

    概要 SSDで寿命とかパフォーマンスを改善するために設定しておいた方が良い点のまとめです。 よくある系のネタですが、久しぶりにSSD設定見なおしたら勘違いしてた点がいくつかあったので備忘を兼ねて残します。目次見て「こんなの常識だよね」って思った方はスルーしてくださいm(_ _)m 基 firmwareを最新化する kernel/osはなるべく新しいものを使う 新しいファイルシステムを使う(多分今のところext4が一番良さそう) swapしないようメモリを沢山積む TRIMを使う TRIMとは SSD上のデータは削除しても削除マークが付くだけで削除されません。 この状態のブロックにデータを書き込む場合、一度完全に消去してから書き込みます。 TRIMコマンドはOS上のファイルが不要になったことをSSDに伝えて明示的にデータの消去を行うコマンドです。 メリット TRIMを使わない場合、以前デー

    LinuxのSSD設定 - Qiita
  • チームとして少ないミスで素早くアプリを継続的・持続的に作り続けるためのメソッド - Qiita

    この投稿は DroidKaigi で話そうと思ったけど採択されなかった RejectedKaigi な内容です。 プログラムは、書けば書くほど複雑になります。行数が増え、分岐や繰り返しが増え、メソッドが増え、クラスが増え、パッケージが増え、管理するものは日に日に増えていきます。これらのものを使う側からすると、使うものが増えるということは、それだけ覚えることが増えることになります。勿論、IDE やエディタプラグインによって、そのような労力が極力減らされることもありますが、覚えることが少ないに越したことはありません。 この記事では、IDE やエディタプラグインはひとまず脇に置き、チームでコミュニケーションを取りながらコードを書くという観点で、従来のプログラミングのプラクティスを基に、開発時のミスを少なくし、チームで素早くアプリを作り続けていく方法論を深めていこうと思います。 Agenda 型を

    チームとして少ないミスで素早くアプリを継続的・持続的に作り続けるためのメソッド - Qiita
  • (あどてく!) PlayFramework/Scalaで3rd Party Cookieを出力するピクセルトラッキングサーバーを作る - Qiita

    1st Party Cookieで代表的なのはGoogleAnalytics(GA)です。 参考:http://nexal.jp/blogs/2061.html 3rdPartyにはSafariをトラッキングできないという致命的な欠陥(※)がありそれを回避するには1stParyCookieが有効です。(他にもローカルストレージをモニョモニョする・・などもありますが) (※)Safariのデフォルトの設定が「3rd Party Cookieを拒否する」となっているため事実上3rdのCookieを受け付けない。 ピクセルトラッキングとは 1x1の透明画像(だいたいはgif)をレスポンスとして返す裏でCookieを仕込み、Cookieにユーザーを特定するIDを付与する技術の事。 透明なのでブラウザからは見えない、というかほとんどはhtmlでhidden設定されてるのでブラウザには表示されない。

    (あどてく!) PlayFramework/Scalaで3rd Party Cookieを出力するピクセルトラッキングサーバーを作る - Qiita
  • IMEの入力状態表示 - Qiita

    1秒毎にIMEの状態をチェックしてタスクトレイのアイコンを変化させる。 bbLean で使おうかと思ったけど、bbLean 自体を使い続けなくていいような気がしてきたのでお蔵入り。 これよりマシなスクリプトはごろごろ存在している。 #Persistent ;常駐 #NoEnv ;環境変数を無視。速度面でも有利になる。 #SingleInstance force ;同じスクリプトを一つだけ起動。 #Include %A_ScriptDir%\IME_Func\IME_Func.ahk SetTimer, check_ime_status, 1000 check_ime_status: howime := IME_CHECK("A") if (%howime% = 0) { Menu, TRAY, Icon, %A_ScriptDir%\a.ico } else { Menu, TRAY, I

    IMEの入力状態表示 - Qiita
  • 炎上案件に突如ディレクターとして投入されたときにやってみたこと - Qiita

    ぼんやり1メンバーとして眺めていたプロジェクトが、リリース1週間前になって「あれも足りない!これも出来てない!どうすんじゃゴラァ」となったときに突如ディレクターとしてぶっこまれ投入されたときにやってみたことのメモ。 一次対応 とにもかくにもPJTに投入されて最初にやったこと。 コミュニケーションルールをみんなで確認して、守ってもらうようにした 誰が何の情報を持ってて、そして誰から誰にどんな指示が出てて、それらがどんなステータスか、、、 もうぐっちゃぐちゃになっていた。 ディレクターは一度死ぬが、一旦全部ディレクターに報告させて、ディレクターから適切な人に指示を出すことにし、メンバー同士でのダイレクトなコミュニケーションをいったん、原則禁止した。 (ディレクターがAさんとBさんで直接やって、と指示を出すときもあるが、それもやりとりの結果をAさんから必ずフィードバックさせるようにした。) ただ

    炎上案件に突如ディレクターとして投入されたときにやってみたこと - Qiita
  • JavaScriptはオブジェクトについて参照渡しだなんて、信じない - Qiita

    おはようございますの人もいれば、こんにちはの人もいて、こんばんはの人もいれば、スラマッパギの人もいますね。ということで日はどうも、まとめてスラマッパギ。 えーと、今日はちょっとした発表があります。といっても当にちょっとしたものなので、ちょっとだけ耳を傾けてお聞きください。ええ、JavaScriptの代入についてです。そう、値渡しだの参照渡しだのダマシだの「村長だ、ワシ」だの、そんな話です。 ということで、ちょっとこれから始めようかなと、ちょっと思います。 さっそくだが、見よ!この値渡しを! var a, b; a = ["hoge", "fuga"]; b = a; // 値渡し b; // => ["hoge", "fuga"] b[0] = "hogera"; b; // => ["hogera", "fuga"] a; // => ["hogera", "fuga"] 値渡し!

    JavaScriptはオブジェクトについて参照渡しだなんて、信じない - Qiita
  • Powerline導入例 - Qiita

    Powerlineが統一されたようですね. 過去の情報が残っていたり,統一後の情報が少なかったりで苦労したので,行ったことを残します. いろいろ試しすぎて記憶が錯綜していたり,集めることができた情報のみで記載していくので,あくまで参考でよろしくお願いします. 今回はMacを対象にPowerlineを導入します. Powerlineのバージョン2.4を対象とします。 zsh,vim,tmuxのインストールとともにPowerlineの設定をします. Homebrewを導入済みとします. 家ドキュメントを中心にやっていきます. 環境 導入するPC環境 OS X El Capitan iTerm 2 Build 2.1.4 bash 5.2 Homebrew 0.9.9 git 2.8.1 iTerm上で作業していきます。 pyenvとかが入ってるとパスが変わってくるかもしれません(未確認).

    Powerline導入例 - Qiita
  • GS Collections 使い方メモ - Qiita

    Java Magazine で取り上げられていて存在は知っていたものの、特にチェックはしてなかった GS Collections。 Java Day Tokyo 2015 や JJUG CCC 2015 で再びその名前を耳にし、気になってチラッと実装を見たところ、面白そうだったので使い方を調べてみた。 【追記】Eclipse Collections 2015 年の 10 月から 12 月にかけて、 GS Collections は Eclipse 財団に移管された。 名前も GS Collections から Eclipse Collections に変更された。 公式サイトはこちら → Eclipse Collections - Features you want with the collections you need. (日語ページ) GS Collections と、機能的な差

    GS Collections 使い方メモ - Qiita
  • Promiseを複数組み合わせる時の基本パターン(直列、並列、分岐) - Qiita

    ES6形式のPromiseを使うときに頻出する3つのパターン。直列パターン、並列パターン、分岐パターンを説明します。 最近、Promise周りが盛り上がっていて、reduceを使ったほうが良いとか、ライブラリがどうとか・・・いう話を聞くのですが、そもそも「ベタに書いたときにどうするのが基なのか」という情報が見つからないので書いてみました。 直列パターン 一番良く使うのは、複数の処理を直列につなげるパターンでしょう。#1が終わってから、#2、#2が終わってから#3というパターンです。 Promise.resolve() .then(function(){ return new Promise(function(fulfilled, rejected){ asyncFunc(function(){ fulfilled(); }); }) }) .then(function(){ return

    Promiseを複数組み合わせる時の基本パターン(直列、並列、分岐) - Qiita
  • Android開発 〜そんなところ自分で作る必要ないよ〜 - Qiita

    マニュアルに目を通さないで、適当なブログを適当にググッて実装すると陥りやすい、「自分で書く必要のないところまで自分で実装して疲れたりバグったり」というケース。経験したものをずらずらと。 コードはうろ覚え 会社のプレゼンの資料で作ったので精査できてない(TODO 後で整理する) 概要 RosourcesTypes Loader DataProvider これらを使って楽をしようという話のケーススタディー的なものです 画像リソースのdpiごとの伸縮 単純に拡大縮小するだけなのに、いろんな解像度分の画像を用意して配置するやつ Before のアイコン icon_neko.pngを以下のように配置 res/ drawable-mdpi/ icon_neko.png (16x16) drawable-hdpi/ icon_neko.png (24x24) drawable-xhdpi/ icon_

    Android開発 〜そんなところ自分で作る必要ないよ〜 - Qiita
  • React Native ファーストインプレッション - Qiita

    React Native 概要 React.js とだいたい同じ作法で、JavaScript で書いたコードが iOS ネイティブアプリとして一応動く。そのフレームワークと開発環境を提供する。 React.js と同じ React を謳っているとおり、JSX で UI コンポーネントを定義するとか、Props や State で View のデータフローを整えるとか、setState() によるデータバインディングとか、諸々が一緒。従って React.js でアプリケーションを作ったことがあれば、学習コストをほとんどかけずにアプリが作れる・・・かも 例えば以下のように、入力値をそのまま画面にエコーするアプリケーション。 これはこんな感じのコードになる。 var React = require('react-native'); var { AppRegistry, StyleSheet, T

    React Native ファーストインプレッション - Qiita
  • スタバのTwitterデータをpythonで大量に取得し、データ分析を試みる その1 - Qiita

    また、データの格納にmongoDBを使うのでこちらやこちらなどを参考にインストール。mongoDBの概要は「MongoDB の薄い」などを参照。 PythonからmongoDBにアクセスするため、pymongoも導入します。 from requests_oauthlib import OAuth1Session from requests.exceptions import ConnectionError, ReadTimeout, SSLError import json, datetime, time, pytz, re, sys,traceback, pymongo #from pymongo import Connection # Connection classは廃止されたのでMongoClientに変更 from pymongo import MongoClient from

    スタバのTwitterデータをpythonで大量に取得し、データ分析を試みる その1 - Qiita
  • bashスクリプトで子プロセスを全部殺すイディオム - Qiita

    シェルスクリプトでバックグラウンドで子プロセスを動かしている場合、何も考えずに書くと元のプロセスを殺しても子プロセスが残ってしまいます。例えばこんな風に書くと:

    bashスクリプトで子プロセスを全部殺すイディオム - Qiita
  • 変数や関数の名前がいつの間にか分かりにくくなる問題 - Qiita

    TL;DR: 変数や関数を追加するときは、周りにある他の変数や関数の名前を修正すべきでないか検討せよ いきなりですが問題です。あるソフトウェアモジュールに以下の三つの関数があります。 show showWithSlideAnimation showWithoutAnimation 画面をスライドさせながら出現させるにはどの関数を使用すれば良いでせうか? 関数の名前だけを見て答へてください。 はい、その通り。showWithSlideAnimation が正解です。 では、画面をアニメーションなしで出現させたい場合はどの関数が良いでせうか? はい、showWithoutAnimation が正解ですね。 今度は、画面を回転させながら出現させたいとします。適する関数はあるでせうか? ブーーーッ! 残念、正解は「どの関数も適さないので新しく関数を実装する必要がある」でした。 これで最後です。画面

    変数や関数の名前がいつの間にか分かりにくくなる問題 - Qiita
  • AndroidのCIはDockerでビルドするのが楽 - Qiita

    追記: 実際に運用する際はライセンスにご注意ください: 公開用DockerイメージにAndroid SDKを含めるのはライセンス違反という話 - Islands in the byte stream 三行まとめ 社内のJenkins環境 / Travis-CI / Circle-CI など、CIサービスごとにビルド設定を調べるのにうんざりしたのでDockerizeしてみた 手元とCI環境がまったく同じになるので一度動くようになったら安定して動かせるはず とりあえずCircle-CIで試して動いた 前提 OSXの場合、boot2dockerdockerをhomebrewで入れましょう。boot2dockerdockerを動かすためのVMとLinuxイメージを適当に整えてくれるやつです。 brew install Caskroom/cask/virtualbox # まだ入れてなければ b

    AndroidのCIはDockerでビルドするのが楽 - Qiita
  • Promiseの実装をしっかり読んでみたので学習メモ - Qiita

    @armorik83です。ちょっと一段落ついたところで、そろそろ真剣にPromiseの中身を読む必要があるなーと感じたので、そのときのメモです。 読んだ実装 今回はjakearchibald/es6-promise v2.0.1を読んでいきます。基礎知識としてJavaScript Promiseのにも目を通しておくとよいでしょう。 サンプルソース サンプルとしてPromiseの1.3.1を若干改変して利用させてもらいました。 var Promise = require('es6-promise').Promise; function getURL(URL) { return new Promise(function (resolve, reject) { var req = new XMLHttpRequest(); req.open('GET', URL, true); req.on

    Promiseの実装をしっかり読んでみたので学習メモ - Qiita
  • モナド則がちょっと分かった? - Qiita

    モナドを勉強しようとするとモナド則が立ちはだかります。しかしモナド則は意味だけでなく、それがモナドを勉強する上でどういう位置付けなのかも分かりにくいです。とりあえず棚上げしたまま分かる範囲のことから手を付けていましたが、ちょっと分かったような気がしたのでメモしておきます。 モナド則に関する現時点の理解ですが、正確さは保証できません。 これを読めばモナドが理解できるという類の説明(モナドチュートリアル)ではありません。 試験的にモナド則を図示しました。コードを図に転写して、多少の解釈を加えたものです。もし分かりにくければ無視しても構いません。 この記事はHaskell 超入門シリーズの番外編です。 モナド則は return と >>= の動きに関するルールです。 return x >>= f == f x m >>= return == m (m >>= f) >>= g == m >>=

    モナド則がちょっと分かった? - Qiita