読者です 読者をやめる 読者になる 読者になる

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…

Javaでの文字化け検出について

文字化け検出 ファイル読み込み時などで文字化けが発生した時の検出方法について 例えばUTF-8でエンコードされたテキストファイルをShift-JISで読み込もうとした際に、該当する文字が存在しない場合は'0xFFFD'の文字に変換されます。 Javaは内部的にはUnicod…

SpringBootのアプリをansibleでデプロイ

Spring Bootのアプリをansibleでデプロイ CentoOS7の環境で確認 Spring Bootのアプリをansibleでデプロイ 初期設定 Spring BootのアプリをリストアするPlayBookを書いてみる 初期設定 1. ansibleをインストール yum install epel-release yum install ansibl…

SpringBoot事始め

struts2からSpringBootへの移行検討 ビルドツール 事前準備 プロジェクト作成 依存モジュールの追加 SpringBootプロジェクト起動用Mainクラスの追加 最初のコントローラを追加してみる Thymeleafで画面を描画する Thymeleafに任意の値を渡してみる プロパテ…

jenkinsのインストールからGradleの手動ビルドまで

jenkins Javaで書かれたオープンソース継続的インテグレーションツール いろいろ自動化しなきゃと思ったのでちょっと触ったときのメモ インストール 事前にjavaがインストールされているか確認、入ってなかったら7以上のjavaを入れておく # yum install java…

SpringBootをGradleでビルド

SpringBootをGradleでビルド SpringBootプロジェクト作成準備 EclipseでSpringBootのプロジェクト作成 プロジェクト作成 ビルド 実行 SpringBootをGradleでビルド Gradleを使ってビルド周りの自動化を進めていきたいということで試しにSpringBootのプロジェ…

レガシーソフトウェア改善ガイドの感想

書簡 最近起こった出来事もあり特にレガシープロジェクトの健康状態をどうすれば良いか考えていた時にちょうど良い本がありました。 書籍の中で述べられている方針自体は真新しいということはないのですがクリスさんの経験に基づく話もあってプロジェクトの…

DDDの境界付けられたコンテキストについて調べてみた

エリック・エヴァンスのDDDの14章.“モデルの整合性を維持する"を読んでみたのでそのメモなど 戦略的設計 戦略的設計の原則は設計上の意思決定を導いて、各部分の相互依存関係を減らし、設計をより明確にしながら、蹴って的に重要の相互運用性と相乗効果を失…

パターン指向リファクタリング入門を読んでみた

古いですが"パターン指向リファクタリング入門~ソフトウエア設計を改善する27の作法"を読んでみたので感想など □生成 Creation Methodによるコンストラクタの置き換え JavaやC++ではコンストラクタがクラス名と一致するためどんなインスタンスが作られるのか…

ロジスティック回帰について調べてみた

ロジスティック回帰 いろいろ間違っているところはあると思いますが、ロジスティック回帰について調べた内容をまとめてみました。 数式は分からないけどChainerとかのオープンソースフレームワークでどんなことすれば良いのかイメージが付くぐらいになるのを…

GraphXを試してみた

GraphXとは Apache Sparkのライブラリの一つでグラフの並列分散処理を行うことができます。Sparkの基本APIや他のライブラリの機能と合わせて利用することができるため、入力データの事前処理からグラフの生成、分析まで一貫して行えるのが強みとなっています…

Vue.jsからcytoscapeを使ってみる

Vue.jsの単一ファイルコンポーネントからCytoscapeを利用してみました。気をつける点としてはコンポーネントがマウントされるタイミングより前にCytoscapeの初期化処理を行ってはいけないぐらいですが、念のためメモしておきます。 事前作業 vue-initなどで…

Cytoscape.jsを試してみた

Cytoscape.jsとは もともとはクライアントアプリとして欧米の研究機関によって開発されているオープンソースのネットワーク可視化ソフトウェアプラットフォームであるCytoscapeが10年ほど前に作られ現在も継続して開発が行われています。Cytoscapeはデータの…

Rでネットワーク分析をしてみる

R

ちょっと興味が湧いたのでigraphを使ってネットワーク分析を行ってみたいと思います。 igraph igraphとは? ネットワーク解析周りの関数が多数登録されており、簡単にネットワーク解析を行うことができる。最近ではグラフデータベースのneo4jなどでネットワ…

Chainerによるロジスティック回帰

PythonのディープラーニングフレームワークであるChainerを使って簡単なセンチメント分析を行ってみたいと思います。 必要なモジュールのインポート # import chainer module import numpy as np import chainer from chainer import cuda, Function, gradie…

ApacheSparkの基本的なデータ操作

データ操作 Spark2.1で動作確認 build.sbt IDEAから実行できるようにbuild.sbtに以下を追加。対象のライブラリが存在しない場合はmaven_centralで確認する。 val sparkVersion = "2.1.0" libraryDependencies ++= Seq( "org.apache.spark" % "spark-core_2.1…

Apache Sparkを触ってみた

Apache Sparkとは? Hadoopと同じく分散処理のフレームワーク。HadoopではMapReduceと言って複数マシンで分散処理を行ってから結果をストレージに書き出す。1回の処理では終わらない場合はデータの処理フローを形成することになり、よみ出し→分散処理→書き込…

Scalaで数式をパースして整形表示

数式パーサ Scalaのコップ本を一通り読んだので振り返りも兼ねて数式をパースして計算、整形するDSLを実装したいと思います。全部自力で作れたら良いのですが、ソースコードはほとんど(http://blog.j5ik2o.me/entry/20101126/1290763057) とコップ本から拝借…

Postgreyについて

Postgrey Postgreyとはpostfixを使用する時に初めて来る相手からは一定の待ち時間後に再送が来なければ受信を受け付けないといったもので、phpとかで大量のスパムメールを送りつけてきたのを受診させないためのものになっています。 インストールから使用す…

Dovecotでメール削除をログ出力させる

削除ログを出力するようにする dovecotのプラグインを有効にしメール削除をログ出力するように対応した際の手順です。 1.POPサーバの設定ファイルを変更しログ出力用のプラグインを有効化する vi /etc/dovecot/conf.d/10-mail.conf ・変更前(210行目辺りです…

skinny事始め

scalaのフレームワークで簡単にとっつきやすそうのを探したらskinnyが良さそうだったので、触り始めた際のメモを残しておきたいと思います。 skinnyインストール(mac) $ brew updated $ brew install skinny プロジェクト作成から起動 $ skinny new プロジェ…

vue.js使用時にvue-resourceでhttpリクエストを投げてみる

vue-resourceでhttpリクエストを投げてみた 公式では以下のようにvue-resourceは公式推奨からは外すけど、ajaxはVue自身が管理すべき領域でないからということで、使うべきではないとかそういった意味合いではないようだ。 https://jp.vuejs.org/2016/11/03/…

vue.jsにVue Materialを適用してみた

Vue Material(https://vuematerial.github.io/#/)を使用してマテリアルデザインを適用した際のメモ インストール 公式の手順に従えば簡単に使えるようになる。 https://vuematerial.github.io/#/getting-started $ npm install vue-material --save $ yarn a…

vue.jsを触ってみた

vue.jsとは 公式ページを引用すると以下のようになっています。 Vue (発音は / v j u ː / 、 view と同様)はユーザーインターフェイスを構築するための プログレッシブフレームワークです。他の一枚板(モノリシック: monolithic)なフレームワークとは 異な…

WSUS構築メモ

WSUSインストール 更新プログラムを保存するためのフォルダを作っておく サーバマネージャの"役割と機能の追加"からWSUSを指定 役割とサービスでデータベースにWIDを選択 更新プログラムの保存先に事前に用意したフォルダを指定 WSUS設定 WSUSの同期スケジュ…

WSUSに困らせられた記録

WSUS管理コンソールに繋がらなくなった 症状 WSUS管理コンソールに繋がらないということで確認したところ"予期しないパケット形式のためハンドシェイクに失敗しました"とのエラー表示で繋がらない Microsoftのフォーラムに同様の書き込みがあり、どうやら最…

Scalaで新しく制御構造を作成する

Scalaで新しい制御構造を自作する Scalaは関数型言語にあるため関数が第一級のオブジェクトとなります。そのためJavaなどのオブジェクト指向言語と比べてどんな違いがあるかというと、関数を引数にして別の関数を呼び出すことができます。俗に言う高階関数と…

Ansibleを触ってみた

Ansibleを触ったのでメモ Ansibleとは エージェントレス型の構成管理ツール。エージェント型とエージェントレス型では以下のような違いがある。 ◯エージェントレス型 管理対象のサーバにエージェントを入れる必要がない 管理対象のサーバへの接続情報が必要…

vagrant の基礎

ansibleを触る環境を準備するためにvagrantを触ったのでその時のメモ mac環境へのインストール 1.公式サイトからインストーラをダウンロードする。 https://www.vagrantup.com/downloads.html /usr/local/bin/vagrantにインストールされた ~ which vagrant /…

PyMongo覚書

Pymongoの覚書になります、と言ってもmongoのクライアントから直接実行するのとほとんど同じように使うことができます。 モジュールインポート import json import re import pymongo import bson from bson.son import SON from bson.code import Code from…

MongoDB覚書

MongDB MongoDBをcliから操作時のメモです。Mngoのインストール等を試した環境はCentOS7.2になります。 CentOS7環境でのインストール ◯リポジトリ追加 公式ページを確認しyumのリポジトリを追加する(https://www.mongodb.com/download-center#community) /# …

CentOS7でユーザのコマンドに制限をかける

以前特定のコマンドしか実行できないユーザを作る必要があった時にrbashを使用したのが便利だったので、その時のメモになります。確認した環境はCentOS 7.2になります。1. rbashを使えるようにする # ln -s /bin/bash /bin/rbash # vi /etc/shells /bin/rbas…

Chainerで簡単なクラス分類をしてみる

Chainerを試してみるために簡単なサンプルプログラムを動かしてみたいと思います。まず必要なライブラリをインポートします。 import numpy as np import chainer from chainer import cuda, Function, gradient_check, Variable from chainer import optimi…

Scalaのfor式とflatMapについて

自分は職場では良くjava7でプログラミングするのでjava8のStream APIなどを触ることがないのですが、そのような状態だとscalaのfor式やflatMapに抵抗があったので簡単に使い方だけでもおさらいしてみたいと思います。まず、動作確認で使うクラスは以下になり…

アクターモデルについて調べてみた

バッチ処理でAkkaを使ってみたのでアクターモデルについて調べたことをまとめてみました。 scalaを触ったことがなく並列処理に興味があるけどやったことがないくらいの人が読める内容を目指したいと思います。 ・スレッドモデルについて ・アクターモデルに…

分析方法調査

○主成分分析主成分分析とは 主成分分析は多くの変数を持っているデータを少ない変数、通常は2つ~3つの 変数に縮約してデータを分析する際に多くもちいられているx1, x2 の変数が合った場合に z1=ax1+bx2となる合成変数z1を作成することにより 変数を減らし…

postfixでのメール受信時ウィルスチェック(ClamAntiVirus)でメール削除、受信者への通知を行えるようにする

目的 postfixでメールを受信したときにClamAVのウィルスチェックを行い、チェックに引っかかったものはメール削除、および受信者に対してメールの送信があったことを通知できるようにする。 procmailからpythonを呼び出したのだが、procmail周りの情報が少な…

Rの環境構築(CentOS, ubuntu)

統計解析で広く用いられているRをCentOS, ubuntuにインストールして 使えるようにする。統計解析ではPythonも人気で自力で計算処理を実装するならライブラリが豊富にある というメリットがあるのだろうが、Rの方が初心者にも扱いやすい印象があるのでまずは …

MeCabとCaboChaをpythonから呼び出せるようにする(ubuntu, centos)

日本語で自然言語処理をする上で必須となる形態素解析、それから係り受け解析のエンジンである MeCabとCaboChaをpythonから呼び出せるようにする。動作確認はUbuntu 14.04.3 LTSとCentOS Linux release 7.2.1511で行いました。1.Mecab 1.1 Ubuntu 14.04.3でM…

メールサーバ構築

環境 idcfクラウド上のCentOS7に環境構築 メール送信にはサーバのドメインが必要なので、Dynamic DO!(http://ddo.jp/)を利用してクラウド サーバにドメインを割り当てる。 メールサーバの環境構築としてMTA(Message Transfer Agent)にpostfix, MDA(Mail Deli…