テック-その他

2分木のノード削除

binary treeのノード削除 削除対象のノードの子が左右両方にある場合、削除後、親要素にどちらの要素をぶら下げれば良いか? 10 5 15 2 6 17 1 3 というツリーがあった場合、ノード5を削除した場合、どういうツリーになるか?という話し。 答え:子左要素の最…

AVL木の平衡原理

AVL木の平衡原理 AVL木とは どのノードから見ても左右の子ノードの深さの差が1以内のツリー構造を指す。以下はAVL木を保つ為の考え方。 1重回転 例えばこんなbinary treeがあった場合、ノード10から子孫ノードを辿った場合、子孫の高さが2階層以上の差がある…

僕は再帰が書けない

最近、かなーり古いアルゴリズム本でアルゴリズムの復習をしたりしている。 やっぱ再帰は苦手だな〜。という愚痴。 以下はC言語で、要素数4つのint配列、{0, 0, 0, 0}の要素の合計値が1以上4以下になる場合の配列の組み合わせを示したもの。 中々理解出来な…

大規模な運用に備えて:マイクロアーキテクチャ(終)

下流サービスの機能不全 各サービスは接続する下流サービスが止まった場合、または機能低下を起こした場合、どういった振る舞いをするかを常に考えておく。 タイムアウトを設けて、一定時間以上応答がない場合は例外処理をするのが一般的だけど、タイムアウ…

PHPで実装したソケットサーバにUnity C#から接続する

ちょっとした同期オンラインを試してみたかったので書いてみました。 PHPでソケットサーバーを立てる Unityからsocket通信するプログラム試したくて、socket-server立てるのに久しぶりにPHP書いてる。PHP便利!— Fumiya Ichikawa (@LET__IT__RIDE) December …

readlineのバージョンが上がってたでござるの巻き

ちょっと必要があってpsqlを使おうとしたら... $ heroku pg:psql --> Connecting to postgresql-round-81223 dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib Referenced from: /usr/local/bin/psql Reason: image not foun な…

Swift WKWebView、JSを利用したネイティブアプリ内で完結させるスクレイピング

サーバを持ちたくなくてネイティブアプリ側で外部サイトのHTMLをスクレイピング完結したい場合。 WKWebViewでページ取得するのが手取り早い。要はWKWebViewが読み込んだHTMLをスクレイピングしてしまおうという作戦。 ちなみに実験的に検証しただけなのでsto…

Mac Keynoteでテキストにアウトラインをつける

対象のテキストを選択して、 フォーマット - テキスト - スタイル - 歯車アイコンから ちなみに明るい色でシャドウをつけると文字が光っているように見える。 これは、ぼかし30、オフセット0、不透明度100で黄色っぽい色でシャドウを入れた例。

個人開発アプリ リリース後2ヶ月経過の記録

7月の頭にいくつかのAndroidアプリをリリースして、約2ヶ月が経過した。 www.letitride.jp 経過記録 で、どういった状況になっているかというと、ゲーム系RSSアンテナ情報アプリがやはり強い。 FF14、DQX、モンハン、ゲーム総合の4つが伸びた。 強い、といっ…

JavaScript ローカルストレージの保存と参照

ブラウザは接続先のドメインごとにWebストレージ領域を割り当てられる。ストレージにはkey,valueの形式で保存可能。 ブラウザが変わればストレージ領域も変わる。 (そういったコードを書かない限り)サーバに送信しない。サーバから操作できない。がCookieと…

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

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

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

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

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

例えば、こういったテーブルがあった時、 hoges foos id id title 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…

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…