2022年9月14日 星期三

【Canva好好玩】~~應用Canva背景移除工具讓圖片應用更方便

 製作文宣、簡報使用Canva真的是非常輕鬆愉快的經驗

但匯入的圖形有時會有去除背景的需求

以往都需要應用一些去除背景的工具先行「加工」一下

現在Canva職鳩提供了這項「背景移除工具」好用的功能

讓你在製作簡報時,即時就能針對需求進行圖片的背景移除任務

讓你的編輯及思緒不至於中斷~~~讚!!

錄製一小段操作示範供大家參考:(簡單操作,就不加入聲音了)



2022年2月19日 星期六

Canva~一個愈來愈好用的設計網站

 Canva原先接觸到的時候,只是一個方便進行美工、簡報設計的網站

但近來愈來愈強化的應用功能,讓人更加欣賞與倚重了

除了對於教育人員提供了無限制的pro功能外,一些專注於教育現場應用的範本也相當貼心

現在對於遠距(線上)教學應用的功能也更加完善、便利

這次專注於線上影片與螢幕錄製的功能測試做整理~~發現這塊的應用在Canva中設計、發揮的空間相當完善、方便!

特地作了一些測試與整理~~簡單的放上來分享給同業公會參考!









2022年1月15日 星期六

【python抓爬仔】~~簡單抓取呈現「氣象資料開放平台」資訊

 這篇很簡短~~主要就是紀錄一下如何使用設計完善、方便的「氣象資料開放平台」。

順道整理與介紹一下json的操作及迴圈操作概念。主要還是因為氣象資料實用、常見~相當適合作為練習之用。

這篇python程式內容很簡要,最主要的準備工作其實是:要先去完成「氣象資料開放平台」的會員註冊,並找到所需要的氣象資料API。這樣工作就差不多做完了~~剩下的就是Python的語法操作練習與迴圈概念。

好囉~~先看「氣象資料開放平台」這真是個設計得很完善的開放資料平台,先給個讚👍

程序上~~就是註冊→獲取使用者授權碼→尋找所需資料→設定資料→取得呼叫網址

幾個步驟~~本篇就以如何取得「三十六小時天氣與報資訊」為例進行操作。(平台操作內容就請自行參考下圖進行練習~~就是網站操作而已,就不多做說明了~~打字好累😓)




【Let's Go】GoLang Gin 再來一小杯

 繼上次開喝Gin之後~~這次開始試著讓Gin發揮更實際的效用~~簡單介紹一下如何應用Gin這個好用的框架來建置網站!

同樣的~~我們這種非專業人士,就先不在意如何去將程式寫得多專業、多「冠冕堂皇」~~先著重如何簡單、明瞭的使用!所以~專業人士請無視,謝謝啦!

好囉~~~這次繼上次的開喝之後,接著來談如何在網站內添加網站內容!

這次先談以下四種情況:

1.如何在網頁上呈現「單純」的文字訊息。

2.如何設定Gin的HTML模板。

3.如何呼叫HTML模板。

4.如何將參數(資料)傳遞給HTML模板並呈現。

基本上若能按部就班走到第4點~~那後續就是如何將「整批」資訊(如多組使用者資訊、或是資料庫內容讀取等等)丟給HTML去呈現,這部分就放到下一次再做整理囉!(一次寫太多~太亂也太累~呵!)

一樣~~直接先上程式碼🐎了~~看得懂的就直接試試看吧!

package main

import (
	"github.com/gin-gonic/gin"
)

func hello(c *gin.Context) {
	c.String(200, "歡迎蒞臨GoLang Gin示範網站")
}

func home(c *gin.Context) {
	c.HTML(200, "index.html", "")
}

func welcome(c *gin.Context) {
	c.String(200, "歡迎蒞臨GoLang Gin旗艦示範中心")
}

func login(c *gin.Context) {
	data := "Wan Chih-Hsiang"
	c.HTML(200, "login.html", gin.H{
		"data": data,
	})
}

func main() {
	s := gin.Default()
	s.LoadHTMLGlob("templates/*")
	s.GET("/", hello)
	s.GET("/home", home)
	s.GET("/welcome", welcome)
	s.GET("/login", login)
	s.Run(":8080") // listen and serve on 0.0.0.0:8080
}


簡單註記一下其中幾個重點,方便回想!


對應上述四種本文要介紹的情形~~

2021年12月28日 星期二

【Let's Go】GoLang 關於 slice 的一些操作

 跟python比起來~~GoLang真的是比較精簡,重複性的東西幾乎是不太會出現的!

相對python而言,個人覺得GoLang更重視如何提供一個良好的「鍋子」讓「廚師」盡情發揮自身的廚藝及創意。而python則是著重於提供各式各樣的廚具,讓每個人不需具備太多廚藝就可以享受烹飪的樂趣!

針對之前談到的SLICE,在GoLang中不像python的list提供了許多函式可供應用的函式進行操作與應用,如:刪除、查詢、轉換等等~~,這些在GoLang中似乎認為可經由程式設計人員透過自身需求,進行設計即可有效解決,就無需代勞提供相關函式庫,提供最大的彈性空間給設計人員自行思考、設計!

就這觀點而言,自己操作起來~~發現其實:就程式設計的邏輯思維能力訓練而言,GoLang似乎比Python更加適合進行邏輯思維能力的訓練與思考!(純粹個人感受~~😏)

好囉~~~接續上一篇關於slice的相關基本設定,這一篇整理一些關於slice的複製、篩選、替換、排序等相關操作練習紀錄!

好了~~~直接上程式碼🐎時間

package main

import (
	"fmt"
	"sort"
)

func main() {
	//array設定
	var a1 = [5]string{"PHP", "ASP.NET", "JAVA", "Pyhton", "GoLang"}
	//slice設定方式
	var s1 = []string{"ASP", "PHP", "ASP.NET", "JAVA", "Pyhton", "GoLang"}
	var s2 []string
	s3 := []int{10, 50, 30, 60, 40, 20}

	//GoLang不像python有針對slice刪除等相關函數,而是透過slice的操作功能進行類似刪除的相關操作
	fmt.Println(a1[2:4])
	s4 := make([]string, 3) //創建一個有3組元素的slice
	copy(s4, s1[2:5])
	fmt.Println(s4)
	fmt.Println(s1[:5])
	s2 = append(s1[:2], s1[4:]...) //去除原slice中的"ASP.NET" "JAVA"二個元素
	fmt.Println(s2)

	//SLICE元素排序操作
	fmt.Printf("排序前的s3:%v \n", s3)
	sort.Ints(s3) //整數型slice排序方法
	fmt.Printf("排序後的s3:%v \n", s3)
	fmt.Printf("排序後最大值、最小值:%d、%d \n", s3[len(s3)-1], s3[0])
	sort.Strings(s2) //文字型slice排序方法
	fmt.Printf("string類型的slice也可以排序:%v \n", s2)
	for k, v := range s2 {
		fmt.Printf("slice s2的k,v分別為:%d, %s \n", k, v)
	}
	s2[0] = "java" //元素替換
	fmt.Println(s2)
	//達成s3內每個元素*2的作法
	for k, v := range s3 {
		s3[k] = v * 2
	}
	fmt.Println(s3)

	//應用map函式產生類似字典檔對應表簡易操作示範
    s5 := map[string]int{
		s1[0]: s3[0],
		s1[1]: s3[1],
		s1[2]: s3[2],
		s1[3]: s3[3],
	}
	fmt.Println(s5)
	fmt.Println(s5["ASP"]) //不存在的對應值為0
	fmt.Println(s5["java"])
}

執行結果截圖如下供參:


當然在實際操作及應用上,仍有相關函式可供配合進行相關操作與設計應用,這些應用就留在後續進行相關專案設計時,有機會再做整理、分享了!

好囉~~這次就先到這裡告一段落!!

2021年12月27日 星期一

【Let's Go】認識GoLang中的slice基礎設定

 在Python中,處理數據及資料時,list是個相當實用的工具,也提供許多好用的函式供相關操作與應用!

同樣的,在GoLang的學習中,我也將這部分列為練習的重點之一!

在GoLang中,對於數據及資料組的處理上,有array及slice可供應用,不過在實際處理動態資料及數據時,似乎slice出場的機會會比較高一些!而且二者的操作都還挺相似的,相干操作概念是可以延伸的!所以我就將重點放在slice上了!

好囉~~這次先將一些有關array、slice的基本設定方式及操作,先做一些整理!

後面再針對slice的應用操作另作整理!當然若要實際應用,還是建議自己設計個專案進行實務上的操作,幫助會最大!

package main

import "fmt"

func main() {
	//array設定
	var a1 = [5]string{"PHP", "ASP.NET", "JAVA", "Pyhton", "GoLang"}
	//slice設定方式
	var s1 = []string{"ASP", "PHP", "ASP.NET", "JAVA", "Pyhton", "GoLang"}
	var s2 []string
	s3 := []int{10, 20, 30, 40, 50}

	fmt.Println(a1[4])
	fmt.Println(len(s1))
	s2 = append(s2, "python", "GoLang")
	s4 := make([]string, 1) //創建一個只有1組元素的slice
	copy(s4, s2)            //因為s4只有一組元素,所以copy過來只會有一組元素
	fmt.Println(s4)
	s4 = append(s2, s1...) //合併二個slice要在後面加上...三個點是解構的意思
	fmt.Println(s4)
	fmt.Println(append(s4, "Go"))
	for _, v := range s3 {
		fmt.Println(v)
	}
}
 
 

上述程式執行結果如下:

這次就先整理到這裡告一段落!!


2021年12月24日 星期五

【Let's Go】GoLang Gin 開喝

 Gin是目前相當受歡迎與推薦的Web Framework。(https://github.com/gin-gonic/gin)


這篇開始試著開喝、玩玩~~紀錄一下學習歷程!

★首先~~先安裝Gin:$ go get -u github.com/gin-gonic/gin 


★★接著當然是試喝看看囉~~~先來個最單純的網站跑起來看看~上網站程式碼🐎囉......


package main

import (
	"github.com/gin-gonic/gin"
)

func hello(c *gin.Context) {
	c.String(200, "歡迎蒞臨GoLang Gin示範網站")
}

func main() {
	s := gin.Default()
	s.GET("/", hello)
	s.Run(":8888") // 設定網站執行埠
}


十來行,一個驚天動地泣鬼神的網站(連Apache戰鬥機都不必出動)就面世了~~讚👍

啟動(run)之後如下:Go Go Go~~~