2026年4月19日日曜日

Kalumajs/picow softAP/tone OK

アナログIO

tone(0, 200); // Generate 200Hz tone on the GPIO PIN0

delay(1000); // Wait for 1000ms (1sec)

noTone(0); // Stop the tone on the pin 0

ーーーーーーーーーーーーーーーーーーーーーーーーーーー

https://kalumajs.org/docs/api/wifi にあるコードばっちりうごいた 将来的に、これにdhtをくみあわせたい 

。-----------------------------------------------------------------------------------

 let { WiFi } = require('wifi')

let wifi = new WiFi()

let http = require('http')

console.log('Starting...')

wifi.wifiApMode({ssid: 'PicoHTTPServer', password: 'password' }, (err) => {

    if (err) {

        console.error('err', err);

        return;

    }

    console.log('access point running')

    var message = '<h1>Hello</h1>';

    var port = 80;

    console.log(port);

    var server = http.createServer((req, res) => {

        console.log('Request path: ' + req.url);

        res.writeHead(200, 'OK', {

            'Content-Type': 'text/html',

            'Content-Length': message.length,

        });

        res.write(message);

        res.end();

    });

    console.log(server);

    console.log(server._dev.ip);

    server.listen(port, function () {

    console.log('HTTP server listening on ', server._dev.ip, ' port: ', port);

    console.log(server);

    });

})


// Show client list every 10 sec.

let show_cli_interval = setInterval(() => {

        console.log("AP Client")

        var clients = wifi.getWifiApClients();

        console.log(clients);

    }, 10*1000);


// Stop server after 10 min

let close_interval = setTimeout(() => {

        wifi.disableWifiApMode();

        clearTimeout(show_cli_interval);

        console.log("WIFI AP is disabled");

    }, 600*1000);


// User can access HTTP server with "http://192.168.4.1/

2026年4月16日木曜日

Go and Mutex vs RWMutex

 Cutajar:: chap4 で変更だけlock/unlockでおこない読み出しはrlock/runlock

でやるとコア数だけ応答性が改善した

2026年4月2日木曜日

paiza cloudで外部公開サーバを立てる方法(golang)

 PaizaCloud で Go 言語の HTTP サーバを立てて外部からアクセスできるようにするには、

「0.0.0.0」で待ち受けることと、PaizaCloud のポート公開設定を行う必要があります。

以下に手順とサンプルコードを示します。

1. Go HTTP サーバのサンプルコード

package main

import (
	"fmt"
	"log"
	"net/http"
)

// ハンドラ関数
func helloHandler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "Hello from Go HTTP Server on PaizaCloud!")
}

func main() {
	http.HandleFunc("/", helloHandler)

	// PaizaCloud では 0.0.0.0 で待ち受ける必要がある
	addr := "0.0.0.0:8080"

	log.Printf("Starting server on %s ...", addr)
	if err := http.ListenAndServe(addr, nil); err != nil {
		log.Fatalf("Server failed: %v", err)
	}
}

2. PaizaCloud 側の設定

  1. PaizaCloud のエディタで上記コードを作成(例: main.go)。
  2. ターミナルで以下を実行してビルド&実行:
    go run main.go
    
  3. PaizaCloud の右側メニューにある 「Port」または「公開ポート」設定 を開く。
  4. 8080 ポートを追加して公開する。
  5. 表示される 外部アクセス用 URL(例: https://<your-id>.paiza.....)にアクセスすると、ブラウザからサーバに接続できる。login-browerでurlを確認する!

3. 注意点

  • localhost や 127.0.0.1 では外部からアクセスできないため、必ず 0.0.0.0 を指定。
  • PaizaCloud の無料プランではサーバは一定時間で停止するため、長時間稼働には向きません。
  • HTTPS は PaizaCloud 側で自動的に付与されます(Go 側で TLS 設定不要)。

✅ この方法で、PaizaCloud 上の Go HTTP サーバを外部公開できます。