2022年1月9日 星期日

AWS Certified Solutions Architect - Associate 心得

當初在 facebook 的廣告之中,看到一條貼文在 10 月 15 日之前申請的話,就會得到一張 AWS Certified Solutions Architect - Associate 考試的 coupon,在 12 月某天前報考的話價錢就能減半由 150 美金減到 75 美金。


到報名後才知道時間只剩下這麼少,抱著不用就是浪費的心態,上了 udemy 購買了一個 course 「Amazon Web Services (AWS) Certified 2022 - 4 Certifications!」 (https://www.udemy.com/course/aws-certified-associate-architect-developer-sysops-admin/) 臨急抱佛腳。


在最開始時我對於 AWS 的知識儲備只限於一點點的 EC2 和一點點的 Route 53,因為我在 amazon 購買了一個 domain 和有一個 EC2 的 instance 長期開啟。


於是就踏上上課之路,在空閒時間終於看完了 Cloud Practitioner 和 Solutions Architect,為了再進一步節省時間,裡面的 lab exercise 都是 skip 了的。在看完必要的知識之後,此時距離考試尚有一兩星期的時間,我又到了 tutorialsdojo (https://portal.tutorialsdojo.com/courses/aws-certified-solutions-architect-associate-practice-exams/) 購買了考試的例題,在一開始做的時候也是自信滿滿的,心想都看了這麼久的時間了,結果就比考試成積擊沉了,在做第一、二 set 的時候都只有 50 ~ 60% 的成積,是不足以合格的,於是我就重覆做那一 set 的例題直至合格為止。例題一共有 6 sets,在考試之前時間的關係只完成了 5 sets。


到了考試當天,考試的內容不太詳細記得就不詳述了,因為是第一次考 AWS 的考試,沒有想到考完提交成積的時候會直接跟你說合格與否,望著合格的字眼發呆了幾秒,有種不夠踏實的感覺,直到數天後收到成積通知才放下。


以下就是成積和證書:





合格的分數為 720 ,沒有想到也能考到有 8 字頭的分數,考完之後,就可以增加一個小小的 badge 去 linkedin 的 profile 了,合格後也有下一次考試半價的優惠,但目前的打算是去了解下 microsoft 的 Azure。


2021年12月7日 星期二

太鼓六段挑戰 (完)

 雖然隔了一段時間,

在中間的過程也失敗了多次,為了精神健康著想先下一級考取



但是在十一月中的時間終於...



合格了!挑戰次數大約有十多次,最後一次是沒帶私棒用公棒練一練就沒想到一下就合格了,終於可以為這一篇畫上一個句點。

2021年9月12日 星期日

太鼓六段挑戰 (二)

 在經歷一番練習之後,以下是考的時候最好的成績:



良方面可以合格了,連打練到也可以合格了,但最重要的不可還是差一點點...

希望下次就能有完結篇

2021年9月5日 星期日

太鼓分數自我記錄 05/09/2021

成功過了 Gloria、燎原ノ舞、はたラク2000,尤其是はたラク2000 由 DS3 的時代開始就只剩下這一首沒有合格,這次終於過合格線了 (雖然是在 AC版 加 開 1.5倍速)







2021年9月4日 星期六

前端工具筆記 - gulp , babel(之二)

 (三) 一個可以實時監察檔案 gulp task


在 gulp 之中,提供了一個 watch() 的 API,watch() 這個 function 會監察符合範圍的檔案,範圍之中的檔案一但更改,就會運行 function 內的內容。透過使用這個 function,我們就可以定下一些實時監察的工作。


打開 gulpfile.js,增加了一個 watch 的 gulp function 讓我們可以監察 src 內的檔案。


const gulp = require("gulp");

const babel = require("gulp-babel");

 

gulp.task("watch", function () {

 

  gulp.watch(['src/*.js'], function(cb) {

    console.log('file changed');

    cb();

  });

 

});

 

gulp.task("default", function () {

 

    gulp.src("src/index.html")

    .pipe(gulp.dest("dist"));

 

    return gulp.src("src/*.js")

    .pipe(babel({

      presets: ["@babel/preset-env"]

    }))

    .pipe(gulp.dest("dist"));

});


這次在 command line 運行 gulp watch,這時 console 應該不會馬上就結束,而是進入了一個等待的狀態。這時我們更改 app.js , 例如把 bob 更改成 alice,然後儲存。


在運行 gulp 的 console 之中應該有以下的信息


PS C:\Sources\gulp-test> gulp watch

[09:29:17] Using gulpfile C:\Sources\gulp-test\gulpfile.js

[09:29:17] Starting 'watch'...

[09:30:51] Starting '<anonymous>'...

file changed

[09:30:51] Finished '<anonymous>' after 9.71 ms


可以看到 watch 之中的內容在更改檔案後成功執行,以上就是 gulp 之中 watch 的作用。


(四) 一個可以實時監察檔案然後更新的 web server


上面提及到 watch 這個 function 的作用,但是要做到更改檔案內容之後自動更新網頁,我們就需要使用到 web server 去 host 我們的檔案。


browser-sync 提供了一個 web server 的功能和可以進行 reload 的 API,使我們可以透過用這個 package 在 gulp 當中達到目的。


首先安裝 browser-sync

npm install browser-sync --save-dev

安裝完之後,把 gulpfile.js 修改成


const gulp = require("gulp");

const babel = require("gulp-babel");

const browserSync = require('browser-sync').create();

 

gulp.task("default", function () {

 

  gulp.src("src/index.html")

  .pipe(gulp.dest("dist"));

 

  return gulp.src("src/*.js")

  .pipe(babel({

    presets: ["@babel/preset-env"]

  }))

  .pipe(gulp.dest("dist"));

});

 

gulp.task('js-watch', gulp.series('default', function (cb) {

  browserSync.reload();

  cb();

}));

 

gulp.task("watch", gulp.series('default', function () {

 

  browserSync.init({

      server: {

          baseDir: "./dist/"

      }

  });

 

  gulp.watch(['src/*.js' , 'src/*.html'], gulp.series('js-watch'));

}));

 

 


首先是在先頭多了一個引用 browser-sync 的變數


const browserSync = require('browser-sync').create();


然後多了一個叫做 js-watch 的 task,在這先前,在這裡使用了一個 gulp.series() 的 API,gulp.series() 可以把輸入的 task 順序運行,在這裡的意思即是會在運行完 default 這個 task 之後再運行後面的 function。


gulp.task('js-watch', gulp.series('default', function (cb) {

  browserSync.reload();

  cb();

}));


然後是 gulp 的 watch task,


gulp.task("watch", gulp.series('default', function () {

 

  browserSync.init({

      server: {

          baseDir: "./dist/"

      }

  });

 

  gulp.watch(['src/*.js' , 'src/*.html'], gulp.series('js-watch'));

}));


一樣這裡用了 gulp.series() ,在一運行 watch 這個 task 的時候就會運行 default 的內容。


browserSync.init 可以建立一個 web server,而這裡的運行目錄則是在 babel 編譯完成後的 dist folder。


而下面的 gulp.watch() function,一但有任何的 js / html 作出改動,就會運行 js-watch 這個 gulp task,會再編譯一次放到 dist folder,然後會自動 refresh 開著的網頁。


接下來測試一下實際的運作,在 command line 打下 gulp watch 之後應該會出現


PS C:\Sources\gulp-test> gulp watch

[09:09:19] Using gulpfile C:\Sources\gulp-test\gulpfile.js

[09:09:19] Starting 'watch'...

[09:09:19] Starting 'default'...

[09:09:20] Finished 'default' after 487 ms

[09:09:20] Starting '<anonymous>'...

[Browsersync] Access URLs:

 ---------------------------------------

       Local: http://localhost:3000

    External: http://___.___.___.___:3000

 ---------------------------------------

          UI: http://localhost:3001

 UI External: http://localhost:3001

 ---------------------------------------

[Browsersync] Serving files from: ./dist/


這些會有一個網頁彈出來,內容正是之前所建立的 index.html


Hello World!

Student Name: alice, Subject: math


這時我們去到 src 入面的 app.js,把 alice 改回 bob 之後儲存。運行 gulp watch 的 command line 會有以下的信息


[09:15:24] Starting 'js-watch'...

[09:15:24] Starting 'default'... 

[09:15:25] Finished 'default' after 87 ms

[09:15:25] Starting '<anonymous>'...

[09:15:25] Finished '<anonymous>' after 1.14 ms

[09:15:25] Finished 'js-watch' after 93 ms

[Browsersync] Reloading Browsers…


打開剛剛彈出來的網頁,發現不用人手 refresh 就已經更新了網站的內容 (因為程式已經自動 reload 了) 。


----


以上就是 gulp 和 babel 的個人學習筆記,只覆蓋了很少的功能,大約是一個入門的用途,想知這這些 package 還可以做到什麼事情的話可以到官方網站研究:


https://babeljs.io/


https://gulpjs.com/


https://browsersync.io/