テック

Rails Model.to_jsonでデータを加工して吐き出す

例えばDBに,AAA,BBB,CCCのように先頭のカンマが不要なデータが入っていて、対象をトリムしてjson出力したい場合などなど。 Model側でtrimするメソッドを定義 インスタンスメソッドで加工したいカラムに対してメソッドを定義する class FooModel < Applicatio…

Ruby アメブロのRSSから画像を取得する

アメブロのimage情報はsummaryの中に<img>として配置されている。 また、ブログ文中で使用されている絵文字も画像として取り扱われているので、私の場合、幅高さが150px以下の画像(多分、実サイズは96px)は認識しない画像として定義した。 画像サイズの取得は先日…

Android WebViewにアメブロブログの画像を表示する

AndroidのWebViewでアメブロブログの画像が出ない問題。 どうやらアメブロはブラウザのDomストレージにアクセスしているようで、WebViewにストレージアクセスを設定しておく必要がある。 エラーログ Uncaught "TypeError: Cannot read property 'getItem' of…

Kotlin 日付の計算

都度ググってしまうのでここにメモしておく。 日時の加算、減算 Calendarクラスを使用する。 この例では7日前をDateオブジェクトで受け取る。run{}を使うとすっきり書ける。 val prev_week:Date = Calendar.getInstance().run { add(Calendar.DATE, -7 ) //7…

Kotlin Listの中の特定の値を持ったオブジェクトをfilterする

多分、みんなListの中にオブジェクトをぶち込んで利用することが多いと思う。 Listの中の特定のオブジェクトをいくつかfilterしたい場合とかどうやってるのかなあ...と思った。 こんな感じで書いたんだけど果たして... この場合はmuteListの中に含まれるオブ…

Android ViewPagerで表示されたFragmentによって、ActionBar Itemの表示を切り替える

ViewPagerで表示されているFragmentによって、不要なActionBar Itemがある場合に非表示とする。 Itemオブジェクトの保存 MenuItem生成時に表示制御を行いたいItemをメンバとして記録しておく。lateinitで宣言すると、ViewPagerに渡した時にまだ初期化されて…

Android Fragmentの中にSupportMapFragmentを配置する。

例えばViewPagerに配置したFragmentに地図を配置したい場合などなど。 そのままFragmentのレイアウトにベタっとSupportMapFragmentを配置して、

Rails 主キー以外での特定カラムのアソシエーション

例えば、こういったテーブルがあった時、 hoges foos id id foos hoge last_foo no hogesはfoosをhas_manyで持つ関係とする。 通常はこういうfoosを指定すれば、foos.hogeに対してリレーションを貼れるんだけど、 has_many :foos last_fooカラムでfoosの特定…

Rails カラムの削除と追加

作業メモ。 TEXT型からINT型に変換したい時はchange_columnしようとしても精度が合わず失敗する場合がある。 Caused by: PG::DatatypeMismatch: ERROR: 列"typo_column"は型bigintには自動的に型変換できません HINT: 必要に応じて"USING typo_column::bigin…

Android MapViewを利用する

APIキーの取得 MapViewを利用するには予めAndroid用GoogleMapのAPIキーを取得しておく必要がある。 Google Cloud PlatformでAPIキーの取得を行っておく。 プロジェクトを作成後、APIとサービスを有効化からMaps SDK for Androidを選択すれば良い。 プロジェ…

俺のイカれたアプリメンバー達を紹介するぜえ〜 個人開発で毎日1アプリをリリースして1週間経った感想

まずはFFIVタイムズ! play.google.com これは作者自身もプレイしてるオンラインRPG、FF14というゲームのアンテナアプリだ。 自身もiPhoneのFF14のアンテナアプリ使ったりするんだけど、広告が邪魔だったり、サムネが重かったりしてギガ食いそうだから不満部…

Vue.js HTML属性に値をバインドする

v-bind:要素名 要素名に対して値をバインドする var app1 = new Vue({ el: '#app1', data: { yahooURL:"http://yahoo.co.jp/" } }) <h2><a v-bind:href="yahooURL">yahooへ</a></h2> <h2><a :href="yahooURL">v-vindを省略したこの記述も等価</a></h2> v-bindで複数の要素をバインドする const imageURL = "https://assets.media-platf…

Vue.js データバインディング入門

HTML内に記述する{{}}はマスタッシュ構文と呼ぶらしい。 マスタッシュに式を記述 var app1 = new Vue({ el: '#app1', data: { tel: '00,0000,0000' } }) 00-0000-00と日時が表示 <div id="app1" class="frame"> <h1>{{tel.split(',').join('-')}}</h1> <h2>{{ new Date() }}</h2> </div> 但し、マスタッシュ内に変…

Vue.jsに入門しました

エディタとブラウザ VSCodeを使用。Live ServerとVeturとPrettierを入れておけば便利と見たので、それらを入れておいた。 ChromeにはVue.js Devtoolsのプラグインを入れておいた。これはLive Serverで配信したwebページをChromeのデベロッパーツールで確認し…

Ruby gem twitterでTwitterAPIアクセスする

gem twitteを利用するとTwitterのAPIに簡単にアクセスできる。予め、consumer keyとaccess tokenの各keyを取得しているものとする。 gem 各APIキーをハードコードするとキーが漏洩してしまうので、.envに記載できるようdotenv-railsも併せて導入しておく gem…

個人開発者向け無料でできるお手軽twitterマーケティング術

必要なもの twitterアカウント。出来れば、ボット臭くない本垢。 準備 twitterで予め認知してほしいアプリのLPやストアページ、またはWebサービスなどのURLをつぶやいておく。 ◯◯のアプリを公開しています。とても頑張って作りました。良かったら使って下さ…

Ruby オブジェクトまたはクラスに指定したメソッドがあるか調べる

これいつも忘れるので記録しておく。メタデータからオブジェクトが定義される時にいつも困る。 オブジェクト obj.respond_to?(:method_name) クラス ClassName.method_defined?(:method_name) private method 使うことはあまり無いと思うが、privateなメソッ…

Rails カラム名でエラーとカラム名称変更

エラー Railsのカラム名にtypeという名称を使用していると以下のようなエラーが出る /app/vendor/bundle/ruby/2.5.0/gems/activerecord-5.2.2.1/lib/active_record/inheritance.rb:226:in `rescue in find_sti_class': The single-table inheritance mechani…

Ruby FeedjiraとNokogiriでRSSフィードの画像情報を取得する

RSSフィードによってはimage情報が取得できないものもあるだが、大体のRSSはFeedjiraが解析したcontentの中に情報が含まれる。 Gemfile gem 'feedjira' gem 'nokogiri' $ bundle install を済ませておく。 RSSの解析 とても簡単。 rss = Feedjira::Feed.fetc…

最新バージョンのライブラリがAndroidXのサポートライブラリに依存する

現在の導入手順に従って、最新のfirebase-coreのライブラリ implementation 'com.google.firebase:firebase-core:17.0.0' を入れると、利用しているSupport Library次第ではAndroidXのSupport Libraryが必要と叱られます。 manifest merger failed : attribu…

The number of method references in a .dex file cannot exceed 64K.

開発中のビルドは問題なく通ってたのですが、ストア公開用の署名付きビルド作成時にこういったエラーが発生し、ビルドが失敗しました。 Error: null, Cannot fit requested classes in a single dex file (# methods: 71451 > 65536) The number of method r…

Androidアプリ FF14ブログアンテナアプリをリリースしました

FFXIVのブログアンテナアプリ、FF14タイムズをリリースしました。Android端末をお持ちのFF14プレイヤー様は攻略やプレイヤーの交流に是非、お役立て頂ければ幸いです。 play.google.com 同様のアンテナアプリはいくつかあって、電車の中等でよく利用するので…

VisibilityAwareImageButton.setVisibility can only be called from within the same library group

floatingActionButtonを floatingActionButton.visibility = View.INVISIBLE のようなことをすると、 VisibilityAwareImageButton.setVisibility can only be called from within the same library group (groupId=com.android.support) less... (⌘F1) Inspe…

Android インターネット上の画像をImageViewで表示するのはGlideが便利

インターネット上に置かれている画像ファイルをダウンロードして表示するにはGlideが便利。 簡単な記述で接続からファイルダウンロード、描画、キャッシュの管理まで行ってくれます。 github.com 導入 app/build.gradle implementation 'com.github.bumptech…

Rails 定義済みテーブルに制約を追加する

覚える気もなくいつもググって手間がかかるのでここに記録しておく。 not null & default 大体いつも2つセットで使うことになる。 class ChangeColumnNameToTables < ActiveRecord::Migration[5.2] def change change_column_null :テーブル名, :カラム名, n…

Android RecyclerView & CardViewのonClickイベントにハマる

昨日、RecyclerViewのクリックイベントがどうしても取得できずハマってしまったのでメモしておきます。 RecyclerView onClickイベントの基本系 Layout RecyclerViewの中のitemを以下のようなレイアウトにした場合、

Android ViewのZ軸、重なりの高さを管理する

RecyclerView & CardViewの上にprogressBarを表示しようとした時、CardViewが最前面に表示されprogressBarがCardViewの下に潜ってしまうケースがある。 ViewのZ軸高さの設定 android:elevationでZ軸の高さを設定する。他Viewにandroid:elevationの設定がない…

Heroku上のDBにローカルpg_dumpでインポート/リストアする

ローカルのDBで予めworkspace/にpg_dumpを取っておく。 $ heroku pg:psql < workspace/dump.sql

自分メモ:Store用アプリアイコン作成

ストアに上げる際のアイコンの作成手順をいつも面倒くさいなあと忘れてしまうので次の為に残しておく。 特にAppStoreは解像度がきっちり合ってないとダメ。 ベースとなるアイコンの調達 iconionから背景が透過のアイコンをダウンロード iconion.com なぜ透過…

Rails Herokuでバッチ処理実行

Rails Taskの記述 Railsを通してコマンド実行したい処理は/lib/tasks/に配置したファイルに記述する ファイル作成例 /lib/tasks/crawler.rb class Tasks::Crawler def self.execute #サイト巡回処理 #サイトの登録処理 Modelが利用できる Site.save() end en…