はてなキーワード: flexとは
<html lang="ja"> <head> <meta charset="UTF-8"> <title>GrokのPONGゲーム</title> <style> body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #1a1a1a; } canvas { border: 2px solid #00ff00; background: #000; } #score { color: #00ff00; font-family: 'Courier New', monospace; font-size: 24px; position: absolute; top: 20px; width: 100%; text-align: center; } </style> </head> <body>0 : 0<canvas id="gameCanvas" width="800" height="400"></canvas> <script> const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); const scoreDisplay = document.getElementById('score'); // ゲームオブジェクト const ball = { x: canvas.width / 2, y: canvas.height / 2, radius: 10, speedX: 5, speedY: 5 }; const paddleLeft = { x: 10, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 8 }; const paddleRight = { x: canvas.width - 20, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 8 }; let scoreLeft = 0, scoreRight = 0; // キー入力 const keys = { w: false, s: false, ArrowUp: false, ArrowDown: false }; document.addEventListener('keydown', e => { if (keys.hasOwnProperty(e.key)) keys[e.key] = true; }); document.addEventListener('keyup', e => { if (keys.hasOwnProperty(e.key)) keys[e.key] = false; }); // ゲームループ function gameLoop() { // 移動 if (keys.w && paddleLeft.y > 0) paddleLeft.y -= paddleLeft.speed; if (keys.s && paddleLeft.y < canvas.height - paddleLeft.height) paddleLeft.y += paddleLeft.speed; if (keys.ArrowUp && paddleRight.y > 0) paddleRight.y -= paddleRight.speed; if (keys.ArrowDown && paddleRight.y < canvas.height - paddleRight.height) paddleRight.y += paddleRight.speed; // ボール移動 ball.x += ball.speedX; ball.y += ball.speedY; // 壁衝突 if (ball.y + ball.radius > canvas.height || ball.y - ball.radius < 0) ball.speedY = -ball.speedY; // パドル衝突 if ( (ball.x - ball.radius < paddleLeft.x + paddleLeft.width && ball.y > paddleLeft.y && ball.y < paddleLeft.y + paddleLeft.height) || (ball.x + ball.radius > paddleRight.x && ball.y > paddleRight.y && ball.y < paddleRight.y + paddleRight.height) ) { ball.speedX = -ball.speedX * 1.05; // 少し加速 } // 得点 if (ball.x < 0) { scoreRight++; ballReset(); } if (ball.x > canvas.width) { scoreLeft++; ballReset(); } // 描画 ctx.fillStyle = '#000'; ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.fillStyle = '#00ff00'; ctx.fillRect(paddleLeft.x, paddleLeft.y, paddleLeft.width, paddleLeft.height); ctx.fillRect(paddleRight.x, paddleRight.y, paddleRight.width, paddleRight.height); ctx.beginPath(); ctx.arc(ball.x, ball.y, ball.radius, 0, Math.PI * 2); ctx.fill(); scoreDisplay.textContent = `${scoreLeft} : ${scoreRight}`; requestAnimationFrame(gameLoop); } function ballReset() { ball.x = canvas.width / 2; ball.y = canvas.height / 2; ball.speedX = (Math.random() > 0.5 ? 5 : -5) * (Math.random() * 0.5 + 0.75); ball.speedY = (Math.random() * 4 - 2); } gameLoop(); </script> </body> </html>
<html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>PONG Game</title> <style> body { margin: 0; padding: 0; background-color: #000; display: flex; justify-content: center; align-items: center; min-height: 100vh; font-family: 'Courier New', monospace; color: white; } ``` .game-container { text-align: center; } canvas { border: 2px solid white; background-color: #000; } .score { font-size: 24px; margin: 20px 0; letter-spacing: 2px; } .controls { margin-top: 20px; font-size: 14px; opacity: 0.8; } .start-button { background-color: #333; color: white; border: 2px solid white; padding: 10px 20px; font-size: 16px; cursor: pointer; font-family: 'Courier New', monospace; margin: 10px; } .start-button:hover { background-color: white; color: black; } </style> ``` </head> <body> ``` <script> // Canvas要素とコンテキストの取得 const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); // ゲームの状態管理 let gameRunning = false; let animationId; // スコア要素の取得 const playerScoreElement = document.getElementById('playerScore'); const computerScoreElement = document.getElementById('computerScore'); // ゲームオブジェクトの定義 const game = { // プレイヤーのパドル(左側) playerPaddle: { x: 10, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 5, upPressed: false, downPressed: false }, // コンピューターのパドル(右側) computerPaddle: { x: canvas.width - 20, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 3.5, // プレイヤーより少し遅く設定 targetY: canvas.height / 2 - 50 }, // ボールの設定 ball: { x: canvas.width / 2, y: canvas.height / 2, radius: 8, speedX: 4, speedY: 3, maxSpeed: 8 }, // スコアの管理 score: { player: 0, computer: 0 } }; // キーボード入力の処理 const keys = {}; // キーが押されたときの処理 document.addEventListener('keydown', (e) => { keys[e.key.toLowerCase()] = true; // ゲームが停止中にスペースキーでゲーム開始 if (e.key === ' ' && !gameRunning) { startGame(); } }); // キーが離されたときの処理 document.addEventListener('keyup', (e) => { keys[e.key.toLowerCase()] = false; }); // パドルの移動処理 function updatePaddles() { // プレイヤーパドルの移動(W/S キーまたは矢印キー) if (keys['w'] || keys['arrowup']) { game.playerPaddle.y -= game.playerPaddle.speed; } if (keys['s'] || keys['arrowdown']) { game.playerPaddle.y += game.playerPaddle.speed; } // プレイヤーパドルの画面外移動を防ぐ if (game.playerPaddle.y < 0) { game.playerPaddle.y = 0; } if (game.playerPaddle.y > canvas.height - game.playerPaddle.height) { game.playerPaddle.y = canvas.height - game.playerPaddle.height; } // コンピューターパドルのAI処理 // ボールの位置を追跡するが、完璧ではない動きを実装 const ballCenterY = game.ball.y; const paddleCenterY = game.computerPaddle.y + game.computerPaddle.height / 2; // ボールとパドルの中心の差を計算 const difference = ballCenterY - paddleCenterY; // 反応に少し遅れを持たせる(人間らしい動き) if (Math.abs(difference) > 10) { if (difference > 0) { game.computerPaddle.y += game.computerPaddle.speed; } else { game.computerPaddle.y -= game.computerPaddle.speed; } } // コンピューターパドルの画面外移動を防ぐ if (game.computerPaddle.y < 0) { game.computerPaddle.y = 0; } if (game.computerPaddle.y > canvas.height - game.computerPaddle.height) { game.computerPaddle.y = canvas.height - game.computerPaddle.height; } } // ボールの移動と衝突判定 function updateBall() { // ボールの位置を更新 game.ball.x += game.ball.speedX; game.ball.y += game.ball.speedY; // 上下の壁との衝突判定 if (game.ball.y - game.ball.radius < 0 || game.ball.y + game.ball.radius > canvas.height) { game.ball.speedY = -game.ball.speedY; } // プレイヤーパドルとの衝突判定 if (game.ball.x - game.ball.radius < game.playerPaddle.x + game.playerPaddle.width && game.ball.x + game.ball.radius > game.playerPaddle.x && game.ball.y + game.ball.radius > game.playerPaddle.y && game.ball.y - game.ball.radius < game.playerPaddle.y + game.playerPaddle.height) { // ボールがパドルに当たった位置によって跳ね返り角度を調整 const hitPos = (game.ball.y - (game.playerPaddle.y + game.playerPaddle.height / 2)) / (game.playerPaddle.height / 2); game.ball.speedX = Math.abs(game.ball.speedX); game.ball.speedY = hitPos * 4; // ボールの速度を少し上げる(ゲームをエキサイティングに) if (Math.abs(game.ball.speedX) < game.ball.maxSpeed) { game.ball.speedX *= 1.02; } } // コンピューターパドルとの衝突判定 if (game.ball.x + game.ball.radius > game.computerPaddle.x && game.ball.x - game.ball.radius < game.computerPaddle.x + game.computerPaddle.width && game.ball.y + game.ball.radius > game.computerPaddle.y && game.ball.y - game.ball.radius < game.computerPaddle.y + game.computerPaddle.height) { // ボールがパドルに当たった位置によって跳ね返り角度を調整 const hitPos = (game.ball.y - (game.computerPaddle.y + game.computerPaddle.height / 2)) / (game.computerPaddle.height / 2); game.ball.speedX = -Math.abs(game.ball.speedX); game.ball.speedY = hitPos * 4; // ボールの速度を少し上げる if (Math.abs(game.ball.speedX) < game.ball.maxSpeed) { game.ball.speedX *= 1.02; } } // ボールが左右の壁を越えた場合(得点処理) if (game.ball.x < 0) { // コンピューターの得点 game.score.computer++; updateScore(); resetBall(); } else if (game.ball.x > canvas.width) { // プレイヤーの得点 game.score.player++; updateScore(); resetBall(); } } // ボールをリセット(得点後の処理) function resetBall() { game.ball.x = canvas.width / 2; game.ball.y = canvas.height / 2; // ランダムな方向でボールを発射 game.ball.speedX = (Math.random() > 0.5 ? 4 : -4); game.ball.speedY = (Math.random() - 0.5) * 6; } // スコア表示の更新 function updateScore() { playerScoreElement.textContent = game.score.player; computerScoreElement.textContent = game.score.computer; } // 描画処理 function draw() { // 画面をクリア ctx.fillStyle = '#000'; ctx.fillRect(0, 0, canvas.width, canvas.height); // 中央の点線を描画 ctx.setLineDash([5, 5]); ctx.beginPath(); ctx.moveTo(canvas.width / 2, 0); ctx.lineTo(canvas.width / 2, canvas.height); ctx.strokeStyle = '#fff'; ctx.stroke(); ctx.setLineDash([]); // プレイヤーパドルを描画 ctx.fillStyle = '#fff'; ctx.fillRect(game.playerPaddle.x, game.playerPaddle.y, game.playerPaddle.width, game.playerPaddle.height); // コンピューターパドルを描画 ctx.fillRect(game.computerPaddle.x, game.computerPaddle.y, game.computerPaddle.width, game.computerPaddle.height); // ボールを描画 ctx.beginPath(); ctx.arc(game.ball.x, game.ball.y, game.ball.radius, 0, Math.PI * 2); ctx.fillStyle = '#fff'; ctx.fill(); // ゲームが停止中の場合、メッセージを表示 if (!gameRunning) { ctx.fillStyle = '#fff'; ctx.font = '20px Courier New'; ctx.textAlign = 'center'; ctx.fillText('ゲーム開始ボタンを押してください', canvas.width / 2, canvas.height / 2 + 60); } } // ゲームのメインループ function gameLoop() { if (!gameRunning) return; updatePaddles(); updateBall(); draw(); animationId = requestAnimationFrame(gameLoop); } // ゲーム開始 function startGame() { gameRunning = true; gameLoop(); } // ゲームリセット function resetGame() { gameRunning = false; if (animationId) { cancelAnimationFrame(animationId); } // スコアをリセット game.score.player = 0; game.score.computer = 0; updateScore(); // ボールとパドルの位置をリセット game.ball.x = canvas.width / 2; game.ball.y = canvas.height / 2; game.ball.speedX = 4; game.ball.speedY = 3; game.playerPaddle.y = canvas.height / 2 - 50; game.computerPaddle.y = canvas.height / 2 - 50; draw(); } // 初期描画 draw(); </script> ``` </body> </html>
最近秋葉原の「U Mobile Shop」で開催されたセールで購入したIntel NUCキット(NUC6CAYS)に
ついてのレビューです。
このミニPCは、その小さなボディに秘めた可能性に驚かされることばかりでした。
それでは、購入から設定、そして実際の使用感まで、詳しく見ていきましょう。
NUC6CAYSの画像: https://i.imgur.com/LrfNMrA.jpeg
1. 購入経緯
2024年9月14日、秋葉原の「U Mobile Shop」とそのオンラインストアで中古ミニPCのセールが
開始されました。
オンラインストアは午前0時からスタートし、私はこの機会を逃すまいと注文しました。
Intel製Windows 10ミニPC中古が3,000円でセール!【Intel NUCキット】
https://daily-gadget.net/2024/09/12/post-77177/
セールの目玉商品だったIntel NUCキット(NUC6CAYS)の仕様は以下の通りでした:
- メモリ: 4GB
- ストレージ: 32GB
- OS: Windows 10 Home
https://youtu.be/Q9gM8jAOf_0?si=kr-9lrfr20P0eG-Z
残念ながらWindows11には非対応ですが、そのために価格は3,000円!でした。
2. 開封と初期の印象
商品が届いてすぐに開封しました。外観は予想以上にきれいで、ミニPCとは思えないほど
頑丈そうで加工精度が高い印象を受けました。
手に取ってみると、その小さな筐体からは想像できないほどの重量感があり、
a. まず、HDMIケーブルでモニターに接続し、2.4GHz帯のワイヤレスキーボード
b. 電源を入れると、問題なくモニターに映像が表示され、キーボードとタッチパッドも
c. BIOS画面はIntel独自のデザインで、タッチパッドでスムーズに操作できました。
3-2. Windows 10の起動
そのまま起動すると、内蔵eMMC(32GB)にインストールされていたWindows 10が
立ち上がりました。起動は速く、基本的な操作も問題なくできました。
ただし、機能更新プログラムのバージョンは相当古いものでした。
注目すべき点は、CPUファンが搭載されているにもかかわらず、とても静かだったことです。
デスクトップ環境として使用する上で、この静音性は大きなメリットだと感じました。
ネットで見つけた分解写真: https://i.imgur.com/BXApN8U.png
まず、空きスロットに8GBのDDR3Lのメモリを追加で挿し、12GBに増設しました。
BIOSで問題なく認識され、システムの応答性が向上したように感じました。
次に、2.5インチSATA SSD 1TBを増設しました。内蔵の増設スロットを利用したので、
取り付けは非常に簡単でした。
4-3. eMMCの無効化
搭載されていたeMMCは容量が32GBと限られていたため、BIOSから無効化することにしました。
ただし、元のWindows 10インストールを保険として残しておきたかったので、
完全に消去することはしませんでした。
無効化後、NUC6CAYSを起動すると新しく増設した2.5インチSATA SSDにインストール
されていたWindows 10が問題なく起動しました。
Windows 10も快適に動作しましたが、さらに軽量なOSでの使用感を試すため、
a. インストール自体はスムーズに完了し、特に問題は発生しませんでした。
c. YouTube FHDの60FPS動画も問題なく再生でき、Wi-Fi接続も安定していました。
Chrome OS Flex上でいくつかのベンチマークテストを実行しました:
シングルスコア:約15,000 マルチスコア:約110,000
b. WebGL Aquarium:5,000匹の魚で約35FPS
ベンチマークの画像: https://i.imgur.com/5zmXXbc.jpeg
これらの結果から、高性能とは言えないものの、日常的な使用には耐える性能を
持っていることがわかりました。
特筆すべきは、これらのテスト中もファンの音がほとんど聞こえなかったことです。
天板に直接耳を当てないと音が聞き取れないほどの静音性は驚きでした。
6.総評
Intel NUCキット(NUC6CAYS)は、その小さなボディからは想像できないほどの
可能性を秘めていました。
6-1. 長所:
- 驚くほどの静音性
6-2. 短所:
- 高負荷のタスクには向かない
- 自宅用のChromebox的な使い方
3,000円という破格の価格で手に入れたこのマシンですが、その価値は金額をはるかに
超えています。
拡張性、静音性、そしてある程度の性能を兼ね備えたこのミニPCは、様々な用途に適応
できる素晴らしいマシンだと言えると感じました。
Chrome OS Flexの検証に続いて、Linux開発環境の可能性も探ってみました。結果は予想以上に良好で、
Chrome OS Flex上でLinux(Beta)を有効にし、開発環境をセットアップしました。
Linux開発環境の画像: https://i.imgur.com/8URQQSU.png
Linux環境で、以下のアプリケーションをインストールし、動作を確認しました:
参考サイト:初期設定&日本語入力を使えるようにする方法|ChromebookでLinux
https://catalyst-wakaba.com/linux-on-chrome-os/
最近戸建てに引っ越し、それまでのマンションのリビングで使っていたデスクトップを2階に置いたところ全然使わなくなってしまった
まだ小さい子どもの相手でリビングに居ないといけないのと、単純に2階に上がるのが面倒だからだ
ただ、調べものをするのにどうしてもスマホではやりづらく、また紙に印刷して検討したいタイプの人間なので、ノートPCが欲しくなって中古含めて色々検討したが、そのために数万払うのもアホらしくてやめた
荷物を整理していたら10年くらい前に買ったacerのaspire v5というノートPCが出てきたので、ここで俺は一計を案じ、Chrome OSを入れてみることにした
このPCには数年前にLinux mintを入れたのだが、Linuxのコマンドを覚えるのに挫折してそのままだった
少しでも動作を改善しようとアマゾンで250GのSSDとメモリ8Gを買った
両方合わせても5000円しなかったので、いい時代になったものだ
裏蓋を開けるのが怖かったので検索すると、こんな古いマイナー機種でも分解動画とかがあって助かった
デスクトップPCでChrome OS Flexをダウンロードして、USBメモリを起動用ドライブにする
あとはそれをノートPCに差して電源を入れてしばし待つと、Chrome OSが立ち上がった
画面の指示に従ってSSDにインストールし、再起動してSSDから立ち上げようとするも、BIOSの画面が出て起動用ドライブが見つからんとのこと
このままではSSDとメモリの投資が無駄になってしまう…と必死で解決策を調べる
結局BIOSをUEFIからLegacyにしたらすんなり起動した
最近戸建てに引っ越し、それまでのマンションのリビングで使っていたデスクトップを2階に置いたところ全然使わなくなってしまった
まだ小さい子どもの相手でリビングに居ないといけないのと、単純に2階に上がるのが面倒だからだ
ただ、調べものをするのにどうしてもスマホではやりづらく、また紙に印刷して検討したいタイプの人間なので、ノートPCが欲しくなって中古含めて色々検討したが、そのために数万払うのもアホらしくてやめた
荷物を整理していたら10年くらい前に買ったacerのaspire v5というノートPCが出てきたので、ここで俺は一計を案じ、Chrome OSを入れてみることにした
このPCには数年前にLinux mintを入れたのだが、Linuxのコマンドを覚えるのに挫折してそのままだった
少しでも動作を改善しようとアマゾンで250GのSSDとメモリ8Gを買った
両方合わせても5000円しなかったので、いい時代になったものだ
裏蓋を開けるのが怖かったので検索すると、こんな古いマイナー機種でも分解動画とかがあって助かった
デスクトップPCでChrome OS Flexをダウンロードして、USBメモリを起動用ドライブにする
あとはそれをノートPCに差して電源を入れてしばし待つと、Chrome OSが立ち上がった
画面の指示に従ってSSDにインストールし、再起動してSSDから立ち上げようとするも、BIOSの画面が出て起動用ドライブが見つからんとのこと
このままではSSDとメモリの投資が無駄になってしまう…と必死で解決策を調べる
結局BIOSをUEFIからLegacyにしたらすんなり起動した
たとえばulをフレックスコンテナとして、その子要素liの子要素imgに対してmax-width:100%をかけていたとします。
デフォルトだと、imgを内包したliがulの中で横並びになり、さらにliの横幅は自動的に親要素の横幅をliの個数で割った分だけ縮小されますが、ここでflex-wrapにwrapをかけると、imgで表示する画像のサイズがある程度大きいと、wrapとしないときよりもliごと大きく表示されます。
しかしliの横幅はそもそも指定していなくて、しかもその子要素のimgに対してmax-width:100%をかけているということは、そのcssの指定の意味を論理的な日本語で表すならば、imgはliの大きさを基準にその100パーセント分の大きさで表示しろという意味の指定になると思います。
しかしその基準であるliの大きさを定めていないのだから、imgの大きさも定まりようがないというのが論理的な解釈だと思います。
それでも実際はwrapをかけるかかけないかでそれぞれ一意的にある大きさでimgが表示されるわけです。
ようするにcssはそこに記述されているプロパティの兼ね合いで最終的にある要素がどういう風に表示されるのか、その挙動を理詰めで予測するのが困難な部分があって、それはプログラミング言語よりもある種厄介な癖として立ちはだかっているように思います。
上記の例の場合も理詰めで挙動を予測するには、プロパティの性質に関する論理的な情報が不足しているように感じます。「imgはliの大きさを基準にその100パーセント分の大きさで表示しろ」という情報から、実際どのような大きさでliやimgが表示されるのかはっきり言って予測しようがないと思います。
多くの参考書にもどう挙動するのか一意的な推測を可能とするだけの情報は書かれていません。
もしかしたらcssの公式の仕様を端から端まで参照することで過不足なく挙動を把握するための情報が手に入るのかもしれませんが、仕様のどこか今の自分の仕事にとって必要な情報なのか見極めるのにはなかなか困難なところがあるという意味で、情報に対するアクセスの困難性があると思います。
私はjavaも学習しました。極めたというところには全く到達していませんが、それでもああいった言語は書いた通りに動くものであるということを実感しています。つまり自分が今書いた、書こうとしているコードがどのような動きをするのかを予測するための、各記法や関数に関する文法が情報として過不足なく学習者に提供されているように思います。
cssにも事実上として「文法」なるものはあることは前述の例からも疑いの余地がない(先に書いた解釈以上に要素の表示を決定づけるための文法がないなら、要素の大きさは決定不能ということになる)のに、その情報がいまいち曖昧に提供されているきらいがあるように感じます。
https://coliss.com/articles/build-websites/operation/css/about-css-layout-algorithms.html
↑このような「レイアウトアルゴリズム」と語るサイトも見つけはしましたが、私の言っている文法、すなわち、要素の表示のされ方を決定づけるための処理のフローと、概念的に同質なのかはいまいち不明です。
他の端的な例としては隣接する要素同士がネガティブマージンなので重なった場合、z-indexを指定してない場合はどういう法則でどちらの要素が上にくるのかとかも、本来は明確なアルゴリズム、文法に則って決定されているはずなのに、多くの初学者あるいは中級以上の方でさえも当て推量とセンスと試行錯誤で、なんとか自分の意図通りの表示になるように調整を繰り返すことを余儀なくされているかもしれません(意外と単純で要素の名前について辞書順ベースでどちらが上にくるか決定されてる?)。理詰めで考えさえて設計しさえすれば一発で自分で思い通りの挙動(表示)をさせる、ということが困難な言語がCSSの癖として立ちはだかっているように思います。それはある種プログラミング言語が持つそれよりも厄介な癖だと思います。プログラミング言語の方がある意味で「素直」に挙動してくれると私は思います。
同じように感じた人は教えてください。またそういう感覚を卒業してCSSの挙動が論理的に手に取るようににわかるぞという方は今後の学習に関するアドバイスをしていただけると助かります。
福井県池田町が異獣政策に力を入れているらしく、その文言がSNSで炎上しているようだ。
https://www.fukuishimbun.co.jp/articles/-/1722329
そこで、余り手を入れずジャンジャンバリバリ棄民が来てくださる様に僭越ながらArrangementをしようと思う。池田町の関係者の皆様、参考にしてみて。
-----
第1条 集落の一員であること、池田町民であることを自覚してください。
○総人口の少ない池田町ではありますが、私たちは 33 の集落において相互扶助を土台に安全で豊かな共同社会を目指しています。例え貧弱な役立たずであったとしても『人柱』としてお役立ち頂きます。
第2条 参加、出役を求められる地域行事の多さとともに、都市にはなかった面倒さの存在を自覚し協力してください。
○池田町の風景や生活環境の保全、祭りなどの文化の保存は、集落毎に行われる共同作業や集落独自の活動によって支えられています。共同して暮らす場を守るためにも参加協力ください。また、貧弱な役立たずであったとしても『人柱』としてお役立ち頂きます。
○草刈り機は必需品です、回を重ね使い込むことで技術上達が図れます。 もし習得出来ない場合はあなたの家の庭先をミント塗れにします。
○このことを「面倒だ」「うっとうしい」「町長死ね」と思う方は、池田暮らしは難しいです。ですが、例えクソの役にも立たなくとも『人身御供』と言う方法でお役立ち頂きます。
第3条 集落は小さな共同社会であり、支え合いの多くの習慣があることを理解してください。
○生活の基盤は集落であり、長い年月に渡って様々な行事や集まりを通して暮らしを支えてきました。故事にこうあります『お前のものはオレのもの。オレのものはオレのもの』。この偉大なる先人のお言葉をしかと受け止め身に着けましょう。
第4条 今までの自己価値観を押し付けないこと。また都会暮らしを地域に押し付けないよう心掛けてください。Amazon Flexの配達員は基本襲撃の対象ですし荷物は奪います。
○集落での生活は、ご近所などとの密な暮らしの日々があります。土葬など都市では見られなかったルールや仕組みもありますが、皆で折り合いを付けながら培ってきたものです。 道の脇に土まんじゅうを多く見る事があると思いますが、殺して埋めた村民や移住者のご遺体が埋葬されています。事実上の町営の共同墓地です。
○これまでの都市暮らしと違うからといって都会風を吹かさないよう心掛けてください。やむを得ずタワー型マンションを建築する際は数部屋程度を町に無償で貸与出来るものとし、シティーボーイ(死語)っぷりが過剰な場合は殺して埋めます。
第5条 プライバシーが無いと感じるお節介があること、また多くの人々の注目と品定めがなされていることを自覚してください。その為に興信所や探偵社を使い事前に素性を調べ、移住後も監視カメラや隠しマイクなどを住居に設置します。
○どのような地域でも、共同体の中に初顔の方が入ってくれば「殺して脾臓や子宮でも食われるのでは?」と不安に感じるものであり「どんな人か? 何をする人か? どうして池田に? 猟銃持ったキチガイが川俣軍司ごっこしに来た?」と品定めされることは自然です。
○干渉、お節介と思われるかも知れませんが、相撲用語で言うところの『かわいがり』的な意味で、仲間入りへの愛情表現とご理解ください。
第6条 集落や地域においての、濃い人間関係を積極的に楽しむ姿勢を持ってください。 ここだけの話、婚姻の有無や性自認問わず夜這いを推奨しています。
○静かでのどかな池田町ならではの面白さとして、ご近所や色々な出会いの中での会話を楽しんでください。主に新入りや町長の悪口が大半です。
第7条 時として自然は脅威となることを自覚してください。特に大雪は暮らしに多大な影響を与えることから、ご近所の助け合いを心掛けてください。新入りは何の思い入れも無いので真っ先に犠牲になってもらいます。
○池田町は 2004 年の福井豪雨災害で大きな被害を受けて以来、集落防災隊長を設置し延焼した家屋は破壊するなど江戸時代の町火消を参考にしSDGsに適った地域防災力を高める取り組みを推進しています。
○また、池田町には「雪で争うな、春になれば恨みだけが残る。なので冬場で確実にケリをつけろ。殺せ」という教えがあります。積雪時、大雪時での譲り合い、助け合いを心掛けてください。また不義理された相手に決闘を申し込んでも構いませんが、その際は決闘罪で逮捕します。
俺が今気になってるのはとにかく綺麗で安いこいつなんだ
https://www.aliexpress.us/item/1005005007385719.html
1BAイヤホンという音質的には期待できなさそうな見えてる地雷ながらカスタムIEMみたいな透明度高いレジンシェルで惹かれる
1BAにはロマンがあるしな、一応BAポン置きじゃなくて音導管あるレジン充填だからカスカスにはならんだろうし
お値段はセラークーポン込みで$22.8だな、RevolutでUSDで払えば3,063円、Ali側の円で払えば3,256円か?
ここのCallaっていう1DDのイヤホンはかなり当たりだった
3000円弱のイヤホンが出して良い音質じゃないくらい全帯域聴き応えがあってdriver flex問題(装着時のペコペコ音)が気になる以外は傑作
ノChromeOS Flex
■写真
https://i.imgur.com/ry7afWi.jpg
■スペック
メモリ:4GB
ストレージ:SSD256GB
■その他
・4GB→8GBにメモリー換装したがシリコンパワー製メモリでは相性問題でNGだった
・Linux環境自体は動いたが、Breveだと問題ないが、AssaultCubeは正直重い
・テントモードは、ファンレスなので冷却的には有効。バッテリーの持ちも良いかも
・画面の回転は設定でできるが、Flex側でショートカットCtrl+Shift+F3でいける
Dellの安物PCInspiron 11 3162をChrome Book Flex機として使っていたが
充電できなくなり困っっていた。
状況
1.ジャンクでInspiron 11 3162を2,376 円で入手。ACアダプター付属なし
2.ヤフオクで純正45W中古アダプターをで購入1,000 円で購入→充電されず
3.ACプラグの変換プラグを使い他機種ACアダプターで試す→2回程度充電できたがその後ダメ
4.PC側の差し込み口不良を疑い、部品を中国から購入(100円くらい)→部品違いで装着できず
5.PC側の差し込み口不良を疑い、サイド部品を中国から購入(500円くらい)→充電されず
6.BIOS更新すると治るとの情報があった→WindowsでないとBIOS更新できず
7.Windows10がインストール済みのHDDをUSBにさしてBIOS更新→バッテリー残量10%以上でないとBIOS更新できず
8.Dell専用のACプラグの変換プラグ(400円)を使いDELLの65Wアダプターで給電→充電された
9.バッテリー残量10%以上になったので7を実施→BIOS更新できた
10.BIOS更新できたので2のアダプタで試す→→充電されず
結局、純正45Wでは充電できず、DELL 65Wで充電できた。
なんなんだ…これは???
https://i.imgur.com/CsJedLV.png
■スペック
Celeron N3450 RAM 8GB SSD 240GB
・使用期間:10日くらい
■その他
・ClipChampで動画編集、書き出し可能(書き出し時間は2〜3倍程度)
・Linux環境でVSCODE,Filezilla,mousepad,Brave,discover使用できた
・Flex側でChrome、Linux側でBrave上げても問題なく動く
■?なところ
・Linux側でIMEを最初に1回オフオンしないと一部キーが反応しない
■感想
AutoChessとSet1かじったぐらいの経験
24ゲーム/Top4 62.5%/Won 33.3%/Avg 3.83
そこそこ良い成績だと思ってます。
4コス依存度の高い構成が中盤耐えれなくて負けやすい、3コスキャリーが安定して勝てる気がする。
Lv7で止まってトリン☆3を目指す。血剣-Crit
Viとレナータの競争率が高いのでそれぞれツイッチセジュでFlex
最初の青アイテムからチョガスが出るorミュータント強化のオーグメントが出たらラッシュ
スカラー目的でマルザ、ブルーザー目的でレクサイが取られがちなので注意
ヨードルがいるとコーキが来ないので早めに☆2にしておく