まったり技術ブログ

Technology is power.

【THE 備忘録】Burp Suiteを使ってHTTPSサイトにアクセス

証明書のインポート毎に忘却しており、証明書探しの旅に出てしまっているので「THE 備忘録」

やること
  • Burp SuiteのSSL証明書をFirefoxにインポート
使ったブラウザ
  • Firefox : 57.0.4

手順

初期状態だと証明書エラー

f:id:motikan2010:20180124004545p:plain

続きを読む

【Java】GsonとJacksonのJSONパース処理速度を比べてみる

f:id:motikan2010:20180120011546j:plain

 JSONのパース処理はいろんな場面で利用していますが、処理速度を意識して利用していなかった。
 そこでJSONパーサーライブラリの処理速度を比べてみて、いざという時に備えておく。

比べるライブラリは下記の2種類

Gson

github.com

Jackson

github.com

下記のパターン(特徴)で比較

  • ノーマル
  • Date型
  • 長い文字列
  • Date型 ×2
  • 大量のメンバ変数

結果から言うと、Jacksonが優勢であった。

続きを読む

【JavaFX】レイアウトを使ってみる

f:id:motikan2010:20180107061741j:plain
以下のレイアウトを紹介します。

  • VBox クラス:垂直にUIコントロールを配置
  • HBox クラス:平行にUIコントロールを配置
  • FlowPane クラス:平行にUIコントロールを配置(折り返し有り)
  • BorderPane クラス:上下・左右・中心の位置にUIコントロールを配置
  • GridPane クラス:行と列を指定してUIコントロールを配置
  • TilePane クラス:クリッド状にUIコントロールを配置
  • StackPane クラス:重ねてUIコントロールを配置

VBox クラス

垂直にUIコントロールを配置します。
上部から順に配置されていきます。

f:id:motikan2010:20180107044324p:plain:w100
VBox (JavaFX 8)

import com.google.common.collect.Lists;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

import java.util.List;

public class VBoxExample extends Application {

    @Override
    public void start(Stage stage) throws Exception{
        stage.setTitle("HBox Example");

        List<Button> buttonList = Lists.newArrayList();
        for (int i=0; i<5; i++) {
            buttonList.add(new Button(Integer.toString(i)));
            buttonList.get(i).setPrefWidth(80);
        }

        VBox vBox = new VBox();
        vBox.setAlignment(Pos.CENTER);
        vBox.setPadding(new Insets(10, 10, 10, 10));
        vBox.getChildren().addAll(buttonList);

        stage.setScene(new Scene(vBox));
        stage.show();
    }
}

UIコントロール間に間隔を空けることも可能です。

VBox vBox = new VBox();
vBox.setAlignment(Pos.CENTER);
vBox.setPadding(new Insets(10, 10, 10, 10));
vBox.setSpacing(5.0); // 追加
vBox.getChildren().addAll(buttonList);

f:id:motikan2010:20180107044413p:plain:w100

続きを読む

Specificationインタフェースを利用した副問合せ

Specificationインタフェースを利用した副問合せに関して、あまり情報が見当たらなかったので、メモ程度にφ(・ω・ )。

サンプルテーブル

よく見かける 1対多 の関係で説明していきます。
f:id:motikan2010:20171013000832p:plain:w400

ユーザ テーブル

サンプルコード

下記のサンプルコードでは、「同じ内容のツイートを3回以上しているユーザ」を選択という少し面倒くさいSQL文を発行してみます。
f:id:motikan2010:20171014134003j:plain

続きを読む

PHPBrewに"intl"拡張をインストール

2017/11/07 ※追記 こちらのやり方が簡単!!

qiita.com
できなかったよ。という方が本記事の方法も試してみてもいいかと。

動作環境

バージョン
macOS 10.12.6
PHPBrew 1.22.6
PHP 7.1.0

ことの始まり

CakePHP3を入れたのだが、起動ができない。
intlを有効にしないといけないらしい。

$ bin/cake server -p 8765

PHP Fatal error:  You must enable the intl extension to use CakePHP.
 in /Users/admin/PhpstormProjects/cake3app/config/requirements.php on line 31

Fatal error: You must enable the intl extension to use CakePHP.
 in /Users/admin/PhpstormProjects/cake3app/config/requirements.php on line 31
続きを読む