Laravel2
hello.php
<?php echo "Hello world!"; ?>
$ php hello.php Hello world!
Interactive shell
$ php -a Interactive shell php > $dog = ["shibainu", "poodle", "chiwawa", "golden retriever"]; php > echo $dog[3]; golden retriever php > var_dump($dog); array(4) { [0]=> string(8) "shibainu" [1]=> string(6) "poodle" [2]=> string(7) "chiwawa" [3]=> string(16) "golden retriever" }
php > $human = array("height"=>180, "weight"=>70, "name"=>"tanaka"); php > echo $human["height"]; 180 php > echo $human["weight"]; 70 php > echo $human["name"]; tanaka
php Server
$ pwd /Users/xxxxx/laravel-projects/php $ php -S 127.0.0.1:8000 PHP 7.3.9 Development Server started at Sat Sep 28 20:14:29 2019 Listening on http://127.0.0.1:8000 Document root is /Users/xxxxx/laravel-projects/php Press Ctrl-C to quit.
http://localhost:8000/hello.php Hello world!
for , if
forloop.php
<?php for ($i=0; $i <= 100; $i++) { if ($i % 2 == 0) { echo $i.","; } } ?>
$ php forloop.php 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,
Laravel
Installing Laravel
$ brew install php@7.3 $ php -v PHP 7.3.9 (cli) (built: Sep 14 2019 18:07:55) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.9, Copyright (c) 1999-2018, by Zend Technologies
Installing Composer
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" $ ls com* composer-setup.php $ php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" Installer verified $ php composer-setup.php $ php -r "unlink('composer-setup.php');" $ ls com* composer.phar $ mv composer.phar /usr/local/bin/composer $ ls /usr/local/bin/composer /usr/local/bin/composer
Installing Laravel
$ composer global require laravel/installer $ nano .bash_profile # Laravel export PATH="$HOME/.composer/vendor/bin:$PATH" $ source .bash_profile $ ls -la .composer/vendor/bin/ laravel -> ../laravel/installer/laravel
Laravel Projects
$ mkdir laravel-projects $ cd laravel-projects $ laravel new blog $ ls -l blog drwxr-xr-x 7 staff 224 9 22 19:41 app -rw-r--r-- 1 staff 1686 9 22 19:41 artisan drwxr-xr-x 4 staff 128 9 22 19:41 bootstrap -rw-r--r-- 1 staff 1501 9 22 19:41 composer.json -rw-r--r-- 1 staff 175965 9 22 19:41 composer.lock drwxr-xr-x 15 staff 480 9 22 19:41 config drwxr-xr-x 6 staff 192 9 22 19:41 database -rw-r--r-- 1 staff 1013 9 22 19:41 package.json -rw-r--r-- 1 staff 1156 9 22 19:41 phpunit.xml drwxr-xr-x 6 staff 192 9 22 19:41 public drwxr-xr-x 6 staff 192 9 22 19:41 resources drwxr-xr-x 6 staff 192 9 22 19:41 routes -rw-r--r-- 1 staff 563 9 22 19:41 server.php drwxr-xr-x 5 staff 160 9 22 19:41 storage drwxr-xr-x 6 staff 192 9 22 19:41 tests drwxr-xr-x 42 staff 1344 9 22 19:42 vendor -rw-r--r-- 1 staff 538 9 22 19:41 webpack.mix.js -rw-r--r-- 1 staff 209001 9 22 19:41 yarn.lock
Golang10
switch
package main import ( "fmt" "strconv" ) const ( Rice = iota Onigiri Lunch Sushi Curry ) func FoodSelect(food int) string { switch food { case Rice: return "🍚" case Onigiri: return "🍙" case Lunch: return "🍱" case Sushi: return "🍣" case Curry: return "🍛" default: return "?" } } func main() { var choice string fmt.Print("Enter food (0: Rice, 1: Onigiri, 2: Lunch, 3: Sushi, 4: Curry) : ") fmt.Scan(&choice) var input int input, _ = strconv.Atoi(choice) fmt.Println(FoodSelect(input)) }
$ go run main.go Enter food (0: Rice, 1: Onigiri, 2: Lunch, 3: Sushi, 4: Curry) : 3 🍣 $ go run main.go Enter food (0: Rice, 1: Onigiri, 2: Lunch, 3: Sushi, 4: Curry) : 4 🍛 $ go run main.go Enter food (0: Rice, 1: Onigiri, 2: Lunch, 3: Sushi, 4: Curry) : 5 ?
Raspberry Pi
Raspberry Piの無線LANのアクセスポイント構築
$ sudo apt-get install hostapd dnsmasq
$ nano /etc/dhcpcd.conf interface wlan1 static ip_address=192.168.100.1/24 static routers=192.168.100.1 static domain_name_servers=192.168.100.1
$ sudo nano /etc/hostapd/hostapd.conf interface=wlan1 driver=nl80211 ssid=[YOUR_SSID] hw_mode=g channel=6 wmm_enabled=0 macaddr_acl=0 auth_algs=1 wpa=2 wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP wpa_passphrase=[YOUR_PASSWORD]
$ sudo nano /etc/default/hostapd DAEMON_CONF="/etc/hostapd/hostapd.conf"
$ sudo nano /etc/dnsmasq.conf interface=wlan1 dhcp-range=192.168.100.2,192.168.100.40,255.255.255.0,24h
$ sudo nano /etc/sysctl.conf net.ipv4.ip_forward=1
$ sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE $ sudo iptables -A FORWARD -i wlan0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT $ sudo iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT $ sudo iptables-save | sudo tee /etc/iptables.ipv4.nat
$ sudo systemctl start dnsmasq $ sudo systemctl start hostapd Failed to start hostapd.service: Unit hostapd.service is masked.
$ sudo systemctl unmask hostapd $ sudo systemctl enable hostapd $ sudo systemctl start hostapd
$ sudo update-rc.d hostapd enable
Golang9
アンダースコア変数「 _ 」
(1) for _, n := range
package main import ( "fmt" ) func main() { numbers := []int{20, 30, 40} // index for n := range numbers { fmt.Println(n) } // index, value for _, n := range numbers { fmt.Println(n) } }
$ go run main.go 0 1 2 20 30 40
(2) _, err
package main import ( "log" "os" ) func main() { _, err := os.Open("filename.ext") if err != nil { log.Fatal(err) } }
$ go run main.go 2019/09/21 13:55:04 open filename.ext: no such file or directory exit status 1
Golang8
文字列型
/var/main.go
package main import ( "fmt" "strings" ) func main() { fmt.Println("Hello World") fmt.Println("Hello " + "World") fmt.Println("Hello World"[0]) fmt.Println(string("Hello World"[0])) var s string = "Hello World" s = strings.Replace(s, "o", "a", 1) fmt.Println(s) fmt.Println(strings.Contains(s, "World")) fmt.Println("\"") fmt.Println(`"`) }
$ go run main.go Hello World Hello World 72 H Hella World true " "
論理値型
package main import "fmt" func main() { t, f := true, false fmt.Printf("%T %t\n", t, t) fmt.Printf("%T %t\n", f, f) fmt.Println("&&") fmt.Println(true && true) fmt.Println(true && false) fmt.Println(false && false) fmt.Println("||") fmt.Println(true || true) fmt.Println(true || false) fmt.Println(false || false) fmt.Println("!") fmt.Println(!true) fmt.Println(!false) }
go run main.go bool true bool false && true false false || true true false ! false true
Golang7
数値型:
「整数型」
uint8 unsigned 8-bit integers (0 to 255) uint16 unsigned 16-bit integers (0 to 65535) uint32 unsigned 32-bit integers (0 to 4294967295) uint64 unsigned 64-bit integers (0 to 18446744073709551615) int8 signed 8-bit integers (-128 to 127) int16 signed 16-bit integers (-32768 to 32767) int32 signed 32-bit integers (-2147483648 to 2147483647) int64 signed 64-bit integers (-9223372036854775808 to 9223372036854775807)
「浮動小数点型」
float32 IEEE-754 32-bit floating-point numbers float64 IEEE-754 64-bit floating-point numbers
「複素数型」
complex64 complex numbers with float32 real and imaginary parts complex128 complex numbers with float64 real and imaginary parts
/var/main.go
package main import "fmt" func main() { var ( u8 uint8 = 255 i8 int8 = 127 f32 float32 = 0.2 c64 complex64 = -5 + 12i ) fmt.Println(u8, i8, f32, c64) fmt.Printf("type=%T value=%v\n", u8, u8) }
$ go run main.go 255 127 0.2 (-5+12i) type=uint8 value=255
インクリメント
package main import "fmt" func main() { x := 0 fmt.Println(x) x++ fmt.Println(x) x-- fmt.Println(x) }
$ go run main.go 0 1 0
2進数
package main import "fmt" func main() { fmt.Println(1 << 0) fmt.Println(1 << 1) fmt.Println(1 << 2) fmt.Println(1 << 3) }
$ go run main.go 1 2 4 8