2017-01-01から1年間の記事一覧

sshjを試してみた

javaで作られているsshクライアントであるsshjを試してみました https://github.com/hierynomus/sshj/blob/master/examples/src/main/java/net/schmizz/sshj/examples/LocalPF.java 単純にssh経由でコマンドを実行するだけでなくsshプロトコルを利用している…

Haskellで100マス計算を解いてみた

Haskellでの100マス計算を以下のように実装しました。 module Try.Hyakumasu where data MathData = MathData {col :: [Int], row :: [Int]} deriving (Show, Eq) hyakumasu :: (Int -> Int -> Int) -> MathData -> [[Int]] hyakumasu f x = [f c <$> (col x…

Haskell学習中のメモ

関数を定義する 高階関数 ラムダ式 map 型、型クラス 型コンストラクタと型引数 型変数 型制約 代数的データ型を定義する 複数のデータコンストラクタを持つデータ型の定義 データの正格性フラグ フィールドの値の差し替え 型シノニム newtype 型クラス ファ…

kaggleのTitanic問題をといてみる

kaggleでチュートリアルがわりに使われているTitanicの問題を解いてみて実際に行われている分析の流れを把握できるようにしたいと思います。 kaggleでは個人の解答が公開、議論されているので普段分析をしない人でも学習にはちょうど良さそうな気がします。 …

sbt assemlby実行時にリソースフォルダを変更できるようにしたい

まずデフォルトのリソースフォルダを変更してみる sbt assemblyで実行可能jarを作成する際通常は"src/main/resources"がリソースフォルダとして使われますが、build.sbtにresourceDirectory in Compileの設定をすることによりデフォルトのリソースフォルダを…

Sparkで状態を持つobjectを使い回す方法について調べてみた

Sparkでの開発時に既存のjava資源を使用するのはよくあると思うけど、objectが状態を持っていて使い回す必要がある場合も考えられるのでその場合どうすれば良いのか調べてみました。 まず以下のように引数で与えた値だけ内部のカウンターを増やすクラスがあ…

ApacheSparkで扱うobjectのSerializableの必要性について

ApacheSparkで扱うobjectのSerializableの必要性について hiveやファイルからデータを読み込んだ直後値はRDD, Dataset, DataFrameになっていて、少ないデータに対して何回もfilter処理を行う必要がある場合に一旦collectして配列に変換しdriver内で処理した…

Scalaでseqを操作してみる

scalaでSeqを操作してみる まず以下のcase classがあったとし、 case class Element(id: Int, time: java.sql.Timestamp) 初期のデータとして以下を保持する val elementSeq = Array( Element(1, new java.sql.Timestamp(new DateTime(2017, 8, 10, 16, 13).…

sparkからhiveを利用してみる

spark-shellにてクラスパスを指定する hive SQLを実行してみる summarizationsパターンを試してみる Datasetのapiを実行してみる spark-shellにてクラスパスを指定する spark-shell --driver-class-path 対象クラスパス 開発時にちょっと修正後にいちいちビ…

Hiveの環境構築

Hive環境構築 インストール 1.javaのインストール 2.Hadoopのインストール 3.Hiveのインストール hiveのメタ情報保存先の設定 動作確認 Hiveserver2を起動してbeelineで接続してみる hiveqlを実行してみる Apache SparkからHiveを利用する spark-shellでイン…

Apache Sparkのアプリをデバッグする

sparkアプリケーションのデバッグ 1.sbt assemblyでjarファイルを生成しspark-submitコマンド実行サーバにアップロードする 2.spark-submitコマンド実行サーバにポートフォワードの設定付きでssh接続する とりあえず5039ポートを使ってみる ssh -L 5039:remo…

pycharmを使ってpysparkの開発を行った際に"from pyspark.sql.functions import lit"でエラーがでたのを調べて見た

pysparkの開発を行った際に"from pyspark.sql.functions import lit"でimportできないとエラーが出たのを確認した時のメモ 実際は以下のようにpyspark.sql.functions.py内で以下のようにして動的にメソッドを追加している。 def _create_function(name, doc=…

Sparkで単体テストをしてみる

Apache Sparkで単体テストをしてみる Intelij IDEAでsparkの単体テストを書いてみたのでメモ build.sbtの設定を変更 まず、build.sbtに以下の設定を追加する。 parallelExecution in Test := false “build sbt"で複数のテストが同時に動いた場合に発生するSp…

Hadoopについて調べてクラスタを構築してみた

並列分散処理入門 並列分散処理とは 並列分散処理ツール登場の背景 Hadoopについて 概要 HDFS Mapreduce YARN Sparkについて 概要 用途 hadoopクラスタ管理 Hadoopクラスタ構築 Hadoopクラスタ上でSparkのプロジェクトを動かしてみる 並列分散処理入門 Hadoo…

Angularでカスタムディレクティブへの双方向バインドに対して調べてみた

Angularでカスタムディレクティブへの双方向バインドに対して調べてみたときのメモ コンポーネント内のメンバ変数の変更を監視する 自作のカスタムディレクティブに対して双方向バインディングしてみる Outputを受け取る際に変数を変更する Outputのカスタム…

深層学習(青本) 1章. はじめに

深層学習の1章読書まとめ 研究の歴史 多層ニューラルネットへの期待と失望 パーセプトロンの欠点 誤差逆伝搬(多層ニューラルネット)の欠点 畳み込みニューラルネットの誕生 多層ネットワークの事前学習 特徴量の学習 深層学習の隆盛 研究の歴史 多層ニューラ…

AnularJSのチュートリアルをやってみた

Angularのチュートリアルを通して使い方を覚えたいと思います。 今回学習用で作成したプロジェクトは以下からとってこれるようにしています。 GitHub - teruuuuuu/angular_handson 開発環境構築 angular-cliを使えるようにする Atomで開発 開発 angular-cli…

JavaScriptフレームワーク調査

JavaScriptのモダンフレームワークでどれを選べば良いのか調査した内容になります。 AngularJS テンプレート DI テスト 所感 React テンプレート テスト Redux 所感 Vue テンプレート テスト 所感 結論 AngularJS googleによっって開発されているMVVMフレー…

DDD概要

社内の勉強会に備えてのメモ DDDとは何か? DDD(エヴァンス本)の目次 第1部 ドメインモデルを機能させる 第2部 モデル駆動設計の構成要素 第3部 より深い洞察へ向かうリファクタリング 第4部 戦略的設計 DDDとは何か? エリック・エヴァンスがソフトウェアの…

JJUG_CCC 2017 Spring

2017/05/20(土)に行われたJJUG(ジェイジャグ)に参加してきました。JJUGは毎年2回春と秋に行われていて、今回で20回目とのことでした。1コマ45分のセッションが複数のルームで同時に行われ参加者はどれに出るか自由に選ぶというものになっています。参加者は…

javascriptでオブジェクトのプロパティを再起的にマージしてみる

以外と調べても良いのが見つからなかったから自分で作ってみた時の備忘録 配列とかの順番で情報の持ち方が決まっているのであればこれで良いのかも function mergeProperty(obj1, obj2){ if(typeof obj2 === "string" ){ return; } if(obj2.length !== void …

bat内での別のbatの呼び出し方について

bat内で複数の別のbatを呼び出すようにしていた時、1個目のbatが終了したら残りのbatを呼び出さずに処理が終了していた。調べてみたらcallまたはstartで呼び出すのが正しいらしい。 callの場合は呼び出したbatの処理が終了するのを待ってから次の処理を行っ…

TypescriptでReactのハンズオンプロジェクトを作ってみた

以前ES6でReactのハンズオンを作成し、今回はTypescriptが触ってみたかったのでTypescriptでReactのハンズオンプロジェクトを作ってみました。github.com まだまだTypescriptに慣れていないので型を指定するところではanyでやり過ごす部分が多々あったので、…

TypescriptでReactのプロジェクトを作ってみた

公式の手順に従いプロジェクト作成 vue-cliからプロジェクト作成 vue-cliのインストール プロジェクト作成 一旦起動してみる vue-cliで作成したプロジェクトをreact化する 公式の手順に従いプロジェクト作成 公式の手順に従ってTypescriptでReactのプロジェ…

React事始め

以前vue-cliで作成したプロジェクトをreact化してみたので、それを使って基本的なことはできるようにしておきたいと思います。 最初のコンポーネントを追加する まずは表示だけしてみる stateの値を表示してみる propsで引き継いだ値を子コンポーネントで利…

PostgreSQLで階層データ取得

PostgreSQL8.4からの新機能であるWITH RECURSIVEが便利であったのでメモ WITH RECURSIVEは階層構造のデータを再起的に取得するのに利用でき、例えば以下のようなテーブルとデータがあったとして CREATE TABLE user_mst ( user_id bigserial NOT NULL PRIMARY…

Reactのプロジェクト作成

vue-cliによるプロジェクト作成 vue-cliのインストール プロジェクト作成 一旦起動してみる vue-cliで作成したプロジェクトをreact化する vue-cliによるプロジェクト作成 reactを始める時は最初のプロジェクト作成が障壁になりそうでreact-cliという公式が出…

ScalaでfoldLeftを使ってみる

foldLeftを使ってみる foldLeft使用の覚書 list内の単語の集計を行って降順にする これだけでリスト内の単語の集計とソートが行える val countWordsList = List("a", "b", "c", "a", "d", "b", "e", "b") val wordAggregate = countWordsList.foldLeft(Map[S…

PostgreSQLの文字列関数を使ってみる

PostgreSQLの文字列関数を使ってみる PostgreSQLの文字列関数を使ってみる translate関数で文字を置換する lpad,rpadで指定した文字数で表示する translate関数で文字を置換する 1文字ずつ置換先の文字を指定することができる 例えば以下のように指定するこ…

PlayFramework事始め

PlayFramework 事始め PlayFramework 事始め playのインストール プロジェクトの作成 activatorからプロジェクト作成 giter8からplayのプロジェクトを作成 コンソールの起動 サーバを起動 コンパイル テスト デバッグ sbtの利用 IDE eclipseで開発する Intel…