Scala コラッツの問題

友人へ コラッツの問題 - Wikipedia が面白かったのでScalaで書いてみよう!という記事。 Scalaをインストールしていなくても、Macユーザーの場合 $ brew install scala で一発でインストールできるので、実行してみよう! コラッツの問題 コラッツの問題は…

Common Lisp始めました

Common Lisp始めました 先生や友人から「憧れの言語はCommon LispとC++」という話を聞きました。 どうして身の回りの強い人たちは揃いも揃って同じことを言うのだろうか(N=2)。 というわけで、まずは片方初めてみることにします。 Common Lispはカッコがい…

Angular6 コンポーネントやサービスでのデータのやりとり

Angular6でいくつかプロジェクトを作ったので、 コンポーネントやサービスでのデータのやりとりについて、知見をまとめます。 現状の個人的なベターな書き方ですが、オレオレな部分があるかもしれないです。 目次 親子関係のコンポーネントでのデータのやり…

サーバー設定手順 6. Angular

作成中のプロジェクトのディレクトリで ng build --prod エラーがなければトランスパイルされたコンパクトなファイルが dist/ 以下に作成される。 上記ファイルをサーバーの/var/www/html/以下などに設置。 angularはURLのリライトが必要なので、.htaccessか…

サーバー設定手順 5. JVM,sbtの設定

APIとしてplayframework製のサーバーを設定する例。 playframeworkはScala(もしくはJava)のライブラリであり、ScalaはJVM上で実行できる。 まず、JVMをインストールし、Scalaと、Scalaのビルドや実行を行うsbtをインストールする。 Java(OpenJDK)をインスト…

サーバー設定手順 4. CakePHPの設定

何かとCakePHPを利用することは多い + サーバーの設定が正しく出来ているかの確認が出来るため、 空のCakePHPのプロジェクトを設置する。 php7.2をインストール CakePHPではphpのバージョン7.2を利用する。 phpの最新は7.3だが、CakePHPでサポートされている…

サーバー設定手順 3. MySQLの設定

どのバージョンを利用するかは要件によって異なるが、 新規のサービスであればmysql8.0を入れてしまいましょう インストール # yum list available | grep mysql インストールできるものが見つからないかもしれない。その場合は下記を実行 # yum install htt…

サーバー設定手順 2. httpd(Apache)のインストール

httpdがインストールされていないかどうか確認 $ httpd -bash: httpd: command not found $ yum list installed | grep httpd (何も表示されない) インストール $ su - # yum install -y httpd 起動前の確認 httpdの起動状態 # systemctl status httpd.servi…

サーバー設定手順 1. 初期設定

さくらのVPSのようなサーバーを取得してから行うメモ。 CentOS7で、設定が全くされていない空の状態から運用できるまでのコマンドを記述します。 凡例 # ~~~ : rootでの操作 $ ~~~ : 一般ユーザーからの操作 初期パスワード(例) : root / password IPアドレ…

Angular FileAPIのonloadではアロー関数を使う

JavaScriptのFile APIを利用していてつまずいたことのメモです。 下記の例ではAngular 6.1.2, TypeScriptを利用しています。 FileAPI周りはJavaScriptとほぼ同様だと思います。 やりたいこと FileAPIを用いてローカルから画像を取得する 画像ファイルをサー…

Scala クラスの自作の練習(Time, Duration, TimeRange)

プログラム内で下記のような計算を多く記述するとします。 ある人は08:00に移動を開始する 移動先への所要時間は1時間30分かかる 移動先には09:00~11:00の間に到着しなければならない この場合、移動が間に合うかを判定する 上記には、時間に関連する内容に…

Scala : Play JSONを使う

前回のApache Commons CSVでのCSVの処理 mi12cp.hatenablog.com に引き続き、今回はJSONを扱っていきます。 JSONのライブラリはplayframeworkに含まれるPlay JSONを用いることにしました。 playframeworkを用いなくても、これ単独でパッケージを追加すること…

Scala : Apache Commons CSVを使う

scala専用のcsvパーサーは特に公式にあるわけではないが、JavaのライブラリにApache Commons CSVがあるのでこれを使える。 Apache Commons CSVは他と比べ高機能な印象。メンテナンスも今後心配ないように思う。 他のCSVパーサーにはOpenCSVなどがある。OpenC…

Scala sbtを使う

Scalaで1ファイルだけのプログラムを書くだけなら、Javaのように $ scalac Main.scala $ scala Main もしくはソースファイルを直接 $ scala Main.scala などでも良いが、sbtを使うと色々便利。 sbtの用途は Scalaでプロジェクトを作る ライブラリを読み込む …

Scala 簡単な抽選システムを作る

前回Pythonで作った抽選システムと同様のことをScalaで書きました。 mi12cp.hatenablog.com pythonでプログラムを書くと、イミュータブルな書き方が出来なかったり、break文を利用してしまったりしてしまいます。 これらを排除してscalaで書き直すのが目的で…

Python3 簡単な抽選システムを作る

前回の記事 mi12cp.hatenablog.com ではcsvファイルをpythonで読み込むことを行いました。 今回はこれを用いて簡単な抽選システムを作ります。 要件 とある無料の公演では100名分の座席に対し、200名程度の観覧希望者がいると見込まれる。 公演の三時間前に…

Python3 pandasでcsvファイルを読み込む

量の多いデータを気軽に扱うには表計算ソフトは便利ですが、 それをプログラムで処理する時に表計算ソフトの関数やマクロを使うと管理が面倒だと感じることがあります。 ここでは、データを表計算ソフトで入力し、csvでエクスポートをしたのち、pythonでそれ…

Scala 重複順列

Scala 重複順列 よく使うのですが、ワンライナーで書くことは出来ないでしょうか。現状は下記 program object Main extends App { def duplicatePermutation[A](list: List[A], length: Int): List[List[A]] = { if (length == 1) { list.map(x => x :: Nil)…

Scala 数値をN進数として桁ごとに分ける

Scala 数値をN進数として桁ごとに分ける program object Main extends App { def divideDigits(num: Int, base: Int = 10): List[Int] = { def proc(num: Int, base: Int): List[Int] = { val quotient = num / base val remainder = num % base quotient ma…

Scala 参考になる本・記事

参考になる本・記事 『Scala スケーラブルプログラミング 第3版』 https://www.amazon.co.jp/Scalaスケーラブルプログラミング第3版-Martin-Odersky/dp/4844381490 言語の詳細について最も詳しい やや分量が多く通読するのが少し大変 『Scala 関数型デザイン…