Perl Scalars

Perl has three basic data types: scalars, scalar arrays, and scalar associative arrays. In this context, scalar data refers to simple data such as numbers and strings. Also, as an essential element of programming, there is the concept of variables. Variables are “value containers” that are used to temporarily store various values.
In Perl, there are three variables, scalar variable, array, and associative array respectively, in the form corresponding to each data type, and the scalar variable is the most basic one among them, and stores numerical value and character string can do.
Scalar variable names can start with $ (dollar) + one alphabetic character, and can use numbers, alphabetic characters and underscores thereafter. Also, because it is cause sensitive, $ a and $ A, for example, are treated as different things.

OK
$abc123
$abc_123

NG
$123abc
$abc-123

mysqldumpでテーブルをバックアップ

command

$ mysqldump -u root -p db table --single-transaction > hoge.dump

test

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| items          |
| name           |
| news           |
| user           |
+----------------+
4 rows in set (0.00 sec)

[vagrant@localhost ~]$ mysqldump –single-transaction -u root -p test items > /tmp/dump/items.sql
Enter password:

ほーーーーーーー

複数テーブルの場合
[vagrant@localhost ~]$ mysqldump –single-transaction -u root -p test items name > /tmp/dump/some.dump
Enter password:

テーブルを複数並べればいいだけ。

オプション
–skip-lock-tables
–lock-tablesオプションを無効にする。–optが–lock-tablesを有効にするので、それを打ち消す為に使用する。

なるほどーーーーーー

mysqldump

Use mysqldump command to backup / resotre MySQL database. The mysqldump command is included with MySQL installation.

Will explain two backup method.
1. How to back up only specific databases
2. How to back up all databases

To dump backup data from a specific MySQL database, use the following command:

$ mysqldump --single-transaction -u username -p DBname > output destination file name

やってみます。
mysql> mysqldump –single-transaction -u root -p test > /tmp/dump/test.dump
-> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘mysqldump –single-transaction -u root -p test > /tmp/dump/test.dump’ at line 1

あれ?????? これ、mysqlにログインしなくていいのかな。
[vagrant@localhost ~]$ mysqldump –single-transaction -u root -p test > /tmp/dump/test.dump
Enter password:
[vagrant@localhost ~]$

ほう、そういうことか。。

次はテーブルのバックアップもやりたいね。

空チェックをして型チェック

nullかチェックをして、その後、型チェックを行う

$var = "2019/04/01";

if(empty($var)){
	echo "値を入力してください";
} else{
	if(preg_match("/^[a-zA-Z0-9]+$", $var)){
		echo "英数字で入力してください";
	} else {
		echo "合格";
	}
}

うむ、nullかどうかはオブジェクトにしたいですな。

netstat -anl

[vagrant@localhost test]$ php -S 192.168.35.10:8000
[Fri Apr 5 08:52:04 2019] Failed to listen on 192.168.35.10:8000 (reason: Address already in use)

netstat -anl

[vagrant@localhost test]$ netstat -anl
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 192.168.35.10:8000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:37780 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 64 192.168.35.10:22 192.168.35.1:54547 ESTABLISHED
tcp 0 0 192.168.35.10:22 192.168.35.1:54544 ESTABLISHED
tcp 0 3520 192.168.35.10:22 192.168.35.1:50521 ESTABLISHED
tcp 0 0 192.168.35.10:22 192.168.35.1:51478 ESTABLISHED
tcp 0 0 192.168.35.10:22 192.168.35.1:51485 ESTABLISHED
tcp 0 0 192.168.35.10:8000 192.168.35.1:54691 TIME_WAIT
tcp 0 0 192.168.35.10:8000 192.168.35.1:54692 TIME_WAIT
tcp 0 0 ::1:25 :::* LISTEN
tcp 0 0 :::443 :::* LISTEN
tcp 0 0 :::3306 :::* LISTEN
tcp 0 0 :::111 :::* LISTEN
tcp 0 0 :::8080 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::39668 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp 0 0 0.0.0.0:42054 0.0.0.0:*
udp 0 0 127.0.0.1:967 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 0.0.0.0:944 0.0.0.0:*
udp 0 0 :::33848 :::*
udp 0 0 :::56935 :::*
udp 0 0 :::5353 :::*
udp 0 0 :::111 :::*
udp 0 0 :::944 :::*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 13 [ ] DGRAM 8502 /dev/log
unix 2 [ ACC ] STREAM LISTENING 11210 public/cleanup
unix 2 [ ACC ] STREAM LISTENING 6744 @/com/ubuntu/upstart
unix 2 [ ACC ] STREAM LISTENING 11270 private/tlsmgr
unix 2 [ ACC ] STREAM LISTENING 11274 private/rewrite
unix 2 [ ACC ] STREAM LISTENING 11278 private/bounce
unix 2 [ ACC ] STREAM LISTENING 11282 private/defer
unix 2 [ ACC ] STREAM LISTENING 11286 private/trace
unix 2 [ ACC ] STREAM LISTENING 11290 private/verify
unix 2 [ ACC ] STREAM LISTENING 11294 public/flush
unix 2 [ ACC ] STREAM LISTENING 11298 private/proxymap
unix 2 [ ACC ] STREAM LISTENING 11302 private/proxywrite
unix 2 [ ACC ] STREAM LISTENING 11306 private/smtp
unix 2 [ ACC ] STREAM LISTENING 11310 private/relay
unix 2 [ ACC ] STREAM LISTENING 11314 public/showq
unix 2 [ ACC ] STREAM LISTENING 11318 private/error
unix 2 [ ACC ] STREAM LISTENING 11322 private/retry
unix 2 [ ACC ] STREAM LISTENING 11326 private/discard
unix 2 [ ACC ] STREAM LISTENING 11330 private/local
unix 2 [ ACC ] STREAM LISTENING 11334 private/virtual
unix 2 [ ACC ] STREAM LISTENING 11338 private/lmtp
unix 2 [ ACC ] STREAM LISTENING 11342 private/anvil
unix 2 [ ACC ] STREAM LISTENING 11346 private/scache
unix 2 [ ] DGRAM 7122 @/org/kernel/udev/udevd
unix 2 [ ACC ] STREAM LISTENING 9985 /var/lib/mysql/mysql.sock
unix 2 [ ACC ] STREAM LISTENING 8580 /var/run/rpcbind.sock
unix 3 [ ] STREAM CONNECTED 72333
unix 3 [ ] STREAM CONNECTED 72332
unix 2 [ ] DGRAM 72329
unix 3 [ ] STREAM CONNECTED 72251
unix 3 [ ] STREAM CONNECTED 72250
unix 2 [ ] DGRAM 72247
unix 2 [ ] DGRAM 71574
unix 3 [ ] STREAM CONNECTED 66767
unix 3 [ ] STREAM CONNECTED 66766
unix 2 [ ] DGRAM 66763
unix 3 [ ] STREAM CONNECTED 63845
unix 3 [ ] STREAM CONNECTED 63844
unix 2 [ ] DGRAM 63841
unix 3 [ ] STREAM CONNECTED 63730
unix 3 [ ] STREAM CONNECTED 63729
unix 2 [ ] DGRAM 63726
unix 2 [ ] DGRAM 40479
unix 2 [ ] STREAM CONNECTED 18047
unix 2 [ ] STREAM CONNECTED 16398
unix 2 [ ] DGRAM 12216
unix 2 [ ] DGRAM 11375
unix 3 [ ] STREAM CONNECTED 11349
unix 3 [ ] STREAM CONNECTED 11348
unix 3 [ ] STREAM CONNECTED 11345
unix 3 [ ] STREAM CONNECTED 11344
unix 3 [ ] STREAM CONNECTED 11341
unix 3 [ ] STREAM CONNECTED 11340
unix 3 [ ] STREAM CONNECTED 11337
unix 3 [ ] STREAM CONNECTED 11336
unix 3 [ ] STREAM CONNECTED 11333
unix 3 [ ] STREAM CONNECTED 11332
unix 3 [ ] STREAM CONNECTED 11329
unix 3 [ ] STREAM CONNECTED 11328
unix 3 [ ] STREAM CONNECTED 11325
unix 3 [ ] STREAM CONNECTED 11324
unix 3 [ ] STREAM CONNECTED 11321
unix 3 [ ] STREAM CONNECTED 11320
unix 3 [ ] STREAM CONNECTED 11317
unix 3 [ ] STREAM CONNECTED 11316
unix 3 [ ] STREAM CONNECTED 11313
unix 3 [ ] STREAM CONNECTED 11312
unix 3 [ ] STREAM CONNECTED 11309
unix 3 [ ] STREAM CONNECTED 11308
unix 3 [ ] STREAM CONNECTED 11305
unix 3 [ ] STREAM CONNECTED 11304
unix 3 [ ] STREAM CONNECTED 11301
unix 3 [ ] STREAM CONNECTED 11300
unix 3 [ ] STREAM CONNECTED 11297
unix 3 [ ] STREAM CONNECTED 11296
unix 3 [ ] STREAM CONNECTED 11293
unix 3 [ ] STREAM CONNECTED 11292
unix 3 [ ] STREAM CONNECTED 11289
unix 3 [ ] STREAM CONNECTED 11288
unix 3 [ ] STREAM CONNECTED 11285
unix 3 [ ] STREAM CONNECTED 11284
unix 3 [ ] STREAM CONNECTED 11281
unix 3 [ ] STREAM CONNECTED 11280
unix 3 [ ] STREAM CONNECTED 11277
unix 3 [ ] STREAM CONNECTED 11276
unix 3 [ ] STREAM CONNECTED 11273
unix 3 [ ] STREAM CONNECTED 11272
unix 3 [ ] STREAM CONNECTED 11269
unix 3 [ ] STREAM CONNECTED 11268
unix 3 [ ] STREAM CONNECTED 11266
unix 3 [ ] STREAM CONNECTED 11265
unix 3 [ ] STREAM CONNECTED 11209
unix 3 [ ] STREAM CONNECTED 11208
unix 3 [ ] STREAM CONNECTED 11206
unix 3 [ ] STREAM CONNECTED 11205
unix 2 [ ] DGRAM 11167
unix 2 [ ] DGRAM 8661
unix 3 [ ] STREAM CONNECTED 8461
unix 3 [ ] STREAM CONNECTED 8460
unix 3 [ ] DGRAM 7139
unix 3 [ ] DGRAM 7138

ん?listenになってる??ランダムでポートが使われているってこと??

「上記コマンドで該当のPIDをを見つけ、killすれば解決する?」
[vagrant@localhost test]$ lsof -i:192.168.35.10:8000
-bash: lsof: コマンドが見つかりません

なにいいいいいいいいいい

DB hash

With a hash table, the portion of the bucket stays on disk, halving the load on memory during the search.
Arrays need to use contiguous free space in memory. When reading a large table, it is very difficult to secure a sufficient continuous area. In the case of a hash table, you can choose the key you want to use.

indexのことか?しかし、ビューハッシュとはなんだ。。。

Hashing

Hashing is the generation of random numbers from certain data. The feature of this function is to output the same hashed value from any value, and it is impossible to derive the original data from the hashed value. The hash function is used for user authentication etc.

Know as a hash function, hash algorithms such as MD5 and SHA1 can now examine the output with brute force to get the original input.

$password = "password";
echo sha1($password) . "<br>";
echo md5($password) . "<br>";
echo hash('sha256', $password) . "<br>";

svgをcanvasで表示する

<!doctype html>
<html>
<head>
	<title>title</title>
</head>
<body>
	<canvas id="c" width="200" height="200"></canvas>
</body>
<script>
	var img = new Image();
	img.src = 'http://www.w3.org/Icons/SVG/svg-logo-v.svg';
	img.onload = function(){
		var c = document.getElementById('c');
		var ctx = c.getContext('2d');
		ctx.drawImage(img, 0, 0, 200, 200);
	}
</script>
</html>

これはsvgなんだが、HTMLタグで行きたいね。。

HTMLタグ→SVG画像作成→Canvasで画像化?
んーん、苦戦。。

foreignObject

SVG elements make it possible to include external XML namespaces with graphic content rendered by different user agents. External graphic content included is subject to SVG conversion and composition.

<svg width="400px" height="300px" viewBox="0 0 400 300" xmlns="http://www.w3.org/2000/svg">
	<desc>The svg tag can write code and draw an image. Compared with bitmap data such as JPEG and PNG, even if it is enlarged, it can be displayed in a beautiful state without blurring.</desc>
	<switch>
		<foreignObject width="100" height="50" requiredExtensions="http://www.w3.org/1999/xhtml">
		<body xmlns="http://www.w3.org/1999/xhtml">
			<p>Here is a paragraph that requires word wrap</p>
		</body>
	</foreignObject>

	<text font-size="10" font-family="Verdana">
		<tspan x="10" y="10">Here is a paragraph that</tspan>
		<tspan x="10" y="20">requires word wrap.</tspan>
	</text>
</switch>
</svg>

<svg width="960px" height="1280px" viewBox="0 0 960 1280" xmlns="http://www.w3.org/2000/svg">
	<style>
	h1 {
		color:red;
	}
	</style>
	<g>
		<foreignObject x="0" y="0" width="100%" height="100%" requiredExtensions="http://www.w3.org/1999/xhtml">
		<body xmlns="http://www.w3.org/1999/xhtml">
			<p>Hello, world!</p>
		</body>
	</foreignObject>
</g>
</svg>

ん? どういこと?

font faceでの書体一覧を検証する

参考サイト:http://www.jp-ia.com/_web/face.html
AR Pペン行楷書体L, AR Pペン楷書体L, AR P勘亭流H, AR P古印体B, AR P行楷書体H… Wingdings 2, Wingdings 3

大量にあるので、中心的な書体をピックアップしたいと思う

あれ、メイリオない?

-ゴシック体
-明朝体
-sanserif

さて、これをtinyMCEに実装したい
stack overflowに書いてありそう。。
https://stackoverflow.com/questions/15499198/how-to-add-a-new-font-in-tinymce-editor

あ、ここにサンプルがある
https://codepen.io/anon/pen/przvoq

tinymce.init({
  selector: 'textarea',
  height: 500,
  plugins: 'code',
  toolbar: 'undo redo | fontsizeselect fontselect',
  content_css: ['//fonts.googleapis.com/css?family=Indie+Flower'],
  font_formats: 'Arial Black=arial black,avant garde;Indie Flower=indie flower, cursive;Times New Roman=times new roman,times;'
});

そうですね、やりたいのはこういうことです。