Laravel2

php

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

Installing PHP (PHP >= 7.2.0)

$ 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