2019年11月30日 星期六

windows 10 貼齊視窗與多工


當工作一多,

通常會開啟許多應用程式,

有時會需要同時觀看並比對兩者的差異,

這時候沒有雙螢幕的話,

就要靠

windows 10 貼齊視窗與多工

這個功能的設定可於

設定 - > 系統 - > 多工

找到相關設定。


使用方法也很簡單,

只需要在工作室窗的標題列壓住滑鼠左鍵並將其拖曳到螢幕的左側或右側,

可看到預覽窗格


放開滑鼠左鍵以後,

系統自動會將螢幕分為一半,

並讓使用者能選擇另一個工作視窗


這時再點選另一個工作視窗,

就能夠將兩個視窗貼齊,

若需要調整視窗寬度的話,

將滑鼠移至中間線即可調整


除了使用滑鼠以外,

也可透過快捷鍵來做到:

windows鍵 + 方向鍵-左 / 方向鍵-右

就能夠做到此功能,

如果需要同時處理兩個工作視窗又沒有雙螢幕的話,

可以使用這個方便的功能,

這就是今天的主題:

windows 10 貼齊視窗與多工


2019年11月27日 星期三

Django 所見即所得-富文本編輯器 CKEditor


CKEditor 是一個開源所見即所得的文字編輯器,

可讓使用者查看編輯 HTML 檔案,

今天就來教大家如何使用:

Django 所見即所得-富文本編輯器 CKEditor

首先必須先安裝套件:

pip install django-ckeditor

並將其加入 settings.py,


INSTALLED_APPS = [
    .....省略.....,    'ckeditor'
]


到 models.py 加入要使用 CKEditor 的欄位:


from django.contrib.auth.models import User
from django.db import models
from ckeditor.fields import RichTextField

class BlogPost(models.Model):
    title = models.CharField(max_length=50, default='')
    content = RichTextField(blank=True, max_length=300)
    author = models.ForeignKey(Profile, on_delete=models.CASCADE)
    classification = models.ManyToManyField(Classification)


將這些欄位加入 admin.py 中

from django.contrib import admin
from accounts.models import BlogPost, Profile


class BlogPostAdmin(admin.ModelAdmin):
    list_display = ('title', 'content', 'author')

admin.site.register(BlogPost, BlogPostAdmin)


接著同步資料庫:

pyhton manage.py makemigrations
pyhton manage.py migrate

一個最基本的功能就都有了,

進入 Django admin 中就能看到富文本編輯器:


當然,

一篇好的文章勢必要圖文並茂,

所以可以讓使用者自行上傳圖片:

首先要安裝 pillow

pip install pillow

安裝完畢之後,

加入 ckedit_uploader,


INSTALLED_APPS = [

    'ckeditor',    'ckeditor_uploader',
]


在 settings.py 加入設定:


MEDIA_URL = '/media/'# 放在django 專案根目录,同时也需要新建media資料夾MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
CKEDITOR_UPLOAD_PATH = 'upload/'CKEDITOR_IMAGE_BACKEND = 'pillow'


而原本的 RichTextField 則要改為 RichTextUploadingField


from django.contrib.auth.models import User
from django.db import models
#from ckeditor.fields import RichTextFieldfrom ckeditor_uploader.fields import RichTextUploadingField

class BlogPost(models.Model):
    title = models.CharField(max_length=50, default='')
    content = RichTextUploadingField(max_length=300)
    author = models.ForeignKey(Profile, on_delete=models.CASCADE)
    classification = models.ManyToManyField(Classification)


urls.py 則要新增:


from django.contrib import admin
from django.urls import path , re_path, include

urlpatterns = [
    path('admin/', admin.site.urls),    re_path(r'^ckeditor/', include('ckeditor_uploader.urls')),]


可看到上傳圖片多出了上傳選項:



在部署之後,

要記得開啟專案資料夾 media 與 media/upload  權限,

避免無法上傳。


除此以外,

可從 settings.py 自訂要顯示的功能:


CKEDITOR_CONFIGS = {
    'default': {
        'skin': 'moono-lisa',        'toolbar_Basic': [
            ['Source', '-', 'Bold', 'Italic']
        ],        'toolbar_Full': [
            [ 'Source','-','Save','NewPage','DocProps','Preview','Print','-','Templates' ],            [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ],
            [ 'Find','Replace','-','SelectAll','-','SpellChecker', 'Scayt' ],            [ 'Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField' ],            '/',            [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ],            [ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','CreateDiv', '-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl' ],            [ 'Link','Unlink','Anchor' ],            [ 'Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe' ],            '/',            [ 'Styles','Format','Font','FontSize' ] ,            [ 'TextColor','BGColor' ] ,            [ 'Maximize', 'ShowBlocks','-','About' ] ,            ['CodeSnippet'],  #插入程式code按鈕

        ],        'toolbar': 'Full',        'extraPlugins': 'codesnippet',   #插入程式code    }
}

是否要顯示各項功能按鈕,

就能夠過此設定來做刪減,

這就是今天的主題:

Django 所見即所得-富文本編輯器 CKEditor

2019年11月22日 星期五

OnlineJudge線上評測系統-常見問題


之前介紹過OnlineJudge線上評測系統,

也列了一個程式範例,

一套新的系統對使用者來說肯定很陌生,

因此也產生了一些問題,

今天就針對這些問題來介紹:

OnlineJudge線上評測系統-常見問題


輸入/輸出範例相關




每個試題都有輸入範例與輸出範例,

而 OJ 是以比對方式來判別程式是否正確,

輸入/輸出範例中未出現的字(包含空格、逗號、換行)都會造成錯誤

上圖中的程式在輸出的時候多出了 “ a + b = “。


輸入/輸出範例相關



上圖中的程式多了輸入提示 '直徑?' ,

輸出也多了 ’面積為’ 、 '周長為' ,

故判定錯誤。


載入模組未加上 import


上圖中的程式使用了 math 模組,但沒有加上 import

資料型態


左圖中的程式假設輸入 a=1 , b=2 ,

雖然有作資料型態的轉換,

但因為輸出的浮點數 3.0 與題目的輸出範例不符,

故判定結果為錯誤。

演示範例:




input得到的資料,其型態為字串



input所得到的資料為字串,

必須先轉變資料型態後,

才能拿來作數值的運算。

以上圖中程式為範例,

分別輸入 1 與 2 ,

最終得到的結果為’ 12 ’ 的字串而非兩數字相加。



而此圖中程式並未作資料型態的轉換,

就直接作相減的運算,

故判定結果為錯誤。

split為字串分割的方法


上圖範例 b = a.split(‘,’),

可看到split回傳值為一個List(如黃底所示),

將原來的字串 a 分割為 ‘hello’ 與 ‘world’ 兩個字串。

程式演示:




上圖程式則是先將字串轉換為浮點數,

導致 c 與 b 已經不是字串,

再使用 split 是錯誤的。


初學者學習程式同時還要適應OnlineJudge線上評測系統,

難免會出現許多基本問題,

只要多練習即可。




[影視戲劇]火星生活 Life on Mars


不管是小說也好,

電影也罷,

穿越始終是跳脫現實的常見手法,

今天的主題:

火星生活 Life on Mars

也是其中之一。

男主角韓泰柱因為緝捕犯人遭到重傷,

意外穿越到1988年的韓國,

為了回到現實,

努力追查連續殺人案,

追查過程也揭開當年塵封的記憶,

得到父親死亡的真相,

連續殺人犯的由來等等,

是一部夢與現實交錯的韓劇。



外號瘋狂野豬的姜東哲,

則是 1988 年仁川市重案組系長,

為了緝凶使用各式手段,

不過這方法讓現代來的男主角姜泰柱不大認同。

看到這邊有沒有很眼熟 ,

之前提到過的當惡魔呼喊你的名字 The Devil’s Call ,

也是由他們兩個主演。


尹娜英是 1988年仁川市巡警,

平常僅端茶、倒水、查資料,

直到男主角韓泰柱的出現,

才有人正視這位女警也是一名警察。


李雍基則是仁川市重案組的魯莽警察,

對系長姜東哲十分信任,

也是十足的行動派,


當然還有一名組員趙南植,

簡單講就是組員中的好好先生,

思想純真以外,

忠厚老實的他對尹小姐也有好感。


隨著男主角韓泰柱來到 1988年,

重案組的每個人也都有不同的際遇,

對警匪片有興趣的觀眾,

不妨也來了解下 1988 年的警察辦案情形。


2019年11月20日 星期三

成為 YouTuber 的第一步 - Steamlabs OBS 安裝範例教學


正所謂工欲善其事,必先利其器,

想在 YouTube 上直播,

就要先安裝編碼軟體,

今天就來介紹:

成為 YouTuber 的第一步 - Steamlabs OBS 安裝範例教學

編碼器是一種裝置或軟體,

負責將拍攝到的畫面轉為數位內容並將其傳送到 YouTube,

讓現實中拍攝的畫面能在網路上直播,

而 YouTube 也列舉了符合其直播認證標準的一些編碼器,

有興趣可點擊此處前往了解

這裡以 streamlabs OBS 為範例進行安裝教學:

首先到 streamlabs OBS 官方網站下載 OBS,

下載完畢後執行安裝檔進行安裝


安裝之前,

如同之前著作權所述,

即使是免費軟體都有其授權條款,

要安裝使用就得同意授權條款,


選擇要安裝在電腦的資料夾,


安裝完成後馬上啟用,


應用程式會出現登入畫面,

這裡選擇 YouTube 為範例,


軟體會帶出 Google 登入畫面,

並要求使用者授權應用程式取得使用權限,



允許之後,

就能透過 OBS 將擷取到的內容傳到 YouTube 。


值得一提的是,

 Steamlabs OBS 預設提供了佈景主題,

讓使用者能夠建立特殊的拍攝主題,

避免畫面有太多不必要的元素。


當然,

類似的 OBS 編碼軟體有許多種,

僅需要選擇一個最適合自己的來使用即可,

這就是今天的主題:

成為 YouTuber 的第一步 - Steamlabs OBS 安裝範例教學

這裡是不及格研究室,

研究各式不同的題材並分享經驗與心得。


2019年11月18日 星期一

Django 的時間格式處理範例


日期與時間永遠是專案中很重要的一部分,

不論是專案的起始與結束,

或者重要資訊的發布,

都與時間密切相關,

今天就來介紹:

Django 的時間格式處理範例

Django 的 model 中,

表示時間的格式有三種:

DateTimeField ,DateField,TimeField,

這些時間資料都有 auto_now 與 auto_now_add 參數,

當 auto_now 設定為 True,

則每次儲存時候,會更新時間欄位為現在時間,

但 auto_now_add 設定為 True 時,

此時間欄位只有在建立的時候將時間記錄下來,

特別要注意的此兩個參數只能一者為 True,

只要有一者為 True 此欄位就無法修改



若希望時間欄位能夠修改,

則需使用 default 指定預設時間,

上圖範例使用 default= date.today 作為預設時間,

而在程式碼中,

若要進行時間格式的轉換,

可透過 datetime(),date(),time() 中的各種方法來轉換,

例如


datetime.strptime(字串, "字串的時間格式")

此方法是將 String 格式的時間轉成時間格式


date1 = datetime.datetime.strptime(col[5], '%Y-%m-%d')


上圖範例將文字格式的時間 2019-11-18 , 轉為 datetime 格式後輸出,

而 datetime.strftime("時間格式", 時間),

則是將時間依照指定的時間格式輸出為字串格式,

假設目前以今天的日期為範例 t1= datetime.now() ,

執行 print ( datetime.strftime("%Y-%m-%d", t1) ),

就會顯示:

2019-11-18

附帶一提的是時間格式的代號:

  • %Y  四位數字的年份表示
  • %y  兩位數字的年份表示
  • %m 月份
  • %d  日期
  • %H 24小時制的時數
  • %M 分
  • %S 秒
  • %b 月份的縮寫(例如:二月為Feb)










2019年11月15日 星期五

中友百貨完美兌點術攻略


剛過完雙11,

想必該買的東西都買了,

不該買的~ㄜ就當作沒看到好了,

年底又到了,

中友百貨的點數也該好好整理一下,

免得時間到就被清空,

中友百貨完美兌點術攻略

為何要提到雙11呢?

因為此次檔期是延續著雙11來的,

活動從 11/7 ~ 11/20 為止,


各樓層主要要道都能夠找到上面的紙本 DM ,

連柱子都要貼好這次活動的廣告,


當然,

在開始兌點前得先填飽肚子,

就花個一百點兌換來自高雄空廚的蛋包飯吧。


還剩下 317 點,

剛好能換兩樣東西,

這就是其中一個目標了,

同時也是婆婆媽媽最愛的玻璃保鮮盒,



雖說東西不貴 ,

但實用性還算不賴,

第二個目標是來自 ALBION 的健康化妝水


除了用中友百貨的會員點數兌換以外,

還需要出賣一些個資( 填寫會員資料 )


接著可以到 13 樓有舊書拍賣會,

雖說是舊書,

但裡面書本其實都還很新,

喜愛讀書的朋友可以到這裡挖寶,

紅標三本五百,

綠標六本五百。


眼尖的看官應該有發現,

還剩下十七點能做什麼,

剛剛有到 13 樓逛拍賣會的朋友先別走,

順道去 B 棟 13 樓 贈獎中心花個十點做公益,

每十點中友百貨就捐出五元給陽光社會福利基金會,

做公益以外還能抽獎,

獎項有 Sony XPERIA、SWITCH 等大獎。




2019年11月13日 星期三

透過問卷與投票方式取得 Open edX 學習回饋

透過問卷與投票方式取得 Open edX 學習回饋

在學習過程中,取得學習回饋的方式有很多種,評量也是其中之一,而除了評量以外也能透過問卷調查與投票方式取得來自學生的反映,今天就來示範如何從平台的問卷調查與投票方式取得學習回饋

不管是投票也好,問卷調查也罷,都是屬於 edX 的擴充模組,故需要先到 Studio 系統,在課程的進階設置中,找到進階模組列表
找到之後,在列表中新增兩個模組名為 ”poll”,”survey” ,顧名思義,中文字面上此兩個模組分別就是投票模組與問卷調查模組,按下儲存變更之後回到課程大綱,就能夠在單元組件底下的進階工具列找到此兩個模組。
在此單元分別新增此兩個模組,可以看到系統預設的範例,Poll 是以使用者喜愛的顏色作為範例,而 Survey 則是一個基礎的課程問卷。

投票

在模組的右上角點擊編輯按鈕,可以在此設定模組的顯示名稱,以及想詢問使用者何種問題,而投票的結果顯示預設是開啟的, Private Results 若改為"",則投票結果只有管理者才能看到,相對的使用者比較沒有參與感。
既然名為投票,那就是由管理者丟出議題,讓使用者有許多不同的答案去討論與選擇,除了預設的幾個答案以外,可透過編輯功能中的 Answer 來進行選項的修改,以預設範例來看,此處的答案設為各種不同顏色比較恰當。

問卷調查

問卷調查則是以多個問題組合而成,來詢問使用者意見、使用心得等等,藉以收集學習回饋數據。設計問卷時,可先將答案分成幾種可能性列出,例如:1 ~ 5分 或者 是/否/也許 等,讓使用者針對問題去選擇比較接近的答案。

與投票相同,在編輯設定中,也提供了次數的限制,問卷結果公開與否的設定( Private Results)。當然如果內建的問題範例不符合目前使用情境的話,也可以選擇 Add Answer / Add Question 來新增答案或問題。

2019年11月12日 星期二

由 Google開發的官方外掛:Site Kit by Google

據說全世界的網站有三分之一都是以 Wordpress 為基礎,

以這種普及率來說,

相對的能夠找到資源也很多,

今天就是要來教大家安裝:

由 Google開發的官方外掛:Site Kit by Google 

Wordpress 是以外掛的方式來擴展新功能的,

而 Site Kit by Google 則是將 Google 針對網站相關功能的一個整合工具,

讓網站管理者能夠直接在 Wordpress 後台就能直接觀看這些軟體的功能。

例如 Google Analysis ,  Google Adsense, Google Tag Manager  等等,

首先要先到 Wordpress 左方工具列找到外掛,

選擇安裝外掛,

並在右上角搜尋工具列打上 Site Kit by Google ,

就能夠找到:


安裝完畢後啟用,

後台最上方就會出現提示訊息,

點選按鈕就能進入設定


歡迎畫面會告知有三個步驟需要執行:

而且要先登入 Google 帳戶



接著必須允許 Site Kit 取得資源的存取權



最後,

還會整理讓管理者再次確認,

給予 Site Kit 存取的控制權之後,

接著要允許此網站存取 Google 帳號的資料,


 三步驟做完之後,

就能回到 Wordpress 控制台觀看相關的資料。

可以看到 Google 與網站管理相關的各個軟體都能透過此工具連結



其他還有許多功能,

例如:

同樣來自於 Google 的 PageSpeed Insights ,

讓管理者即時了解網站載入的速度,

不過這裡是安裝教學範例,

請待下回分解,

有機會再告訴大家其他功能。