tsurutanのつぶやき

備忘録としてつぶやきます

cypress + nyc + next.js + CircleCI + codecov での環境構築

TL;DR cypressとnyc, CircleCI, codecovでの環境構築を行うステップと、CircleCIのconfig.ymlの共有と解説を行います。 これでe2eテストをCIで実行し、テストカバレッジをプルリク上で確認できより高品質なコードを保てるようになるかと思います。 前提 すで…

HerokuでIP制限

HerokuにてRailsアプリケーションを公開したは良いのですが、海外からのアクセスが多すぎてdynoが耐えきれず response timeout が大量発生してしまいました。 そこで今回はdynoに負荷をかけずに海外からのアクセス制限をした方法について書きます。 はじめに…

Migrate ActiveAndroid to Room

以前作成したAndroidアプリのORMとしてActiveAndroidを使用していたのですが、Android 8.0からreceiver上でactive android経由でデータベースにアクセスすると下記のようなエラーが発生するようになりました。 java.lang.RuntimeException: at android.app.A…

【Android】 getApplication() をCustomApplicationにCastできる仕組み

Android開発をしたことがある方は、Activity, FragmentなどでgetApplication を使いApplicationを呼び出しCustomApplicationにCastしたkことがあるのではないかと思います。 そのときなんでApplicationをCustomApplicationにCastしたときjava.lang.ClassCast…

ViewPagerの入れ子構造でFragmentが表示されない時の対処

ViewPagerを使ってフラグメントを表示するときに普通 FragmentPagerAdapter を継承したカスタムのAdapterにFragmentManagerを引数として渡すと思いますが、ViewPagerが入れ子構造をしている場合、子のフラグメントのViewが表示されない問題が発生してしまい…

Combining Textual Entailment and Argumentation Theory for Supporting Online Debates Interactions の概要と考察

今回は2012年に自然言語のトップカンファレンスであるACLに投稿されたCombining Textual Entailment and Argumentation Theory for Supporting Online Debates Interactionsについての概要を説明し、考察してみようと思います。 ACL | Association for Compu…

Predicting Quality Flaws in User-generated Content: The Case of Wikipedia の概要と考察

2012年にACMというカンファレンスに出された「Predicting Quality Flaws in User-generated Content: The Case of Wikipedia」という論文を読み考察をしました。 www.acm.org [原文] http://www.uni-weimar.de/medien/webis/publications/papers/stein_2012i…

Android Fabricを使ったクラッシュ分析 テスト配布

今回は今買収されそうで話題なTwitter社のFabricを紹介したいと思います。 Fabricとは、開発者の方々がより良いアプリケーションをつくるために便利なモジュール形式のモバイルプラットフォームです。 FabricをAndroidに導入することで、Web上のサイトからク…

Picasso を使った画像表示

今回は神Jake Wharton 氏が作成したPicassoという画像のダウンロードやらキャッシュをやってくれるライブラリーについて紹介したいと思います。 使い方 使い方は至って簡単!! Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView)…

Android ローカライゼーションでテキスト幅を揃える

Androidは多くの言語が搭載されており、開発者にとってアプリケーションの多言語化は切っても切れない関係です。 単言語化で最も気をつけなければならないことは、あるフレーズを別の言語に置き換えたときに、テキストの長さが変わってしまいデザインが崩れ…

Android UI Automator Viewer を使った開発

転職や就職などをして、既存のサービスの開発に携わることがある人はコードとViewの対応関係を調べるのに苦戦した経験があるのではないのでしょうか? プロジェクトのコードを読んでいちいち対応関係を見るのは場合によっては非常に効率が悪いです。 そこで…

動作が遅い!?Macを最適化して高速化しよう!

コンピューターシステムの動作が遅くなることはよくあることです。 その原因として、ウィルスやスパイウェアがPCに入り込んでいるのが考えられます。 Macは他のPCに比べてこのあたりしっかりしていますが、それでも動作が遅くなってしまうことがあります。 …

Android 強制アップデートの実装方法

今回はAndroidアプリの強制アップデートの方法について説明したいと思います。 現在リリースされているアプリケーションで致命的なバグを見つけた時、すぐにでもそのバグを取り除きたいですよね? でも、Androidで自動アップデートを設定していない人だと、…

Android Facebookのようなボタンの実装

今回はFacebookのようなボタンお実装方法について説明します。 使用するのはShineButtonというライブラリーです。 github.com 使用方法 使用方法はとても簡単です。 まずはxmlに

Wantedly プレミアムに登録してみた結果

皆さんWantedlyについてご存知ですか? www.wantedly.com Wantedlyとは 運命のチームや仕事に出会えたり、人脈を広げ、ビジネスの情報収集に使えるビジネスSNSです と公式には書いてあります。 実際にWantedlyに登録しておくと自社の募集を出せたり、また自…

Pythonでスクレイピングをしてみよう!

今回はPythonでスクレイピングをするやり方について説明しようと思います。 まだpythonを始めたばかりスクレイピングって難しそうだけどどうやってやるの?と苦しんでいる読者を想定しています。 Scrapingでできること 店舗一覧、商品一覧を抽出する ・ニュ…

Android レイアウトの境界線を表示して開発速度を上げる

Android Studioで開発をしている場合、デフォルトのLayout Viewerや最近実装されたConstraint Layoutでだいぶデザインの調整がしやすくなっているのですが、いかんせんアプリを動かしてみると想定外のバグが発生してしまします。 そこで、アプリを起動しなが…

Android 簡単にテレビ電話を実装する [Skyway]

今回はAndroidでテレビ電話を実装する方法を説明したいと思います。 使用するのはNTT Communicationsさんが提供しているSkywayというライブラリーです。 SkywayはWebRtcを使って、テレビ電話を実現したもので通信処理などの煩わしい部分をこのライブラリーが…

Android Retrofit 2 を使った Http通信

今日はRetrofit2を使ってAndroidのHttpレスポンスの実装方法を紹介したいと思います。 Retrofit2って? Retrofit2はSquare(Jake 神)が開発しているネットワークアクセスライブラリです。 特徴的なのはサーバ側のAPIをインタフェースとして定義することで、…

ランダムフォレスト(機械学習)による文章分類

前置き 今回はランダムフォレストという手法で機械学習を行い文章の分類を行おうと思います。 例えばこのような生物医療に使われるデータベースがあったとします。 name of enzyme alkaline phosphatases comment Comparison with alkaline phosphatases and…

アプリを大量生産してGoogleを怒らせた話

先日RSSをキーワード入力から登録できるアプリケーションを開発しリリースしました。 ところが。。。 なんとポリシー違反ということでアプリが停止されてしましました。 露骨な性表現を含むコンテンツに関するポリシーに違反だったのですが、どうやら検索キ…

AndroidでJava8を使う(Jackツールチェーン)

Jackツールチェーン 今回はAndroidでJava8を使う方法を紹介したいと思います。 以前までretrolambdaというライブラリーが主流でしたが、Android StudioがアップデートしJackツールチェーンというAndroid StudioでJava8が有効にできる素晴らしいツールが使え…

Minimum Edit Distance - 文字間の距離を計測するアルゴリズム

Minimum Edit Distance 今回は文字間の距離を計算するMinimum Edit Distanceについて説明したいと思います。普通に暮らしていたらMinimum Edit Distanceは使わないでしょうね笑それでも説明します。 まずは具体的な例としてintentionとexecutionという文字間…

ButterKnifeを使ってコードを綺麗にしよう

ButterKnifeとは Android界で神と崇められているJake Warton氏が作成したView Injectionライブラリー。 普段AndroidではViewをbindするときに TextView text = (TextView) findById(R.id.text_view); としていたがButterKnifeを使えばこのようなコードを書か…

Rubyでスクレイピングをしてみよう!

Rubyでスクレイピングをしてみよう! Scrapingでできること ・店舗一覧、商品一覧を抽出する ・ニュースサイトからヘッドライン一覧を抽出する ・ページのURLを全て抽出する などなど今まで煩わしかったことが解消できます! Rubyの開発環境 すでにRubyをイ…

アプリ 広告収益 課金収益 インストール数 

今回は以前紹介したルーチンワーク管理アプリの、広告、課金収益、インストール数を公開したいと思います。 インストール数 だいたい現在の時点でインストール数は2200くらいです。 1日40~50インストール増えている感じです。 2ヶ月前にリリースしたので月1…

三日坊主にならないためのアプリをリリースしました!

日頃このようなことで悩んでいませんか? 「毎週やっていることなのに忘れていた!!」 「毎週やることに新しい習慣を取り入れたい!!」 「今日やるべきことをすぐに確認して安心したい!!」 そんな時に使ってほしい、ルーチンタスクを管理するアプリを作…

UNIX コマンド集

UNIXシェルとは UNIXオペレーティングシステムおよびUnix系システムの従来からのユーザインタフェースを提供するコマンドラインインタプリタまたはシェルである。 です。コマンドを覚えてターミナルマスターになりましょう。 コマンド一覧 シェルコマンド コ…

Main LayoutをDrawerと一緒に動かす Android

公式では推奨されていませんが、私的にこういう挙動が好きという方は是非参考にして実装してみてください。 アクティビティ JAVA mDrawerToggle = new ActionBarDrawerToggle(this, drawer, R.string.app_name, R.string.app_name) { @Override public void …

DNSの仕組み

DNS(Domain Name System)とは インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名とIPアドレスの対応関係を管理するシステム。企業などの組織内ネットワークの内部でのみ運用されるドメイン名を管理するシステムも存在するが、一般的にはイ…