Sassyブログ

好きなことで暮らしを豊かにするブログ

IT・ソフトウェア

PlayFrameworkで一時ファイルを作成せずに、レスポンスで返す方法

あるファイルをレスポンスで返したい。 けど、sendFile()を使用する場合、Fileインスタンスを引数に与えなくてはいけないし、 Fileインスタンスを作成するとなると物理ファイルのパスを指定したりしないとならない。 そしたら、一時的にファイルを作成しない…

PlayFramework2.6.xでフォームからPOST送信したら403が返ってきたら

PlayFramework2.6.xでフォームからPOST送信した際に、 下記警告が発生し403(Unauthorized)が返ってきた。 [warn] p.filters.CSRF - [CSRF] Check failed because no token found in headers for /login?userId=test&password=test CSRF対策のチェックでPOST…

シェルスクリプトの実行で No such file or directory が発生した場合の対処法

環境 エラー内容 原因 対処法 コマンド sedとは? オプションとスクリプトコマンドの解説 最後に 環境 CentOS6.8 エラー内容 -bash: ./run_mock.sh: /bin/bash^M: bad interpreter: No such file or directory 原因 上記、エラーの原因はシェルスクリプトの…

PlayFrameworkアプリをsystemdでデーモン化しようとした

目次 目次 まず初めに Systemdとは 環境 前提 手順 1.アプリケーションビルド 2.生成されたzipを確認 3.Unit定義ファイルの作成 4.今回作成したUnit定義ファイル 5.パーミッション設定 6.再起動 7.Playアプリケーション起動 8.動作確認 9.Playアプリケーショ…

スクラム開発の基礎について

最近、私の現場で本格的にスクラム開発を取り入れてきました。 スクラム開発はいろいろな現場で行ってきましたが、しっかり勉強する機会がなかったので1から再度勉強しなおしました。 その時のメモ内容を備忘録としてまとめます。 まず勉強に使用した資料は…

MySQLパスワードが分からない場合の対処法

目次 目次 MySQL Version 状況 対処手順 1. MySQLを停止 2. MySQLをセーフティモードで起動 3. MySQLへログイン 4. 「mysql」データベースを指定 5.テーブルを確認する。 6. 現在登録されているユーザーを確認 7. 既存のパスワードの変更 8. MySQLログアウト…

href属性に設定される「javascript:void(0)」とは?

今回はフロントの小話です。 私自身サーバーサイドのエンジニアのため、 あまり意識してこなかったのですが、 たまにHTMLで以下のような記述を見かけます。 <a href="javascript:void(0);" id="btn" class="btn" onclick="sample();">~</a> href属性に設定されている「javascript:void(0);」という記述 まだエンジニア歴の浅い方は気にな…

【Scala入門】コンソールから入力を行いたい

目次 目次 環境 サンプルコード 環境 scala2.11.11 サンプルコード Scalaでコンソール入力を行いたい場合は以下のように書く。 ※ちなみに下記の実装だと、1行入力のみであるため複数行入力は行えない。 ctrl + Dするまで入力→出力を行ってくれる。 package …

【Scala入門】おそらく初心者が疑問に思うであろうscalaのsealedの使いどころについて

元Javaエンジニアですが、現在はScalaエンジニアで日々頑張ってます。 scalaを学習していると見慣れないキーワードがいろいろ出てきますね。 というわけで今回は、「sealed」についてどう使えばよいかを調べましたので共有していきます。 結論から言うと、 …

gitbookを触ってみた

目次 目次 環境 1.Node.jsをインストールする。 2.gitbookを導入する。 2-1.gitbookをインストールする。 2-2.バージョン確認 3.gitbookを利用する。 3-1.gitbookを初期化する。 3-2.gitbookのコンテンツをいじってみる。 3-3.gitbookをビルドする。 3-4.git…

scalaでのループ処理性能測定結果 まとめ

目次 目次 実行環境 測定コード 結果 実行環境 windows10 64bit メモリ 32G CPU corei7-7700CPU 3.60GHz 言語 Scala 測定コード import scala.annotation.tailrec object sample { val setValue: Int = 1000000 def main(args: Array[String]): Unit = { // …

【Scala入門】引数の名前渡しについて

名前渡しとは、引数の値が評価されて、その評価された値が渡される値渡しなどとは異なり 関数の呼び出し時に評価されずに必要な時に評価される形式を「名前渡し」といいます。 必要な時とはどのようのようなときでしょうか。 それは参照されるときです。 で…

Scalaでコンソールにプログレスバーを表示する方法

マイグレーションツールを作成したときに、 本番並みのデータがデータベースに格納されていると処理に時間がかかり コンソール上で動いているのか動いていないのかが心配だったため、 プログレスバーを表示してみることにした。 サンプルコードは以下。 obje…

Scalaで処理速度を計測する場合のやり方について

よく速度性能を求められたりするのでメモ object sample { /** * 処理速度測定を行う * * @param process */ def printExecTime(process: => Unit): Unit = { val start = System.currentTimeMillis process println("処理時間: " + (System.currentTimeMil…

sbt-assemblyを使用してjarを生成する際の同名ファイルのマージ指定方法

sbtで実行可能jarを作成した時のこと。 sbt-assemblyを使用して、 sbtコンソールからのコンパイル後に「assembly」をたたいたところ、 クラスファイルやプロパティファイルなどの重複エラーが発生した。 そんで調べてみるとsbtのjar生成時に見つかった重複フ…

Macのターミナルでssh-keygenを使って秘密鍵と公開鍵を作ってみよう

今回は個人の仕事で外部のサーバーにssh接続するために秘密鍵と公開鍵を作成しました。 端末はMacを使用しているので標準でインストールされているOpenSSLを使用します。 まずは以下のコマンドを叩きます。 $ ssh-keygen そしたら秘密鍵と公開鍵の作成場所を…

正格と非正格(遅延)について

現在Scalaを勉強中です。 今回はScalaの参考書を読んでいると出てくる「正格」と「非正格(遅延)」について学習しました。 まず初めに、正格とは何でしょうか?非正格(遅延)とは何でしょうか? これは関数の特性を指します。 正格な関数..つまり正格関数…

scalaのコンパイルエラー「value += is not a member of Int」とは?

現在仕事ではScalaを触ってます。 期間は1か月満たないくらいです。 今後のために、エラー内容に対する対処方法などをまとめていこうと思います。 今回のエラーはこちら value += is not a member of Int google翻訳すると「値+ =はIntのメンバーではありま…

TypesafeConfigを使用して外部ファイルを読み込む

Scalaでデータ移行ツールを作成した時の話 職場でPlayFrameworkを使用しており、 ツールの実行ごとに複数環境のDB接続設定情報ファイルを個別に指定して読み込ませたかったため、 実行時にファイルを指定できるようにした。 ファイル読み込みにcom.typesafe.…

データベースのデータ移行時に外部キー制約を一時的に無効化したい

基本的には以下のようにやればよい。 sample.sql set foreign_key_checks = 0; <SQL文の処理> set foreign_key_checks = 1; 実行コマンド $ source sample.sql しかし、上記のコマンドではそのセッション内でしか有効でないため、以下のようにやると外部キー制約が無効化</sql文の処理>…

PlayFramework2.5系からバージョンダウンさせるための変更手順

目次 目次 1.環境 2.バージョンダウン変更手順 2-1.build.sbt 2-2.project/plugins.sbt 2-3.app/controllers/HomeController.scala 2-4.起動の確認 3.エラーの修正を行う 3-1.ファイルの削除 3-2.conf/routesの修正 4.再度起動確認 1.環境 Windows10 64bit S…

Scala + PlayFrameworkの開発環境を構築してみる

目次 目次 1.環境 2.開発環境構築手順 2-1.activatorのダウンロード 2-2.activatorのパスを環境変数に設定 2-3.新規アプリケーションの作成 2-4.Playアプリケーションの起動 2-5.Playアプリケーションへアクセス 2-6.作成したプロジェクトをIntelliJへインポ…

Scala関数型デザイン&プログラミング - Scalazコントリビューターによる関数型徹底ガイドの課題をやってみた

目次 目次 1.【第2章】 2.【第3章】 3.【第4章】 第2章と第3章、第4章(最初の方だけ)のいくつかを試しに実施してみました。 ※関数部分しか掲載しておりません。 1.【第2章】 // Exercise 2.1 // n 番目のフィボナッチ数※10 を取得する再帰関数を記述せよ。…

Scala入門 関数オブジェクトの変換のやり方

目次 目次 1.関数オブジェクトの変換 1.関数オブジェクトの変換 まず最初にdefで定義した関数を用意します。 scala> def func(x: String, y: String) = x + y func: (x: String, y: String)String それをfunc1変数に代入する際に「_」を後ろにつけてあげると…

Scala入門 プレイスホルダ構文について

目次 目次 1.プレイスホルダ構文とは 1.プレイスホルダ構文とは この構文を使用することで関数リテラルの記述を簡潔にすることが可能になります。 例えば普通にの関数リテラルを記述した場合 scala> val func: (String, String) => String = (x: String, y: …

Scala入門 パターンマッチについて

目次 目次 1.パターンマッチとは 1.パターンマッチとは scalaではmatch構文というのがある。 一見switch-case文のように見えるが、scalaのmatch構文は値のマッチングのみではなくクラスやコレクションなどもマッチングしてくれる。 構文は以下となる。 [targ…

Scala入門 クロージャについて

目次 目次 1.クロージャとは 1.クロージャとは 対象の関数のスコープにおける引数以外の変数の参照が可能な関数です。 以下のコードですね。 def sample() = { var cnt = 0 () => { cnt += 1 cnt } } まず初めにこれを動かしてみます。 scala> def sample() …

関数型プログラミングについて

目次 目次 1.関数型プログラミングとは? 1-1.手続き型の場合 1-2.関数型の場合 2.宣言型プログラミングって? 3.関数型プログラミングのメリットとデメリットについて 3-1.メリット 3-2.デメリット 4.関数型プログラミングを学ぶには? 5.さぁ始めよう関数…

Scala入門 tailrecアノテーションについて

目次 目次 1.tailrecアノテーションとは 2.末尾再帰関数とは 1.tailrecアノテーションとは 末尾再帰関数の最適化が想定される関数に対して使用。 もし、末尾再帰関数の最適化が行われなかった場合にコンパイルエラーを出してくれる。 この最適化とはコンパイ…

Scala入門 コレクション操作をしてみよう

目次 目次 1.コレクション操作 1-1.シーケンス型 1-2.マップ型 1-3.タプル型 1.コレクション操作 1-1.シーケンス型 シーケンスは要素を順番に並べて管理できるコレクションです。 今回はListを使用して使い方を試していきます。 Listはイミュータブルなコレ…