テック-その他

RailsからS3オブジェクトをアップロードする

RailsアプリケーションからS3オブジェクトを作成します。 gem aws-adkが必要となるので、Gemfileに記述し、記述後bundle installを行います。 gem 'aws-sdk' AWSクレデンシャルの設定 S3にアクセスロールがあるIAMユーザのクレデンシャルをAWSクライアントに…

Heroku PostgreSQLのデータをpg_dumpする

ローカルでpg_dumpが実行できる(PostgreSQLがインストール済など)の前提で。 Heroku DBのクレデンシャルを確認 $ heroku pg:credentials:url --app YOUR_APP_NAME で、クレデンシャルが確認できる。 Connection information for default credential. Connect…

OSアップデートしたMacにRailsを再構築したら結構大変だった話し

opensslの章 しばらくメンテしていないRailsアプリを久しぶりに起動しようとすると以下のようなエラーが。 Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError) 多分、rubyが指すopensslのバージョンとアップデートされたopenss…

線形回帰ウエイトの求め方メモ

メモ。 線形回帰のウエイトの求め方。 xは説明変数、yが実測値。Lは評価関数sum( (y[i]-(w * x[i])) ^2 ) 評価関数の式をウエイトWで微分した時に0となるウエイトWを求める。 これを式変形していくと最終的に以下の計算式になる。 c1 = 0; c2 = 0; for (i = …

リッジ回帰について

線形回帰では、実際の分布より学習した傾きが大きくなりオーバーフィッティング(過学習)で精度が出ない場合がある。 精度を出す場合、正則化(リッジ回帰、ロッソ回帰)を用いて精度の調整を行う。 計算方法 線形回帰のオーバーフィッティングは傾きが大きくな…

主成分分析と因子分析

メモ。 主成分分析 多次元からなる説明変数行列の次元の圧縮。 主成分に対しての説明変数のウエイトなんかもわかる。 主成分は総合的な評価。第2成分は主成分と直交する線。第2成分のあたりまで求めるのが一般的らしい。 重回帰分析に近いのかな。と思ったけ…

行列計算の復習

行列の足し算 行列の掛け算 行列どうしのかけ算は、「左の列数」と「右の行数」が等しくないとかけ算できない 計算結果の行列は左側の行数と右側の列数の行列となる 単位行列 単位行列はその対角成分に1が並び、他は全て0となる行列。 逆行列 ある行列と掛け…

統計データ 2変数の関連指標

2変数の相関は2つのデータの性質によって扱う指標を定める。 単相関係数 数量データと数量データの関連度合い。 偏差平方和 = sum( (x[i] - xの平均)^2 ) 単相関係数 = (x[i] - xの平均)(y[i] - yの平均)の積和 / srqt( xの偏差平方和 * yの偏差平方和 ) 相…

統計データ 正規分布とカイ2乗分布 

基準値 数量データは等間隔のデータだが、標準偏差によって、各間隔の価値のようなものを定めることができる。 例えば、距離mのデータ列では、散らばりの少ないものは、1mの基準(価値)は他とより区別できる値となり、散らばりの大きいものは1mの価値は影響を…

書籍: Elasticsearch実践ガイド

こちらの本もKindle unlimitedで読み放題で読めます。 日本語での書籍は比較的新しい表題の「Elasticsearch実践ガイド」とASCIIから出版されている「高速スケーラブル検索エンジン ElasticSearch Server」の2冊が有名。 但し、「高速スケーラブル検索エンジ…

Elasticsearch Analyzerで解析した文を検索する

Analyzer Analyzerは以下の処理を行うことを目的とした機能。 全文検索で利用する為にインデックス、クエリ文字列を単語分割する処理。 言語固有の表記揺れの吸収 表記揺れとは? ステミング 語形の変化 making -> make, dogs -> dog, 食べる|食べた -> 食べ…

Elasticsearch 基本的な検索クエリ操作

クエリ操作 基本型 $ curl -XGET 'http://localhost:9200/<インデックス名>/_search' パラメータ指定 (Query String) $ curl -XGET 'http://localhost:9200/<インデックス名>/_search?q=<フィールド名>:<検索ワード>' クエリDSL $ curl -XGET 'http://localh…

Elasticsearch7 構成概念とインデックスの基本操作

Elasticsearchを構成する概念 ドキュメント Elasticsearchに格納するデータの単位。RDBでいうところのレコードの概念。 primary keyとなるIDで管理され、ドキュメント作成時に指定可能。指定しなければ自動で採番される。 フィールド text型 格納する際、単…

SQL WITH句で自己結合を再帰的に問い合わせる

SQL WITHクエリ、今まで使ったことがなかったのでメモしておきます。 自己結合を再帰的に問い合わせる時に使用します。 再帰のイメージ WITH句で仮想テーブルを作成し、再帰クエリでUNIONしていくイメージです。 TREEテーブル表 id parent_id 1 null 10 null…

OSI参照モデル レイヤ4とレイヤ5とレイヤ6

レイヤ5とレイヤ6の記憶がいつも曖昧なので再勉強しました。 レイヤ4 トランスポート層 レイヤ4はエンドツーエンドの通信規格。 TCP TCPでは以下のような規格。 3ハンドシェイク ウィンドウ、シーケンス番号と確認応答番号による伝達メッセージの到達確認 ポ…

リピーターハブとスイッチングハブ

リピータハブ リピーターハブは接続された機器すべてに対して受け取ったパケットをブロードキャストする。 OSI参照モデルでいうところのレイヤ1の規格。接続された機器の宛先を管理しない。 ちなみにL1でスイッチするものもあるらしい。 L1スイッチの使い道:…

書籍:Docker/Kubernetes 実践コンテナ開発入門 感想

この書籍を購入する以前もDockerは触っていたんだけど、都度調べながらコマンドを実行したり、ymlを書いたりしてた。 基本を学びたいなー。が半分、Kubernetes触ってみたいなー(笑)。が半分で本書を購入。 Dockerの基本的なコマンドから始まって、DockerHub…

書籍:HTML5/CS3モダンコーディング 感想

僕は前職で一応は、10年以上Webサービスの開発や運用をしていたんだけど、仕事のメインは、 なんと管理職だったのでチームマネジメント スマートフォンのリクエストに応じたAPIの設計・開発 AWS・インフラの構築と運用 主にDBとキャッシュ周りのパフォーマン…

書籍:データ収集からWebアプリ開発まで 実践で学ぶ機械学習活用ガイド 感想

機械学習はUdemyのキカガクの講座を購入したり、オライリーのPythonではじめる機械学習でscikit-learnを触ってたりで軽く遊んでた程度。 機械学習したpredictしたものをどうアプリケーションと連携するか?が興味あって購入した。 購入して気がついたんだけ…

書籍:グラフ型データベース入門 - Neo4jを使う 感想

Neo4jで遊んでいるとどんどん興味が湧いてきて購入。というかNeo4jの日本語の書籍ってこれだけじゃないのかな? グラフ型DBとは? ちょっとだけ説明。 要はRDBのリレーションに 指向性を持たせることがでる リレーションにデータを持つことができる。 RDBで…

書籍:オライリー:シングルページWebアプリケーション 感想

こちらも終わらせていたので感想を。 ハンズオン形式でJS (Jquery) + Node.js (Express) + MongoDBでチャットアプリを構築する。 今だと、MongoDBなんかはDockerでサクっと用意できるので簡単に試せたりできた。 MongoDBにはユーザ情報とそのログイン状態が…

関数合成について勉強したこと

Haskellの関数適用と関数合成の違いを整理したのでメモしておきます。 関数合成とは (.)という中置関数を使い2つの関数を結合して新しい関数を作成すること。 ghci> :t (.) (.) :: (b -> c) -> (a -> b) -> a -> c 上記のように、合成後の関数はaとなる引数…

IntelliJ Scala Java SDKのバージョンを変更する

いつも忘れるので備忘録。 File -> Project Structure... -> SDKから変更できる

Docker PHPにcomposerからライブラリ を入れようとしたらハマった話し。

composer自体はサクっと入る Dockerfile FROM php:7.3-fpm COPY --from=composer:latest /usr/bin/composer /usr/bin/composer ライブラリ を入れる $ docker image build . $ docker container run -d <imageID> $ docker exec -it <containerID> bash $ composer require <package> とする</package></containerid></imageid>…

Docker上のjupyterでselenium.webdriver.Chromeを動かす

seleniumとchromedriverのインストール $ apt install -y chromium-browser $ apt-get install chromium-chromedriver $ pip install -U selenium ダメなケース from selenium import webdriver browser = webdriver.Chrome() browser.get('https://...') イ…

MediatorとObserverの違い

復習したのでメモ。 Mediator mediatorは状態が変更された時にmediator自身に変更を通知するオブジェクトを返す。 実装のイメージ。コンパイルは通らない。 class mData{ Mediator mediator; change(){ mediator.notify(); } } class Mediator { mData mData…

深さ優先探索の探索順配列モデルの生成

お勉強がてら書いてみた。 こういう数値リストを [5, 20, 22, 35, 64, 71] 組み合わせごとの探索順のツリーにする。 言語はvar_dumpが綺麗なPHPで。

ValueObjectについてのメモ書き

ValueObjectとは? クラスプロパティにプリミティブ型ではなくオブジェクトとして定義する。 class User{ int volume; // プリミティブ型 Volume volume; // ValueObject } メリット整理 型安全、null安全、値安全を構築しやすい コンストラクタでフィルター…

浮動少数と丸め誤差

floatやdouble型をloopカウンタや終了条件にすると意図したループ回数にはならない時もあるので注意。 丸め誤差 限られたビット数で浮動小数点数を表現した時、実際の値と近似した値で誤差が出る。 float f1, f2; f1 = 0.1f; f2 = 0.100000001f; printf( " %…

B木の構造の整理

ノードページの構造 ページバッファに整列済みのデータを配置 { 40 } { 40, 63 } { 24, 40, 63 } { 24, 40, 58, 63 } ページの分割 バッファが溢れた時、ページの分割を行う。 { 24, (+ 31), 40, 58, 63 } ┏ {40} ┓ { 24, 31} {58, 63 } さらにデータを追加 …