2022年7月5日 星期二

Scratch 入門:Day 5.轉動的眼睛

0

 




學習重點:如何在 Scratch 3 裡使用重複無限次、建立分身、繪製角色、跟隨滑鼠移動。實作簡單的眼球轉動效果。


Step1 : 角色設定
在角色編輯區,刪除貓咪角色,使用繪畫,繪製兩個新角色 ( 參考:造型與繪圖 )。

使用「圓形」,其中一個角色畫出「眼球外框」( 不要填滿顏色,只要外框 ),另外一個角色繪製「黑色眼球」( 使用一個比較大的黑色圓形當底,一個比較小的白色圓形作為反光 ),繪製完成後在舞台上,應該可以看到組合的眼睛 。







Step2: 積木程式原理 ( 眼球本尊 )




因為轉動眼球時,眼球外框的位置不會改變,所以程式會分成兩個角色進行:

- 眼球外框:
  
  設定點擊綠旗的時候,定位到舞台中心點 (0,0)。

黑色眼球:

設定點擊綠旗的時候,定位到舞台中心點 (0,0),放入重複無限次積木,在滑鼠移動時,黑色眼球座標位置等於「滑鼠座標位置 / 12」( 除的數字越大,眼球移動得越小,反之移動得越大 )。


積木程式原理 ( 眼球分身 )

單一個眼球完成後,透過「建立分身」的積木,就能夠做出兩顆眼球。

- 眼球外框:
  
  設定點擊綠旗的時候,定位到舞台的 (-70,0),同時建立分身,將分身定位到 (70,0)。

黑色眼球:

設定點擊綠旗的時候,定位到舞台的 (-70,0),同時建立分身,將分身定位到 (70,0),放入重複無限次積木,在滑鼠移動時,黑色眼球座標位置等於「滑鼠座標位置 / 12 - 70」和「滑鼠座標位置 / 12 + 70」( 因為座標不在中心點,必須重新計算 x 座標 )。




Demo

2022年6月23日 星期四

Scratch 入門:Day4. 恐龍樂園

0

 


學習重點:如何在 Scratch 3 裡使用角色移動、重複無限次、隨機數字、撞到邊緣就反彈、建立分身等等...

Step 1 角色設定: 在角色編輯區,刪除貓咪角色,加入「恐龍」的角色



Step 2 場景設定: 選擇喜歡的場景


Step 3 積木程式: 放入「當綠旗被點擊」的積木,在點擊綠旗的下方,放入「定位到隨機位置」、「迴轉方式設為左-右」、「重複無限次」、「移動」和「碰到邊緣就反彈」積木,點擊綠旗執行之後,恐龍就會在畫面上跑來跑去,而且碰到邊緣就會左右翻轉的反彈。

在積木組合裡,新增「面朝」和「隨機取數」的積木,就能讓恐龍有不同的移動角度。






Demo



https://scratch.mit.edu/projects/708212778/





2022年6月16日 星期四

Scratch 入門:Day3.吃水果

0

 




學習重點:如何在 Scratch 3 裡使用換造型、點擊角色、音效和積木等等...,搭配繪製角色,實作用滑鼠點擊水果圖案並吃掉水果的效果。

Step 1
角色設定:在角色編輯區,刪除貓咪角色,加入「蘋果」的角色 ( 參考:Scratch 角色設定 )。


Step 2
點選蘋果角色,切換到「造型」頁籤,在角色造型上按下「滑鼠右鍵」,複製{duplicate}造型。




Step 3
使用「橡皮擦」工具 ( 可以調整橡皮擦尺寸大小 ),擦去第二個蘋果造型的一部分。


Step 4
使用「筆刷」工具 ( 可以調整筆刷尺寸大小 ),將擦去的蘋果邊緣塗黑。


Step 5
重複上面的步驟,總共建立四個蘋果造型,分別是完整、吃一口、吃兩口和全部吃完 ( 角色造型全空 )。



Step 6
積木程式原理
點選第一個造型 ( 完整的蘋果 ) 後,回到程式編輯,設定點擊綠旗時,切換蘋果為完整的造型,設定點擊蘋果時,播放吃東西的音效和「造型換成下一個」積木。完成後點擊蘋果,就會看見吃蘋果的音效與效果,如果吃完了或看不見香蕉,點擊綠旗,蘋果就會出現在舞台上。


Demo
https://scratch.mit.edu/projects/705767944/

2022年6月15日 星期三

Scratch 入門:Day2.恐龍跑來跑去

0

 


學習重點:如何在 Scratch 3 裡使用角色移動、重複無限次、滑行到隨機位置...等積木,實作恐龍跑來跑去的動畫效果。

Step 1 
角色設定: 在角色編輯區,刪除貓咪角色,加入「恐龍」的角色 。


Step 2
程式原理: 放入「當綠旗被點擊」的積木,在點擊綠旗的下方,放入「重複無限次」{forever}和「滑行一秒到隨機位置」{wait 1 seconds}積木,點擊綠旗執行之後,恐龍就會在畫面上跑來跑去。








Demo







2022年6月10日 星期五

Scratch 入門:Day1.關於 Scratch 3

0

 



關於 Scratch 3

Scratch 是由美國麻省理工學院媒體實驗室所開發,是一套完全免費的圖形化程式設計軟體,適合學生作為學習程式設計的入門・可以輕易設計動畫、遊戲、音樂、程式...等作品,創作完成後,也可將自己的作品與全世界分享,目前 Scratch 已在全球 150 多個國家或地區使用,並提供 60 多種語言版本。


前往 Scratch:https://scratch.mit.edu/


認識 Scratch 3

Scratch 3 同時支援了線上及離線的操作環境。只要能連上網際網路,就能透過瀏覽器開啟 Scratch 官方網站進行創作,不需安裝任何軟體,當處於沒有網際網路連線的情況,也可以安裝 Scratch 軟體,同樣可以正常開發 Scratch 專題。




2022年5月25日 星期三

如何在 Blogger 顯示程式碼

0

Step 1 新增 HTML / Javascript 


1. 開啟 blogger 後台,點選左邊選單的 版面配置
     2. 點選右方的新增小工具,選擇 HTML / Javascript
     3. 在 HTML / Javascript 內容,貼上下列語法
<script src= "https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js" >
</script>
     
Step 2 將要放置的程式碼 放置在下列兩者語法之間,即可完成
<pre class="prettyprint">your code...</pre>

效果
String s = "ABC";

10 essential performance tips for MySQL

0

10 essential performance tips for MySQL


MySQL performance tip No. 1: Profile your workload
MySQL 性能提示 1:分析您的工作負載

The best way to understand how your server spends its time is to profile the server's workload. By profiling your workload, you can expose the most expensive queries for further tuning. Here, time is the most important metric because when you issue a query against the server, you care very little about anything except how quickly it completes.

The best way to profile your workload is with a tool such as MySQL Enterprise Monitor's query analyzer or the pt-query-digest from the Percona Toolkit. These tools capture queries the server executes and return a table of tasks sorted by decreasing order of response time, instantly bubbling up the most expensive and time-consuming tasks to the top so that you can see where to focus your efforts.

Workload-profiling tools group similar queries together into one row, allowing you to see the queries that are slow, as well as the queries that are fast but executed many times.

MySQL Enterprise Monitor



jQuery Table AddRow plugin

0

Enter Your Information (Max 3 Email)
Email
Email

# 
<table border="1">
<tr><td colspan="3">Enter Your Information (Max 3 Email)</td></tr>
<tr><td>Email</td><td><input type="text" size="24"/></td>
<td><input type="button" class="delRow" value="Delete Row"/></td></tr>
<tr><td>Email</td><td><input type="text" size="24"/></td>
<td><input type="button" class="delRow" value="Delete Row"/></td></tr>
<tr><td colspan="3" align="right">
<input type="button" class="addRow-Max3" value="Add Row"/></td></tr>
</table>
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/jquery.table.addrow.js"></script>
<script type="text/javascript">
(function($){
 $(document).ready(function(){
  $(".addRow-Max3").btnAddRow({maxRow:3});
  $(".delRow").btnDelRow();
 });
})(jQuery);
</script>
jQuery Plugin Source Code
# 



http://www.examplet.buss.hk/jquery/table.addrow.php

Slow MySql Server Performance - What and How to check?

0

Slow MySql Server Performance - What and How to check?


Log slow queries- If your system has a ton of queries, it gets tougher to find out which queries are slowing your system. MySQL provides a tool to log slow queries for further analysis https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html


EXPLAIN Extended command shows details about your queries when your have no idea what is happening https://dev.mysql.com/doc/refman/8.0/en/explain-extended.html


To speed up your queries use Index - A good practice is add index by seeing which fields are in the WHERE clause add index for them. Also if you are retrieving all fields from a table, the query gets slower by fetching all data from disk. In SELECT query you should specify which fields you need to bring instead to bring them all with *

Not 
SELECT * FORM xTable ;

Yes
SELECT ID, Name, Addr FORM xTable ; 

Make use of Query Cache https://dev.mysql.com/doc/refman/5.7/en/query-cache-configuration.html

SHOW VARIABLES LIKE 'have_query_cache';

Make sure that your MySQL server configuration file options are optimized according to your hardware https://dev.mysql.com/doc/refman/8.0/en/option-files.html


Make sure that you are using optimized data types while creating a table structure For example "Comments" fields has size of 256 characters, reply it to MYSQL with a field with type VARCHAR(256) instead of using TEXT. The query will be much faster.



rocedure_Analyse() can help you in finding optimal data types:

http://www.mysqlperformanceblog.com/2009/03/23/procedure-analyse/

http://dev.mysql.com/doc/refman/5.0/en/procedure-analyse.html

http://dba.stackexchange.com/questions/53229/slow-mysql-server-performance-what-and-how-to-check

2022年5月20日 星期五

正則表達式 (regex) 各程式語言使用方法 (part 5)

0

#Java

public class RegexTestStrings {
  public static final String EXAMPLE_TEST = "This is my small example "
      + "string which I'm going to " + "use for pattern matching.";

  public static void main(String[] args) {
    System.out.println(EXAMPLE_TEST.matches("\\w.*"));
    String[] splitString = (EXAMPLE_TEST.split("\\s+"));
    System.out.println(splitString.length);// should be 14
    for (String string : splitString) {
      System.out.println(string);
    }
    // replace all whitespace with tabs
    System.out.println(EXAMPLE_TEST.replaceAll("\\s+", "\t"));
  }
} 


#PHP

$str = 'a1234';
if (preg_match("/^[a-zA-Z0-9]{4,16}$/", $str)) {
    echo "驗證成功";
} else {
    echo "驗證失敗";
}

#perl 
print $str = "a1234" =~ m:^[a-zA-Z0-9]{4,16}$: ? "COMFIRM" : "FAILED";




正則表達式 (regex) 範例 (part 4)

0



只能輸入1個數字 
表達式 \d$
描述 匹配一個數字
匹配的例子 0,1,2,3
不匹配的例子

只能輸入n個數字  
表達式\d{8}
描述匹配8個數字
匹配的例子12345678,22223334,12344321
不匹配的例子

只能輸入至少n個數字 
表達式\d{8,}
描述匹配最少n個數字
匹配的例子12345678,123456789,12344321
不匹配的例子

只能輸入m到n個數字 
表達式\d{7,8}$
描述匹配m到n個數字
匹配的例子12345678,1234567
不匹配的例子123456,123456789

只能輸入數字  
表達式[0-9]*$
描述匹配任意個數字
匹配的例子12345678,1234567
不匹配的例子E,

只能輸入某個區間數字  
表達式[12-15]$
描述匹配某個區間的數字
匹配的例子12,13,14,15
不匹配的例子

只能輸入0和非0打頭的數字  
表達式(0|[1-9][0-9]*)$
描述可以為0,第一個數字不能為0,數字中可以有0
匹配的例子12,10,101,100
不匹配的例子01,

只能輸入實數  
表達式[-+]?\d+(\.\d+)?$
描述匹配實數
匹配的例子18,+3.14,-9.90
不匹配的例子.6,33s,67-99

只能輸入n位小數的正實數  
表達式^[0-9]+(.[0-9]{n})?$以^[0-9]+(.[0-9]{2})?$為例
描述匹配n位小數的正實數
匹配的例子2.22
不匹配的例子2.222,-2.22,

只能輸入mn位小數的正實數  
表達式^[0-9]+(.[0-9]{m,n})?$以^[0-9]+(.[0-9]{1,2})?$為例
描述匹配m到n位小數的正實數
匹配的例子2.22,2.2
不匹配的例子2.222,-2.2222,

只能輸入非0的正整數  
表達式^/+?[1-9][0-9]*$
描述匹配非0的正整數
匹配的例子2,23,234
不匹配的例子0,-4,

只能輸入非0的負整數 
表達式^/-[1-9][0-9]*$
描述匹配非0的負整數
匹配的例子-2,-23,-234
不匹配的例子0,4,

只能輸入n個字符 
表達式^.{n}$ 以^.{4}$為例
描述匹配n個字符,注意漢字只算1個字符
匹配的例子1234,12we,123清,清清月兒
不匹配的例子0,123,123www,

只能輸入英文字符 
表達式^.[A-Za-z]+$為例
描述匹配英文字符,大小寫任意
匹配的例子Asp,WWW,
不匹配的例子0,123,123www,

只能輸入大寫英文字符 
表達式^.[AZ]+$為例
描述匹配英文大寫字符
匹配的例子NET,WWW,
不匹配的例子0,123,123www,

只能輸入小寫英文字符 
表達式^.[az]+$為例
描述匹配英文大寫字符
匹配的例子asp,csdn
不匹配的例子0,NET,WWW,

只能輸入英文字符+數字 
表達式^.[A-Za-z0-9]+$為例
描述匹配英文字符+數字
匹配的例子1Asp,W1W1W,
不匹配的例子0,123,123,www,

只能輸入英文字符/數字/下劃線 
表達式^/w+$為例
描述匹配英文字符或數字或下劃線
匹配的例子1Asp,WWW,12,1_w
不匹配的例子3#,2-4,w#$,

密碼舉例 
表達式^.[a-zA-Z] /w{m,n}$
描述匹配英文字符開頭的mn位字符且只能數字字母或下劃線
匹配的例子
不匹配的例子

驗證首字母大寫 
表達式/b[^/Wa-z0-9_][^/WA-Z0-9_]*/b
描述首字母只能大寫
匹配的例子Asp,Net
不匹配的例子

驗證網址(帶?id=中文)VS.NET2005無此功能 
表達式
^http:////([/w-]+(/.[/w-]+)+(//[/w- .///?%&=/u4e00-/u9fa5]*)?) ?$
描述驗證帶?id=中文
匹配的例子,
http://blog.csdn.net?id=清清月兒
不匹配的例子

驗證漢字 
表達式^[/u4e00-/u9fa5]{0,}$
描述只能漢字
匹配的例子清清月兒
不匹配的例子

驗證QQ號 
表達式[0-9]{5,9}
描述5-9位的QQ號
匹配的例子10000,123456
不匹配的例子10000w,

驗證電子郵件(驗證MSN號一樣)
表達式/w+([-+.´]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
描述注意MSN用非hotmail.com郵箱也可以
匹配的例子aaa@msn.com
不匹配的例子111@1.

驗證身份證號(粗驗,最好服務器端調類庫再細驗證) 
表達式^[1-9]([0-9]{16}|[0-9]{13})[xX0-9]$
描述
匹配的例子15或者18位的身份證號,支持帶X的
不匹配的例子

驗證手機號(包含159,不包含小靈通) 
表達式^13[0-9]{1}[0-9]{8}|^15[9]{1}[0-9]{8}
描述包含159的手機號130-139
匹配的例子139XXXXXXXX
不匹配的例子140XXXXXXXX,

驗證電話號碼號
表達式(不完美方案一((/(/d{3}/)|/d{3}-)|(/(/d{4}/)|/d{4}-))?(/d{8}|/ d{7})
方案二(^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|( ^/([0-9]{3,4}/)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$) 支持手機號但也不完美
描述
上海:02112345678 3+8位
上海:021-12345678
上海:(021)-12345678
上海:(021)12345678
鄭州:03711234567 4+7位
杭州:057112345678 4+8位
還有帶上分機號,國家碼的情況由於情況非常複雜所以不建議前台做100%驗證,到目前為止似乎也沒有誰能寫一個包含所有的類型 如果誰有更好 的驗證電話的請留言,其實有很多情況本身就是矛盾的。
匹配的例子
不匹配的例子

驗證護照 
表達式
(P/d{7})|G/d{8})
描述驗證P+7個數字和G+8個數字
匹配的例子
不匹配的例子

驗證IP 
表達式
^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9 ]{1}|[1-9])/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}| [1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0- 1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2 [0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9] )$
描述驗證IP
匹配的例子192.168.0.1 222.234.1.4
不匹配的例子

驗證域
表達式
^[a-zA-Z0-9]+([a-zA-Z0-9/-/.]+)?/.(com|org|net|cn|com.cn|edu.cn|grv.cn |)$
描述驗證域
匹配的例子csdn.net baidu.com it.com.cn
不匹配的例子192.168.0.1

驗證信用卡
表達式
^((?:4/d{3})|(?:5[1-5]/d{2})|(?:6011)|(?:3[68]/d{2})|( ?:30[012345]/d))[ -]?(/d{4})[ -]?(/d{4})[ -]?(/d{4}|3[4,7]/ d{13})$
描述驗證VISA卡,萬事達卡,Discover卡,美國運通卡
匹配的例子
不匹配的例子

驗證ISBN 國際標準書號
表達式
^(/d[- ]*){9}[/dxX]$
描述驗證ISBN國際標準書號
匹配的例子7-111-19947-2
不匹配的例子

驗證GUID 全球唯一標識符
表達式
^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0- 9]{12}$
描述格式8-4-4-4-12
匹配的例子2064d355-c0b9-41d8-9ef7-9d8b26524751
不匹配的例子

驗證文件路徑和擴展名
表達式
^([a-zA-Z]/:|//)//([^//]+//)*[^//:*?"<>|]+/.txt(l)?$
描述檢查路徑和文件擴展名
匹配的例子E:/mo.txt
不匹配的例子E:/ , mo.doc, E:/mo.doc ,

驗證Html顏色值
表達式
^#?([af]|[AF]|[0-9]){3}(([af]|[AF]|[0-9]){3})?$
描述檢查顏色取值
匹配的例子#FF0000
不匹配的例子