将棋ウォーズでようやく勝てました。

3分切れ負けを4度くらいやったのですが、全部時間が足らずに負けました。

10分切れ負けにしたのですが、それでも負けて1度詰みまでいってたのに、金を打つべきところを角を打ってしまって、その後に逆転負け。

その後ようやく勝てて、内容は非常に悪かったけど。

最初に操作ミスで、飛車を歩の真ん前に移動してまって、いきなり飛車落ち状態になってしまって。その後色々ミスしたけど、相手の方もミスしてくれてなんとか勝てました。

以下が棋譜。リツートしてやるとこのURLを貰えるみたい。(リツイートしなくてももらえるのかもしれないけど、やり方まだわかってない)

https://kif-pona.heroz.jp/games/pano1-TheRyouta0731-20190528_174922?tw=1

動画にしようとしたのですが、よくよく考えると、将棋ウォーズのIDがまずかった。変更しようとしましたが、どうやら変更は不可能なようで、一旦上のIDを消すために、一旦大会して、再度登録しなおしました。

何度も繰り返すとブラックリスト入りして、復活不可能になるそうです。

新しいID一発目の将棋の棋譜が以下になります。

https://kif-pona.heroz.jp/games/NM_Max_game-Zaqwsxcderfvbgt-20190528_190938?tw=1

正直勝てないとおもったのですが、(相手の方の段位が5級だったので)

将棋下手で、将棋実況やってる人いないので、こっちもやってみることにします。

Youtube動画は以下になります。(将棋ウォーズで初勝利)

以下がIDを変更後の初勝利の動画になります。

Ruby on RailsのTutorial 4章やりました。

4章に関しては、Railsというより、Rubyの内容が多かったので、動画にしにくいので、動画は作らないかもしれません。

やるとしたら、がっつり内容削るか、いつもテキストを音声にしてくれるChromeのアドオンを利用して学習してるので、そちらをメインにするかな?

Rubyも一部の機能しかつかってなかったので、知らない書式があったり、知らない省略形があったり、使ってない知らなかった型があったり、色々あったんだけど、RailsじゃなくRubyなので、しかも内容が非常に長いので、3章も内容薄いのに動画にしたら相当長い動画になってしまったから。

ここからは、いったんやってしまってから、もっと短くした導入動画を作る方が良い気がしてきました。

マナブさんのブログのコツ

11:12頃にマナブさんが参考にした達人の一覧がでてきます。

https://manablog.org/

マナブさんが参考にしたサイト

イケハヤさん

http://www.ikedahayato.com/

ぶんたさん

https://www.buntadayo.com/

沖ケイタさん

https://www.proof0309.com/

水野さん

http://www.mizunodayo.com/

付利意雷布亜(ふりいらいふぁあ)さん

https://www.bloglifer.net/

Ruby on RailsのTutorial 3章やりました。

動画もアップしようと思いますので、この記事に追加します。

内容的には、静的なページ追加、gitの使い方、ソースの整理(リファクタリング)、ERB(テンプレートライブラリをちょっと使う)等など。

Rails的には、静的なページ追加と、テンプレートライブラリの使い方がメインだったと思います。

4章もやりかけてるけど、まだ終われてない。

https://railstutorial.jp/chapters/static_pages?version=5.1#cha-static_pages

ERBは昔使ったことあるから、難易度は低めに感じた。

動画で入力したコマンドの履歴

rails --version
rails _5.2.2_ new sample_app
cd sample_app/
git init
git add -A
git commit -m "Initialize repository"
cat > README.md
git commit -am "Improve the README"
vi app/controllers/application_controller.rb 
vi config/routes.rb 
git commit -am "Add hello"
git checkout -b static-pages
rails generate controller StaticPages home help
cat app/views/static_pages/home.html.erb
cat app/views/static_pages/help.html.erb
cat test/controllers/static_pages_controller_test.rb
rails test
cat app/helpers/static_pages_helper.rb
git add -A
git commit -m "Add a Static Pages controller"
rails db:migrate
cat config/routes.rb
cat app/controllers/static_pages_controller.rb
cat > app/views/static_pages/home.html.erb
cat > app/views/static_pages/help.html.erb 
cat test/controllers/static_pages_controller_test.rb
vi test/controllers/static_pages_controller_test.rb
rails test
vi config/routes.rb 
rails test
vi app/controllers/static_pages_controller.rb 
rails test
touch app/views/static_pages/about.html.erb
rails test
cat > app/views/static_pages/about.html.erb 
rails test
cat app/views/layouts/application.html.erb
git commit -m "Add about page"
git add -A
git commit -m "Add about page2"
mv app/views/layouts/application.html.erb layout_file
vi test/controllers/static_pages_controller_test.rb 
rails test
cat > 
cat > app/views/static_pages/home.html.erb
rails test
cat > app/views/static_pages/help.html.erb 
rails test
cat > app/views/static_pages/about.html.erb 
rails test
git add -A
git commit -m "Add Titles"
cat > app/views/static_pages/home.html.erb 
rails test
cat > app/views/static_pages/help.html.erb 
rails test
cat > app/views/static_pages/about.html.erb 
rails test
git add -A
git commit -m "Refactor 01"
mv layout_file app/views/layouts/application.html.erb
cat app/views/layouts/application.html.erb
cat > app/views/layouts/application.html.erb
cat > app/views/static_pages/home.html.erb
cat > app/views/static_pages/help.html.erb 
cat > app/views/static_pages/about.html.erb 
rails test
cat > app/views/static_pages/contact.html.erb
vi test/controllers/static_pages_controller_test.rb 
vi config/routes.rb 
vi app/controllers/static_pages_controller.rb 
rails test
git add -A
git commit -m "Refactor 02"
vi config/routes.rb 
vi test/controllers/static_pages_controller_test.rb 
rails test
vi config/routes.rb 
rails test
vi config/routes.rb 
rails test
git add -A
git commit -m "Finish static pages"
cat ../sample_app | grep apt
grep atp ../sample_app 
grep apt ../sample_app 
ls ..
head ../sample_app
head ../sample_app.txt 
tail ../sample_app.txt 
sudo apt install ruby-minitest-reporters
sudo apt install ruby-guard
cat test/test_helper.rb 
cat > test/test_helper.rb 
rails test
bundle exec guard init
cat /home/youtube/Rails/Tutorial/sample_app/Guardfile
cat > /home/youtube/Rails/Tutorial/sample_app/Guardfile
cat /home/youtube/Rails/Tutorial/sample_app/Guardfile
cat .gitignore 
vi .gitignore 
tail ../sample_app.txt 
git add -A
git commit -m "Complete advanced setup"

ヘッドレスChromeや、Chromeをブログラムで操作できるpuppeteer その2

今回は、ヘッドレスモードでも巡回させています。

動画で使ったソースは以下

const puppeteer = require('puppeteer');
(async () => {
  //const browser = await puppeteer.launch({ headless: false, defaultViewport: { width: 1920, height: 1080 }, args: ['--start-maximized'] })
  const browser = await puppeteer.launch({ headless: true, defaultViewport: { width: 1920, height: 1080 }, args: ['--start-maximized'] })
  const page = await browser.newPage()
  
//  const navigationPromise = page.waitForNavigation()
  
//  await navigationPromise
  
  await page.goto('http://localhost:3000/users')
  
  await page.setViewport({ width: 1316, height: 632 })
  
  await page.waitForSelector('table > tbody > tr:nth-child(6) > td:nth-child(4) > a')
  await page.screenshot({path: 'test01-1.png'});
  await page.click('table > tbody > tr:nth-child(6) > td:nth-child(4) > a')
  
  await page.waitForSelector('body > a:nth-child(4)')
  await page.screenshot({path: 'test01-2.png'});
  await page.click('body > a:nth-child(4)')
  await page.screenshot({path: 'test01-3.png'});
  
  await browser.close()
})()

前回の動画のソースに、スクリーンショットを出力する部分を追加しております。

あと上のソースはヘッドレスモードのソースになっていて、表示させながら巡回したい時は

  const browser = await puppeteer.launch({ headless: true .......

のtrue の部分を falseにすればOK!

ヘッドレスChromeや、Chromeをブログラムで操作できるpuppeteer その1

本家

https://github.com/GoogleChrome/puppeteer

動画中にインストールしたChrome用アドオン

https://chrome.google.com/webstore/detail/katalon-recorder/ljdobmomdgdljniojadhoplhkpialdid/related

https://chrome.google.com/webstore/detail/puppeteer-exporter-for-ka/idgpmhfldhpaoiflfleanildmnojchhd/related?utm_source=chrome-ntp-icon

https://chrome.google.com/webstore/detail/puppeteer-recorder/djeegiggegleadkkbgopoonhjimgehda/related

インストール手順(Ubuntu,Debianの場合)

#npmのインストール
sudo apt install npm

#作業ディレクトリにて
npm install puppeteer

動画中に上記アドオンを使って作成し手直ししたソース1

const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch({ headless: false, defaultViewport: { width: 1920, height: 1080 }, args: ['--start-maximized'] })
  const page = await browser.newPage()
  
//  const navigationPromise = page.waitForNavigation()
  
//  await navigationPromise
  
  await page.goto('http://localhost:3000/users')
  
  await page.setViewport({ width: 1316, height: 632 })
  
  await page.waitForSelector('table > tbody > tr:nth-child(6) > td:nth-child(4) > a')
  await page.click('table > tbody > tr:nth-child(6) > td:nth-child(4) > a')
  
  await page.waitForSelector('body > a:nth-child(4)')
  await page.click('body > a:nth-child(4)')
  
  await browser.close()
})()


動画中に作成したソースその2
const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({ headless: false, defaultViewport: { width: 1920, height: 1080 }, args: ['--start-maximized'] });
    const page = await browser.newPage();
    let element, formElement, tabs;

    // Original Katalon Recorder info - Command: open, Target: http://localhost:3000/users, Value: 
	await page.goto(`http://localhost:3000/users`, { waitUntil: 'networkidle0' });

	// Original Katalon Recorder info - Command: click, Target: xpath=(.//*[normalize-space(text()) and normalize-space(.)='Show'])[3]/following::a[1], Value: 
	element = await page.$x(`(.//*[normalize-space(text()) and normalize-space(.)='Show'])[3]/following::a[1]`);
	await element[0].click();

	// Original Katalon Recorder info - Command: click, Target: link=Back, Value: 
	element = await page.$x(`//a[contains(text(),'Back')]`);
	await element[0].click();
	await page.waitForNavigation();
    await browser.close();
})();

Ruby on Rails のTutorialやってみたよ動画アップしました!

https://railstutorial.jp/

https://railstutorial.jp/chapters/beginning?version=5.1#cha-beginning

やったコマンド

# rails install
sudo apt install rails

# ファル生成
rails _5.2.2_ new hello_app

# ディレクトリに移動
cd hello_app

# サーバー起動
rails server

# ファイル変更して、hello worldと出力できるように2つのファイルを変更
vi app/controllers/application_controller.rb
vi config/routes.rb


# git 関係 ( 下のメールアドレス使ってません、適当です)
git config --global user.name "NM Max"
git config --global user.email nmmax@123abcsoft.com

# 初期化
git init

# カレントディレクトリ以下のファイルを監視対象に
git add -A

# コミット -m の後の文字はコメント
git commit -m "Initialize repository"

# ファイル足したら、全部のファイルを監視対象に
git add -A

# log確認
git log

# status確認
git status

https://railstutorial.jp/chapters/toy_app?version=5.1#cha-a_toy_app

やったコマンド

#もう夜遅いので、後日追記します。