docker-compose.yml
services:
mailhog:
image: mailhog/mailhog
container_name: mailhog
ports:
| //proxy local | |
| //npm install http-proxy | |
| //npm install http-proxy-middleware | |
| //node server.js | |
| //http://demo1.lvh.me:8082 from demo1.lvh.me:8180 of server (server domain need *.lvh.me ) (lvh.me dns default for localhost) | |
| //http://blog.lvh.me:8082 | |
| //http://api.lvh.me:8082 |
| ; ================= ESP32-S2 ================= | |
| [env:esp32s2] | |
| platform = espressif32 | |
| board = lolin_s2_mini | |
| framework = arduino | |
| ; Cấu hình cực kỳ quan trọng cho S2 Mini | |
| build_flags = |
| RTC GPIO chân này có thể làm gì nhỉ | |
| RTC GPIO là những chân đặc biệt có thể hoạt động ngay cả khi chip đang ở chế độ deep sleep. | |
| 1. Đánh thức từ chế độ ngủ (Wakeup from Deep Sleep) | |
| Bạn có thể cấu hình để ESP32-S3 tự động đánh thức khi có tín hiệu từ bên ngoài (ví dụ: nút nhấn, cảm biến...) | |
| 2. Giữ trạng thái chân khi ngủ (GPIO Hold) | |
| Khi ESP32-S3 vào chế độ deep sleep, các chân GPIO thường bị reset về trạng thái mặc định. | |
| Với RTC GPIO, bạn có thể giữ nguyên trạng thái HIGH hoặc LOW trong suốt thời gian ngủ. |
| [env:esp32c3] | |
| platform = espressif32 | |
| board = esp32-c3-devkitm-1 | |
| framework = arduino | |
| monitor_speed = 115200 | |
| build_flags = | |
| -DARDUINO_USB_CDC_ON_BOOT=1 | |
| -DARDUINO_USB_MODE=1 |
| <?php | |
| namespace App\Console\Commands; | |
| use App\Repositories\PriceImportExportRepository; | |
| use Illuminate\Console\Command; | |
| use App\Models\PriceImportExport; | |
| use Illuminate\Support\Facades\DB; | |
| use OpenSpout\Writer\XLSX\Writer; |
| <?php | |
| function get_absolute_root_url_my($with_scheme = true) | |
| { | |
| $url = ''; | |
| if ($with_scheme) | |
| { | |
| $host = ''; | |
| if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8" /> | |
| <title>Email Validation Strict Demo</title> | |
| <style> | |
| input { | |
| width: 320px; | |
| padding: 8px; | |
| font-size: 16px; |
| //nq57.mst.gov.vn | |
| function isDeveloperToolsShortcut(e) { | |
| const isF12 = e.key === "F12"; | |
| const isCtrlShiftKeyCombo = (e.ctrlKey || e.metaKey) && e.shiftKey && ["I", "J", "C"].includes(e.key); | |
| const isCtrlU = (e.ctrlKey || e.metaKey) && e.keyCode === 85; | |
| return isF12 || isCtrlShiftKeyCombo || isCtrlU; | |
| } |
| window.addEventListener('beforeunload', function (e) { | |
| console.log('Tab is about to be closed'); | |
| // Optionally show a confirmation dialog (not supported in all browsers) | |
| e.preventDefault(); | |
| e.returnValue = ''; | |
| }); |