From c03979f750dddfeb3ed6614ef29c408960a45329 Mon Sep 17 00:00:00 2001 From: chenqiangpan Date: Mon, 10 Jun 2024 17:17:14 +1000 Subject: [PATCH] update --- favicon.ico | Bin 95414 -> 67646 bytes img/linkedin_icon.webp | Bin 0 -> 6404 bytes img/twitter_icon.png | Bin 0 -> 8753 bytes index.html | 271 ++------- .../day10_javascript_async.html | 210 +++---- .../day12_weather.html | 172 +++--- .../day13_IP_Country.html | 138 ++--- .../day14_CheckPrimeNumber.html | 224 ++++---- .../day16_Google_translate.html | 138 ++--- .../day17_DjangoDiary.html | 42 +- .../day22_createimage.html | 116 ++-- .../day23_minispelling.html | 58 +- .../day2_Unity_RollingCube.html | 0 .../day5_vue_demo.html | 434 +++++++------- .../day6_remember_me.html | 154 ++--- .../day7_progressionbar.html | 348 +++++------ .../day8_bootstrap_try.html | 392 ++++++------- .../day9_todolist_Vue.html | 250 ++++---- day_1.html => learn/day_1.html | 152 ++--- .../day_3_randomcolor.html | 68 +-- day_4_react.html => learn/day_4_react.html | 0 .../day_4_react_time.html | 44 +- .../flexbox-styles.css | 56 +- flexbox.html => learn/flexbox.html | 40 +- learn/index_learn.html | 217 +++++++ .../learnfrench_day1.html | 80 +-- .../learnfrench_day2.html | 74 +-- .../learnfrench_day3.html | 78 +-- .../learnfrench_day4.html | 78 +-- logs.html => learn/logs.html | 544 +++++++++--------- .../python_json_and_others.html | 96 ++-- swim.html => learn/swim.html | 40 +- script.js | 100 ++++ styles.css | 96 ++++ 34 files changed, 2482 insertions(+), 2228 deletions(-) create mode 100644 img/linkedin_icon.webp create mode 100644 img/twitter_icon.png rename day10_javascript_async.html => learn/day10_javascript_async.html (96%) rename day12_weather.html => learn/day12_weather.html (96%) rename day13_IP_Country.html => learn/day13_IP_Country.html (96%) rename day14_CheckPrimeNumber.html => learn/day14_CheckPrimeNumber.html (95%) rename day16_Google_translate.html => learn/day16_Google_translate.html (94%) rename day17_DjangoDiary.html => learn/day17_DjangoDiary.html (96%) rename day22_createimage.html => learn/day22_createimage.html (96%) rename day23_minispelling.html => learn/day23_minispelling.html (94%) rename day2_Unity_RollingCube.html => learn/day2_Unity_RollingCube.html (100%) rename day5_vue_demo.html => learn/day5_vue_demo.html (95%) rename day6_remember_me.html => learn/day6_remember_me.html (95%) rename day7_progressionbar.html => learn/day7_progressionbar.html (96%) rename day8_bootstrap_try.html => learn/day8_bootstrap_try.html (97%) rename day9_todolist_Vue.html => learn/day9_todolist_Vue.html (95%) rename day_1.html => learn/day_1.html (95%) rename day_3_randomcolor.html => learn/day_3_randomcolor.html (95%) rename day_4_react.html => learn/day_4_react.html (100%) rename day_4_react_time.html => learn/day_4_react_time.html (96%) rename flexbox-styles.css => learn/flexbox-styles.css (92%) rename flexbox.html => learn/flexbox.html (96%) create mode 100644 learn/index_learn.html rename learnfrench_day1.html => learn/learnfrench_day1.html (97%) rename learnfrench_day2.html => learn/learnfrench_day2.html (96%) rename learnfrench_day3.html => learn/learnfrench_day3.html (96%) rename learnfrench_day4.html => learn/learnfrench_day4.html (95%) rename logs.html => learn/logs.html (96%) rename python_json_and_others.html => learn/python_json_and_others.html (94%) rename swim.html => learn/swim.html (93%) create mode 100644 script.js create mode 100644 styles.css diff --git a/favicon.ico b/favicon.ico index 911c8f5edec6805951687f449e71966504f79b43..0b6eb4971165b0efa35b139551c2ca80404dd994 100644 GIT binary patch literal 67646 zcmeHQONbps6n#O_L5$2s9dwid69^hG>LSL~xC^eb5nYG`1&M+%3l|DX0t%6!L{S(; zaKwc|K!Xb%T!a`D6$Asi6C}6_ekai+Gek%`=f!$+UcLHuRd>IBeOo47ue(0C&$)H) zt=k`ay-n-?9XQZi|97spZE92RhF-6?ZT)Zk5DxZ_qlnT2+k5@L%fEZQLN-A_5D)|e z0YN|z5Cj@RV0Cr1*t>Ucu^yLX`P;W|Uqe?S!@3a2&2x;t?A*DtuUn!UE{5`-Ym)OA z{RpWmx)Y}#2M-?1V$VaksjE&L0^O-SN%P#MOH)%*eL`P9_)T$r@8!YYGy6X84$+1y zJ$m$Lv17-MiJR-J2iIMDW3jpS;DB@HALXuWZR2`wZmw8bS}IM?+Umc>L%WYyc?b8i zQ?Hcnzby?zc!zz2&&M`1Gt-zofE)`83&rWvr%S^N-k;w4sg?J;=N5|>pZ%iPGyg&H z;nEMK#~J5_A)K>~G?g*`Vthl2-e9a$-W4CuFB}`;{?Ps})#-`fW36N2ljl}h{Yc@M zWwP;&cue=trr)->4RaqhUA4hne{b>oiRWBh;K`FGN4RIKaenvi-6M6Fo7`m{U&(3P z-?#0Z0e6Z+)86K{dG6cl*v4+_aobvbety0KyrEeQ7kqOZ$~QE8WH-GBgV5!TJ-a^v0QdN_H*HhbE#{@+%cX{ z-dO%6_VXcnSqDu1K=%*$T{qvl^s)R)?588x?%x~(e0KCF@5RLGi?>6m&?o|YAMgGh zOI}%&zI5fDpBIppSNQexxxpF$a~nFqb3CSu*dS&d*>dPwDL&$N%z50~jo~)7uI;&z zR)W?-q4nplWBJQbUu;2hio#yL2GZT{-` zFYXRXp4Fc#D%p)ROGJSAPwXnXd6Q#D3p=3=n1j0gFpoW<@Q(dusdYNIsM`+<|IMpM zlYUtEZ=Qch&=e0%jXNHwkB=1W14459xg;0{A|b&uIiX2Y(!ZZ0_HkY@zKII6N1^Iu0EkncNn<-Oo4 z`AhAa*MN280a@QtWtaBp2-KYi6#mmWOYK2__T$!TULC|_Rp)_(|5Wzk+QX;2zQF}P zX0ALm;6LOU&o~K&YYYFwcvSfd-21+}hvz-se(k#f|KO*}P57@8-HpC=8_&3-4Bq+M zJ$!znm%Jr;H!LrnuHJZ^1#W%c-K&~^*dl!AQH|5p?*h0u%Xv=Wj6Gs}-^TTQb<3RR zybs3e@^=Bs;1}D5`3%YHaQ)b^Lh7?U^4X%0{-ll@0nY0n2K4DbmHcDuD*JaM(ap1Z zUdN{cRr15OUvmES=_Bkc^Xk$8u9sUvw*8Xx&yB9Tzfc{hf`8K*)Ge)?tpWjE2f(%d z{$&;X>+gG+#;xLdrO#0WbRE$Ba25O?TmHG2y?Wyt@H~dDf1?u1k=zKVcQEzbAI4#B za*d0)|E8-p?k(^bDErnVx#W<3{0J~N{@P(RIPQlYnEZiB7sGm&S~(G@f`3!oudhpa zT>d`DTW?+{w#@!H^7q1X=W|}R^z}ai%tH=PTsa@*hj>g?#v1kPnTy38xBWH3z0!vq z@<|`V2q^rqPu=u&pB`(f{?Dwe_3umRe&Lqs6ISk_1G1$fpmW6h+sdK7n(aRN3d#BK z`ee(^zYX}G-Mn1zZ`cLd$|C@~?0X)_#=q@2`)x?Z^+N7Fs;g0cLD_li`~1)TG0+Db zd-Cyrif_NZsG7+>0D&raXP!B?%*O*n8>zzlZ=L*Kmn!ek| z_8hqy*Z+sp=Bt@&l;`h!cWC~P2;(_mi~Ct8xV-SxxngbYlBd^hp2nQVb2d6h;627J zyU=65t&cNv#UWQy+q4s^*D==0u|cT-r}_My2UpKpg9P;mhEF*d*^ zn>r4?fR5NWHyxj3pMbf~c{g6$Da>4ZlkH&cY-OKsFKYu_vhq3DgV$fZ5bPIpd%}IS zxy*CF%)ICJHm+^QUAR?g19;q6zX01YNxHyuKX#30viCmw!MfnH>s8wT)`M8T@Yo}N zw?2QQ^T&9Elv#H|ZAT2Jx(x`CDMuan1ydYgJJ!bdK==Eh{4u_YOSHurK4b%@Tc%$d z#CN{$2C%(=%yn(C_5ixkrgbCx?HK+Te{ku_{c~L|^Vq)c1}Gha9{6HL9wTQt#vZgK zJ^<%xZpHfjRBU6uAE`h0l{$9W_GRqBIQs>~J@!p(G2_S7t>ao^>_Hv!lo_LGOqE>^ zi94E>)r4=TJs8)RplM8FVuz+>HSy2Kd^v=1Tq}+{ri^b}WcAsEaf%1pf+_T%O|n8> zbstL47mU+0sBOZuO|pW2wXq(I+q#f3tuwEpu!-5TtTFARt{njte*@d5@+x-ehR+E9 z!+7NQ6_Z!t`vkswHaTR|`w;$hMDqL&#Z`YME6?cRy@bjc-lNn60_+1^_hDl1+2lr7 z_|J{#<^E#s!^G4Ll~(x`pHC6~LlKRu7jqvbrf#Sdd=JXiM)-H3lXfl!Tjei8a`rB% zOwSD3>Z5LqjJAH{xETS(DKK`$0B9YPvp0`se#gY7PvD;4N3qqjjU~tZ2(Vv=4)}br zzejToCWGFeCA*Vzw)lPdCo`Wh1BxZW{=3@n$c?qo4i|JA_m z^D}u>v_ZVZI)HMWYXkB5d3a3e#iRq! zgPd`JKIhRtxDS1wB<1>~tsepKz-t5DCglF@$_MzRl^RtbV2cZKaxZhf3g+_nY5P`B ziY~~U&(G7i^vJeDcpev4L=Hhf5D)|e0YN|z5CjAPK|l}?1Ox#=KoAfF1OY)n5D)|e w0YN|z5CjAPK|l}?1Ox#=KoAfF1OY)n5J*9wCz~K32nYg#fFK|UbPj?40MhXXJ^%m! literal 95414 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 SscEK!*Hix9q@!CJgv=QZ>>VBe literal 0 HcmV?d00001 diff --git a/img/twitter_icon.png b/img/twitter_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8afaf8a5e3279cfe2f403cd95ff17d1333d40570 GIT binary patch literal 8753 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 bZqWY&b%$S@Ff8}c00000NkvXXu0mjftULk# literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 8f36025..32fe7ca 100644 --- a/index.html +++ b/index.html @@ -1,217 +1,58 @@  - - - - - - -

✔️ CHEN QIANGPAN's Learning Zone and Web Playground ✔️

- - - - -

🏊‍♂️GO🏊‍♂️

-

- LET US GO -

- -

🏊‍♂️I Love Swim🏊‍♂️

-

- Swim 2🏊‍♂️0🏊‍♂️2🏊‍♂️2🏊‍♂️ Progress -

- -

Learn Blender

-

- Blender learn progress -

- -

🕹️ Make Games 🎮 🎲

-

- Unity Inventory System -

-

- Unity DoTween Plugin -

-

- Global Game Jam 2022 Progress -

- -

🐓 Learn French 🐓

- -

- Day1 (2022/2/3) : Pre French Lesson Notes -

-

- Day2 (2022/2/9) : First French Lesson Notes -

- Day3 (2022/2/15) : Second French Lesson Notes -

- Day4 (2022/2/22) : Third French Lesson Notes -

- -

Learn Something (🌐Tech!⌨️) Everyday : 180 Days

- -

- Day1 (2022/1/19) : Make some lines and buttons -

- -

- Day2 (2022/1/20/) : Upload a sample Unity project in web player -

- -

- Day3 (2022/1/21) : Random color, Hide and Show,with JQuery -

- -

- Day4 (2022/1/22) : Create a Tic Tac Toe with React -

- -

- Day5 (2022/1/23) : Create some samples with Vue -

- -

- Day6 (2022/1/24) : WebStorage Local, with Vue -

- -

- Day7 (2022/1/25) : Progression bar, record personal goal, compare with - year progress -

- -

- Day8 (2022/1/26) : Try some Bootstrap widget, using CSS animation -

-

- Day9 (2022/1/27) : To do list with Vue -

- -

- Day10 (2022/1/28) :Loop and Interval with Javascript -

- -

- Day11 (2022/1/29) : Celsius Fahrenheit Converter: Python + Flask + Google App Engine (app engine website DOWN, deployed to Heroku) -

- - -

- Day12 (2022/1/30) :Open Weather API -

- -

- Day13 (2022/1/31) :Show IP, Country Name and Flag -

- -

- Day14 (2022/2/1) : Input a Number and Check If it's a Prime Number -

- -

- - Day15 (2022/2/2) : Google Cloud Datastore (website DOWN) -

- -

- Day16 (2022/2/3) : Google Translate -

- -

- Day17 (2022/2/4) : Django + Python based Diary (Localhost) -

- -

- Day18 (2022/2/5) : Python + Django + Heroku, Diary (web) -

- -

- Day19 (2022/2/6) : Python + Flask + Heroku -

-

- Day20 (2022/2/7) : Heroku + Flask => Docker -

- -

- Day21 (2022/2/8) : Djongo Polls project -

- -

- - Day22 (2022/2/9) : Random Pictures -

- -

- - Day23 (2022/2/12) : Mini Spelling -

- -

- - Day24 (2022/2/14) : Mini Phrase (phrase sandbox) -

- -

- - Day25 (2022/2/15) : Angular, CLi, run start, router, data binding -

- -

- - Day26 (2022/2/16) : Angular, To Do List -

- -

- - Day27 (2022/2/18) : First ASP.NET website Deploy -

- -

Diaries and logs

- - - - + + + + + Game Feel Resources + + + +
+

Game Feel Resources

+ + +
+
+
+

Videos

+
+ +
+ +
+ + + +
+ + diff --git a/day10_javascript_async.html b/learn/day10_javascript_async.html similarity index 96% rename from day10_javascript_async.html rename to learn/day10_javascript_async.html index 37d3ea2..305a896 100644 --- a/day10_javascript_async.html +++ b/learn/day10_javascript_async.html @@ -1,105 +1,105 @@ - - - - day10 javascript loop and async - - - - - -

Back

- -

-
    -
    -
    - -
    -
    - -
    -
    -
- -
    -
    -
    - -
    -
    - -
    -
    -
- - - - + + + + day10 javascript loop and async + + + + + +

Back

+ +

+
    +
    +
    + +
    +
    + +
    +
    +
+ +
    +
    +
    + +
    +
    + +
    +
    +
+ + + + diff --git a/day12_weather.html b/learn/day12_weather.html similarity index 96% rename from day12_weather.html rename to learn/day12_weather.html index 6a7763b..e6695d0 100644 --- a/day12_weather.html +++ b/learn/day12_weather.html @@ -1,86 +1,86 @@ - - - - - Day12 City Weather - - - - - - - - - - - - - - - - - - -
-

-

-
-

- -

-

-
- - - + + + + + Day12 City Weather + + + + + + + + + + + + + + + + + + +
+

+

+
+

+ +

+

+
+ + + diff --git a/day13_IP_Country.html b/learn/day13_IP_Country.html similarity index 96% rename from day13_IP_Country.html rename to learn/day13_IP_Country.html index 165a4c6..7f0d7c7 100644 --- a/day13_IP_Country.html +++ b/learn/day13_IP_Country.html @@ -1,69 +1,69 @@ - - - - - - - - Day13 Show IP - - - - - -
- -

- -
- -

- -
-
-

-
- -

- - -




-

Back

- - + + + + + + + + Day13 Show IP + + + + + +
+ +

+ +
+ +

+ +
+
+

+
+ +

+ + +




+

Back

+ + diff --git a/day14_CheckPrimeNumber.html b/learn/day14_CheckPrimeNumber.html similarity index 95% rename from day14_CheckPrimeNumber.html rename to learn/day14_CheckPrimeNumber.html index 1d57766..475fdfd 100644 --- a/day14_CheckPrimeNumber.html +++ b/learn/day14_CheckPrimeNumber.html @@ -1,112 +1,112 @@ - - - - Day14 Check Prime Number - - - - - -

Input a Number, and click Check

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




-

Back

- - + + + + Day14 Check Prime Number + + + + + +

Input a Number, and click Check

+
+ + +
+
+ +
+ + + + + + +




+

Back

+ + diff --git a/day16_Google_translate.html b/learn/day16_Google_translate.html similarity index 94% rename from day16_Google_translate.html rename to learn/day16_Google_translate.html index 9498088..e069aac 100644 --- a/day16_Google_translate.html +++ b/learn/day16_Google_translate.html @@ -1,69 +1,69 @@ - - - - - Day16 Google Translate - - - - -

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

Back

- - + + + + + Day16 Google Translate + + + + +

+ + +
+ + + + + +
+ + + + + + +

Back

+ + diff --git a/day17_DjangoDiary.html b/learn/day17_DjangoDiary.html similarity index 96% rename from day17_DjangoDiary.html rename to learn/day17_DjangoDiary.html index a3c0f22..4c2d7ec 100644 --- a/day17_DjangoDiary.html +++ b/learn/day17_DjangoDiary.html @@ -1,22 +1,22 @@ - - - - - - day 17 Django + Python - - - -

- create a diary website with Django and Python - Run on local host: - -

- - - - - - - + + + + + + day 17 Django + Python + + + +

+ create a diary website with Django and Python + Run on local host: + +

+ + + + + + + \ No newline at end of file diff --git a/day22_createimage.html b/learn/day22_createimage.html similarity index 96% rename from day22_createimage.html rename to learn/day22_createimage.html index bf9775c..459b5cf 100644 --- a/day22_createimage.html +++ b/learn/day22_createimage.html @@ -1,58 +1,58 @@ - - - - - - - Day22 Create images with Click - - - - -

Click the dotted area to show a random picture

-

Set Width and Height :

- - -
-
-

Back

- - - + + + + + + + Day22 Create images with Click + + + + +

Click the dotted area to show a random picture

+

Set Width and Height :

+ + +
+
+

Back

+ + + diff --git a/day23_minispelling.html b/learn/day23_minispelling.html similarity index 94% rename from day23_minispelling.html rename to learn/day23_minispelling.html index ec2dd56..91f7532 100644 --- a/day23_minispelling.html +++ b/learn/day23_minispelling.html @@ -1,29 +1,29 @@ - - - -

Back

- -

Mini Spelling

- - -
- -

- using C# interface -
hook interface with interactive object -
add conditional interaction -
taking Event Action from other interacts -
when fullfill the condition, execute the code -
Action Baby! -

- - - -
- - - - - + + + +

Back

+ +

Mini Spelling

+ + +
+ +

+ using C# interface +
hook interface with interactive object +
add conditional interaction +
taking Event Action from other interacts +
when fullfill the condition, execute the code +
Action Baby! +

+ + + +
+ + + + + diff --git a/day2_Unity_RollingCube.html b/learn/day2_Unity_RollingCube.html similarity index 100% rename from day2_Unity_RollingCube.html rename to learn/day2_Unity_RollingCube.html diff --git a/day5_vue_demo.html b/learn/day5_vue_demo.html similarity index 95% rename from day5_vue_demo.html rename to learn/day5_vue_demo.html index 5e9ebdc..52d6f16 100644 --- a/day5_vue_demo.html +++ b/learn/day5_vue_demo.html @@ -1,218 +1,218 @@ - - - - - day5 Vue Demo Three Ways to Toggle Color - - - - - - - - -

Back

- - -

Vue Demo Three Ways to Toggle Color

- - - - - -
-

-
- - -
- - - -
- -
-

-
- -
- -

- -

-

- -

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

-
- -
-

-
-
- - Hover your mouse over me for a few seconds - - -
- - - - - - + + + + + day5 Vue Demo Three Ways to Toggle Color + + + + + + + + +

Back

+ + +

Vue Demo Three Ways to Toggle Color

+ + + + + +
+

+
+ + +
+ + + +
+ +
+

+
+ +
+ +

+ +

+

+ +

+
+ + + + +
+ +
+
+ + + +
+

+
+ +
+

+
+
+ + Hover your mouse over me for a few seconds + + +
+ + + + + + \ No newline at end of file diff --git a/day6_remember_me.html b/learn/day6_remember_me.html similarity index 95% rename from day6_remember_me.html rename to learn/day6_remember_me.html index ccebfe0..c32bbe8 100644 --- a/day6_remember_me.html +++ b/learn/day6_remember_me.html @@ -1,78 +1,78 @@ - - - - - day6_remember_me - - - - - - - - -

Back

- - -
- -

- Input your message : -

- - -

This is your message : -

- -

- {{ message }} -

- - -

- -

- - -
- ( Even you left this page or closed the browser, - when you come back, - the message would be still here.) -
- -

- {{savedMessage}} -

- -
- - - - - - + + + + + day6_remember_me + + + + + + + + +

Back

+ + +
+ +

+ Input your message : +

+ + +

This is your message : +

+ +

+ {{ message }} +

+ + +

+ +

+ + +
+ ( Even you left this page or closed the browser, + when you come back, + the message would be still here.) +
+ +

+ {{savedMessage}} +

+ +
+ + + + + + \ No newline at end of file diff --git a/day7_progressionbar.html b/learn/day7_progressionbar.html similarity index 96% rename from day7_progressionbar.html rename to learn/day7_progressionbar.html index ea8111b..f7c632f 100644 --- a/day7_progressionbar.html +++ b/learn/day7_progressionbar.html @@ -1,175 +1,175 @@ - - - - - day7_my progress bar - - - - - - - - -

Back

- - -
- -

- Year Progress -

- -

Today is : - -

- -

-

- -
-
-
- -
-

My Swimming Progress | Goal: 200,000 m

- -
-
-
-

{{swimmingUpdate}} meters so far -

-

- - -

- - - - - - - -
- - - - - - - + + + + + day7_my progress bar + + + + + + + + +

Back

+ + +
+ +

+ Year Progress +

+ +

Today is : + +

+ +

+

+ +
+
+
+ +
+

My Swimming Progress | Goal: 200,000 m

+ +
+
+
+

{{swimmingUpdate}} meters so far +

+

+ + +

+ + + + + + + +
+ + + + + + + \ No newline at end of file diff --git a/day8_bootstrap_try.html b/learn/day8_bootstrap_try.html similarity index 97% rename from day8_bootstrap_try.html rename to learn/day8_bootstrap_try.html index fa3db9b..abe97f5 100644 --- a/day8_bootstrap_try.html +++ b/learn/day8_bootstrap_try.html @@ -1,197 +1,197 @@ - - - - - - - - - - - - Hello, Bootstrap - - - - - - - - - - - -
What is the meaning of life?
- -
- -
-

-
-
- -
-

-
-
- -
-

-
-
-
-

-
-
-
-

-
-
-
-

-
-
-
-

-
-
-
-

-
-
-
-

-
-
-
-

-
-
-
-

-
-
-
-

-
-
-
-

-
-
-
-

-
-
-
-

-
-
-
-

-
-
-
-

-
-
-
-

-
- - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + Hello, Bootstrap + + + + + + + + + + + +
What is the meaning of life?
+ +
+ +
+

+
+
+ +
+

+
+
+ +
+

+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+

+
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/day9_todolist_Vue.html b/learn/day9_todolist_Vue.html similarity index 95% rename from day9_todolist_Vue.html rename to learn/day9_todolist_Vue.html index 64dfc96..177d54b 100644 --- a/day9_todolist_Vue.html +++ b/learn/day9_todolist_Vue.html @@ -1,125 +1,125 @@ - - - - day9 vue to do - - - - - - -

Back

- - - - - - - - -
- - - -
- - - - -
-
    -
  • -
-
- - - -
+ + + + day9 vue to do + + + + + + +

Back

+ + + + + + + + +
+ + + +
+ + + + +
+
    +
  • +
+
+ + + +
diff --git a/day_1.html b/learn/day_1.html similarity index 95% rename from day_1.html rename to learn/day_1.html index 86b2189..6e8fc19 100644 --- a/day_1.html +++ b/learn/day_1.html @@ -1,76 +1,76 @@ - - - - - - -

Day 1

- -

- -

Back

- - - - - - - - - - + + + + + + +

Day 1

+ +

+ +

Back

+ + + + + + + + + + diff --git a/day_3_randomcolor.html b/learn/day_3_randomcolor.html similarity index 95% rename from day_3_randomcolor.html rename to learn/day_3_randomcolor.html index 6e45c1e..88e695e 100644 --- a/day_3_randomcolor.html +++ b/learn/day_3_randomcolor.html @@ -1,34 +1,34 @@ - - - - - Random Color Background - - - - - - - - - - - -
- Hide - - Show -
- -
something
- - - - - - + + + + + Random Color Background + + + + + + + + + + + +
+ Hide + + Show +
+ +
something
+ + + + + + diff --git a/day_4_react.html b/learn/day_4_react.html similarity index 100% rename from day_4_react.html rename to learn/day_4_react.html diff --git a/day_4_react_time.html b/learn/day_4_react_time.html similarity index 96% rename from day_4_react_time.html rename to learn/day_4_react_time.html index b877980..0d9ec50 100644 --- a/day_4_react_time.html +++ b/learn/day_4_react_time.html @@ -1,22 +1,22 @@ - - - - - - -

Hello React!

- - - -
- - - - - - - - - - - + + + + + + +

Hello React!

+ + + +
+ + + + + + + + + + + diff --git a/flexbox-styles.css b/learn/flexbox-styles.css similarity index 92% rename from flexbox-styles.css rename to learn/flexbox-styles.css index fa4648c..96d9425 100644 --- a/flexbox-styles.css +++ b/learn/flexbox-styles.css @@ -1,28 +1,28 @@ -.flexbox-container{ - - - display: flex; - flex-direction: column; - align-items: center; - -} - -.flexbox-item{ - width: 200px; - height: 200px; - margin : 10px; - border : 3px solid black; - background-color: aliceblue; -} - -.flexbox-item-1{ - min-height: 100px; -} - -.flexbox-item-2{ - min-height: 200px; -} - -.flexbox-item-3{ - min-height: 300px; -} +.flexbox-container{ + + + display: flex; + flex-direction: column; + align-items: center; + +} + +.flexbox-item{ + width: 200px; + height: 200px; + margin : 10px; + border : 3px solid black; + background-color: aliceblue; +} + +.flexbox-item-1{ + min-height: 100px; +} + +.flexbox-item-2{ + min-height: 200px; +} + +.flexbox-item-3{ + min-height: 300px; +} diff --git a/flexbox.html b/learn/flexbox.html similarity index 96% rename from flexbox.html rename to learn/flexbox.html index b06bee3..2c73c48 100644 --- a/flexbox.html +++ b/learn/flexbox.html @@ -1,21 +1,21 @@ - - - - - - - Document - - - -
- -
-
-
- -
- - - + + + + + + + Document + + + +
+ +
+
+
+ +
+ + + \ No newline at end of file diff --git a/learn/index_learn.html b/learn/index_learn.html new file mode 100644 index 0000000..9d573a8 --- /dev/null +++ b/learn/index_learn.html @@ -0,0 +1,217 @@ + + + + + + + +

✔️ CHEN QIANGPAN's Learning Zone and Web Playground ✔️

+ + + + +

🏊‍♂️GO🏊‍♂️

+

+ LET US GO +

+ +

🏊‍♂️I Love Swim🏊‍♂️

+

+ Swim 2🏊‍♂️0🏊‍♂️2🏊‍♂️2🏊‍♂️ Progress +

+ +

Learn Blender

+

+ Blender learn progress +

+ +

🕹️ Make Games 🎮 🎲

+

+ Unity Inventory System +

+

+ Unity DoTween Plugin +

+

+ Global Game Jam 2022 Progress +

+ +

🐓 Learn French 🐓

+ +

+ Day1 (2022/2/3) : Pre French Lesson Notes +

+

+ Day2 (2022/2/9) : First French Lesson Notes +

+ Day3 (2022/2/15) : Second French Lesson Notes +

+ Day4 (2022/2/22) : Third French Lesson Notes +

+ +

Learn Something (🌐Tech!⌨️) Everyday : 180 Days

+ +

+ Day1 (2022/1/19) : Make some lines and buttons +

+ +

+ Day2 (2022/1/20/) : Upload a sample Unity project in web player +

+ +

+ Day3 (2022/1/21) : Random color, Hide and Show,with JQuery +

+ +

+ Day4 (2022/1/22) : Create a Tic Tac Toe with React +

+ +

+ Day5 (2022/1/23) : Create some samples with Vue +

+ +

+ Day6 (2022/1/24) : WebStorage Local, with Vue +

+ +

+ Day7 (2022/1/25) : Progression bar, record personal goal, compare with + year progress +

+ +

+ Day8 (2022/1/26) : Try some Bootstrap widget, using CSS animation +

+

+ Day9 (2022/1/27) : To do list with Vue +

+ +

+ Day10 (2022/1/28) :Loop and Interval with Javascript +

+ +

+ Day11 (2022/1/29) : Celsius Fahrenheit Converter: Python + Flask + Google App Engine (app engine website DOWN, deployed to Heroku) +

+ + +

+ Day12 (2022/1/30) :Open Weather API +

+ +

+ Day13 (2022/1/31) :Show IP, Country Name and Flag +

+ +

+ Day14 (2022/2/1) : Input a Number and Check If it's a Prime Number +

+ +

+ + Day15 (2022/2/2) : Google Cloud Datastore (website DOWN) +

+ +

+ Day16 (2022/2/3) : Google Translate +

+ +

+ Day17 (2022/2/4) : Django + Python based Diary (Localhost) +

+ +

+ Day18 (2022/2/5) : Python + Django + Heroku, Diary (web) +

+ +

+ Day19 (2022/2/6) : Python + Flask + Heroku +

+

+ Day20 (2022/2/7) : Heroku + Flask => Docker +

+ +

+ Day21 (2022/2/8) : Djongo Polls project +

+ +

+ + Day22 (2022/2/9) : Random Pictures +

+ +

+ + Day23 (2022/2/12) : Mini Spelling +

+ +

+ + Day24 (2022/2/14) : Mini Phrase (phrase sandbox) +

+ +

+ + Day25 (2022/2/15) : Angular, CLi, run start, router, data binding +

+ +

+ + Day26 (2022/2/16) : Angular, To Do List +

+ +

+ + Day27 (2022/2/18) : First ASP.NET website Deploy +

+ +

Diaries and logs

+ + + + + diff --git a/learnfrench_day1.html b/learn/learnfrench_day1.html similarity index 97% rename from learnfrench_day1.html rename to learn/learnfrench_day1.html index b75b814..a0db498 100644 --- a/learnfrench_day1.html +++ b/learn/learnfrench_day1.html @@ -1,41 +1,41 @@ - - - - - - Learn French Day 1 : 2022-02-06 - - -

-

- Oui j’aime le cinéma.
- - Quel genre de films vous aimez ?
- - J’aime les films de science fiction.

- - Quels plats vous aimez ?
- - J’aime la soupe de tomates/à la tomate.

- - - Vous êtes allé en France ?
- - Non, je ne suis pas/jamais allé en France. (négation)
- - Je préfère le café

- - - Quand vous buvez du café pendant la journée ?
- - Je bois du café le matin.

- - Je connais / je ne connais pas. (negation)
- Je n’écoute pas de la musique fréquemment.

- - Vous habitez dans quelle ville en Australie ?
- J’habite à Sydney.
- J’aime beaucoup Sydney.
- C’est une ville jolie et sympa.

- - Je préfère les parcs, la plage.

- - Aujourd’hui, il fait froid.

- - Avant le covid, j’allais souvent à Shanghai.
- -

- - + + + + + + Learn French Day 1 : 2022-02-06 + + +

+

+ Oui j’aime le cinéma.
+ - Quel genre de films vous aimez ?
+ - J’aime les films de science fiction.

+ - Quels plats vous aimez ?
+ - J’aime la soupe de tomates/à la tomate.

+ + - Vous êtes allé en France ?
+ - Non, je ne suis pas/jamais allé en France. (négation)
+ - Je préfère le café

+ + - Quand vous buvez du café pendant la journée ?
+ - Je bois du café le matin.

+ + Je connais / je ne connais pas. (negation)
+ Je n’écoute pas de la musique fréquemment.

+ + Vous habitez dans quelle ville en Australie ?
+ J’habite à Sydney.
+ J’aime beaucoup Sydney.
+ C’est une ville jolie et sympa.

+ + Je préfère les parcs, la plage.

+ + Aujourd’hui, il fait froid.

+ + Avant le covid, j’allais souvent à Shanghai.
+ +

+ + \ No newline at end of file diff --git a/learnfrench_day2.html b/learn/learnfrench_day2.html similarity index 96% rename from learnfrench_day2.html rename to learn/learnfrench_day2.html index 8c40a4d..0db1cf8 100644 --- a/learnfrench_day2.html +++ b/learn/learnfrench_day2.html @@ -1,38 +1,38 @@ - - - - - - Learn French Day 1 : 2022-02-14 - - -

-

- - - je ne comprends pas
- combien coûte le vélo ?
- comment on dit "bla bla bla" en français ?
- je n'aime pas cuisiner
- les lunettes
- le nom de famille
- le prénom (on ne prononce par le "m")
- pouvez-vous répéter s'il vous plaît ?
- je suis designer de jeux vidéos
- que signifie bla bla bla ?
- désolé pour le retard
- je ne comprends pas
- la bouteille
- le vélo
- comment on dit "bla bla bla" en français ?
- je peux vous aider?
- j'ai compris!
- je n'aime pas cuisiner
- J'aime lire des livres
- - - -

- - + + + + + + Learn French Day 1 : 2022-02-14 + + +

+

+ + + je ne comprends pas
+ combien coûte le vélo ?
+ comment on dit "bla bla bla" en français ?
+ je n'aime pas cuisiner
+ les lunettes
+ le nom de famille
+ le prénom (on ne prononce par le "m")
+ pouvez-vous répéter s'il vous plaît ?
+ je suis designer de jeux vidéos
+ que signifie bla bla bla ?
+ désolé pour le retard
+ je ne comprends pas
+ la bouteille
+ le vélo
+ comment on dit "bla bla bla" en français ?
+ je peux vous aider?
+ j'ai compris!
+ je n'aime pas cuisiner
+ J'aime lire des livres
+ + + +

+ + \ No newline at end of file diff --git a/learnfrench_day3.html b/learn/learnfrench_day3.html similarity index 96% rename from learnfrench_day3.html rename to learn/learnfrench_day3.html index 95cc409..6fe4105 100644 --- a/learnfrench_day3.html +++ b/learn/learnfrench_day3.html @@ -1,40 +1,40 @@ - - - - - - Learn French Day 3 : 2022-02-21 - - -

-

- - - Tu t'applelles Claire.
- épeler
- monsieur
- mademoiselle (Mlle)
- madame (Mme)
- vous vous appelez Sofia et Paul
- comment tu t'appelles ?
- Elle s'appelle Luna
- comment vous vous appelez ?
- elles s'appellent Shuang et Ella
- nous nous appelons Claire et Qiangpan
- je suis
- tu es
- il est
- Où tu habites ?
- elle est
- j'habite à Montpellier
- nous sommes
- vous êtes
- ils sont
- elles sont
- - - -

- - + + + + + + Learn French Day 3 : 2022-02-21 + + +

+

+ + + Tu t'applelles Claire.
+ épeler
+ monsieur
+ mademoiselle (Mlle)
+ madame (Mme)
+ vous vous appelez Sofia et Paul
+ comment tu t'appelles ?
+ Elle s'appelle Luna
+ comment vous vous appelez ?
+ elles s'appellent Shuang et Ella
+ nous nous appelons Claire et Qiangpan
+ je suis
+ tu es
+ il est
+ Où tu habites ?
+ elle est
+ j'habite à Montpellier
+ nous sommes
+ vous êtes
+ ils sont
+ elles sont
+ + + +

+ + \ No newline at end of file diff --git a/learnfrench_day4.html b/learn/learnfrench_day4.html similarity index 95% rename from learnfrench_day4.html rename to learn/learnfrench_day4.html index 37bf816..249c921 100644 --- a/learnfrench_day4.html +++ b/learn/learnfrench_day4.html @@ -1,40 +1,40 @@ - - - - - - Learn French Day 3 - - -

-

- - - ma femme
- mon mari
- mes enfants
- ma fille
- mon fils
- La réponse est ...
- les États-Unis
- les Pays-Bas
- la Corée
- le Portugal
- l'Allemagne
- l'Espagne
- l'Australie
- 11 (onze)
- 12 (douze)
- 13 (treize)
- 14 (quatorze)
- 15 (quinze)
- 16 (seize)
- 17 (dix-sept)
- - - - -

- - + + + + + + Learn French Day 3 + + +

+

+ + + ma femme
+ mon mari
+ mes enfants
+ ma fille
+ mon fils
+ La réponse est ...
+ les États-Unis
+ les Pays-Bas
+ la Corée
+ le Portugal
+ l'Allemagne
+ l'Espagne
+ l'Australie
+ 11 (onze)
+ 12 (douze)
+ 13 (treize)
+ 14 (quatorze)
+ 15 (quinze)
+ 16 (seize)
+ 17 (dix-sept)
+ + + + +

+ + \ No newline at end of file diff --git a/logs.html b/learn/logs.html similarity index 96% rename from logs.html rename to learn/logs.html index 6ca44e9..97339e5 100644 --- a/logs.html +++ b/learn/logs.html @@ -1,272 +1,272 @@ - - - -

Back

- -

Logs

- -

- Day1 (2022/01/19): 在github pages上创建了一个repo; 用aws -
route53申请了一个域名,并且用CNAME record指向git的io页面; -
试着安装Jekyll但是失败了,它的安装前提需要另外四个软件,Ruby, RubyGems, -
GCC, Make,后面两个不知道怎么安装; 随便写了一些JS代码。 -

- -

- Day2 (2022/01/20): build a sample Unity project into WEBGL and then -
uploaded to the site; known issue: If I build the webgl version with -
compress, then I need do some setting on the web server site, otherwise, -
the unity content won't load; compare: compressed: 4MB, un compressed: 14 - MB -

- -

- Day3 (2022/01/21): Interesing, seems if I add this in to .html file I have -
JQuery ready to use, Goolge is the CDN of JQuery: explored something about -
css position, and with hide/show function in JQuery -

- -

- Day4 (2022/01/22): follow React's tutorial, made a Tic Tac Toe game then -
build and deploy the react project to a git repo then download the -
reop...and copy to this main project I am sure this is not the best way to - do it... -

- -

- Day5 (2022/01/23): tried a little bit Vue, very powerful JS frontend stuff -
I have tried both the old way and new way to toggle a shape's Color In the -
old way, it has a method inside Vue, to create a toggle function there In -
the new way, it only has one data show: true, there, a bool, apparently -
Then, in the html, it is using v-on:click = "show =!show" to do the basic -
logic and then, it is using a v-if, and a v-else to call different -
components to render them , very cool. Then there is anotherway to change -
color, which is pick up a color and apply to the inline css style, by -
using v-bind: style I think to switch color, the third way is the right -
way, we don't really need to create a component to do color switch also, I -
could embed the -webkit-transition into inline css to have vue's -
transition things...cool beans -

- -

- Day6 (2022/01/24): use webstorage to store user input and read it use Vue -
to store and pass the data to DOM -

- -

- Day7 (2022/01/25): javascript + Vue create two simple progress bar first -
one could reflect current year progression by getting the Date() second -
one could record personal year Goal also using web storage to record the -
goal and update it in the progress bar -

- -

- Day8 (2022/01/26): Bootstrap + CSS animation using bootstrap spinners + -
CSS animation create something...very strange also using Bootstrap navbar -
and shadow for the top banners -

- -

- Day9 (2022/01/27): a simple todo list from Vue offical website I have -
added a delete all button and a check box in the template of the - -

- -

- Day10 (2022/01/28): - - a simple loop with interval setInterval(myFunction, 1000); -
also created an array to hold the loop - -

- -

- Day11 (2022/01/29): - - follow this tutorial -
using python + Flask create a web app -
create google app engine account and create a test project -
using gcloud to deploy the app to google app engine - -

- -

- Day12 (2022/01/30): - - Get weather info from Open Weather API - - -

- -

- Day13 (2022/01/31): - - Get user current country name, region, IP, and ISP by calling this API -
and get info from JSON file -
Show country flag by this repo - - -

- - -

- Day14 (2022/02/01): - -
Get user input and check if it's a number -
if it's a number -
Then check if it's a prime number -
Also handle if user didn't input anything - -

- - -

- Day15 (2022/02/02): - -
Follow google official tutorial create a cloud database -
The good thing is from the day 11 practice, -
I had already create python3 + flask + google app engine -
, so part of the set up work has been done. - -
BTW: I found two parts weren't mentioned in the tutorial, which are very important: - -
you need to do (or pip install requirements.txt): -
pip install google-cloud-datastore - -
also must follow this page to setup Google authentication: - - -

- -

- Day16 (2022/02/03): - -
Totoally pissed off by Firebase set up -
Just created a simple page with google translate on it - -

- - -

- Day17 (2022/02/04): - -
followed this tutorial -
make a diary website with Django and Python -
tried to deploy it with Heroku with this tutorial , successed but not working, something is wrong -
-
https://pure-plateau-10092.herokuapp.com/ - -

- - -

- Day18 (2022/02/05): - -
used this repo -
finally got python + django + heroku to work -
and then ingerate the other diary project in, feel so good ! - - - -

- Day19 (2022/02/06): - -
used this tutorial -
got flask + python project deployed on heroku -
no issues, just need to remember to add the gunicorn into requirements.txt - - -

- Day20 (2022/02/07): - -
follow heroku official tutorial -
get my first Docker image deployed on heroku -
happy - -
-
-Day21 (2022/02/08): - -
follow official Django tutorial -
create a polls project -
still have issue deploy it with heroku: collectestatic : no input error - - -

- -Day22 (2022/02/09): - -
tired of those heroku deploy issue -
just create a random picture website with https://picsum.photos/ -
add a bit function to let user customize the picture size -
add another bit function to let user undo - -
- -
-Day23 (2022/02/012): - -
C# interface -
C# Event Action -
condition from actions -
interface implemented into multiple objects - -
-
public interface IInteractable -
{ -
void Interact(); -
public event Action Interacted; -
} -
Inside player.cs: -
var interactable = nearestGameObject.GetComponent(); -
if (interactable != null) -
{ -
interactable.Interact(); -
} -
Inside Cube.cs: -
public void Interact() -
{ -
ColorChange(); // let each interactable object deside what to do -
-
Interacted?.Invoke(string); -
} - - -

- -Day24 (2022/02/14): - -
use same code base as mini Spelling -
create a phrase sandbox game, let player construct phrase -
and show the picutre of the phrase -

-Day25 (2022/02/15): - -
Angular with Rainer -
create new app -
create a new component -
create a new router -
one way, two way, structrual data binding - -Day26 (2022/02/16): - -
Angular todo list -
also, to make angular work in Github page -
need change index.html to 404.html -
update base herf if needed -
and add those lines at the top of the html file: -
--- -
permalink: cqpfirstangular/404.html -
--- - -
- -Day27 (2022/02/18): - -
ASP.NET core 6.0 website deploy -
using Azure web service -
using Azure database -
not so existing yet - - - + + + +

Back

+ +

Logs

+ +

+ Day1 (2022/01/19): 在github pages上创建了一个repo; 用aws +
route53申请了一个域名,并且用CNAME record指向git的io页面; +
试着安装Jekyll但是失败了,它的安装前提需要另外四个软件,Ruby, RubyGems, +
GCC, Make,后面两个不知道怎么安装; 随便写了一些JS代码。 +

+ +

+ Day2 (2022/01/20): build a sample Unity project into WEBGL and then +
uploaded to the site; known issue: If I build the webgl version with +
compress, then I need do some setting on the web server site, otherwise, +
the unity content won't load; compare: compressed: 4MB, un compressed: 14 + MB +

+ +

+ Day3 (2022/01/21): Interesing, seems if I add this in to .html file I have +
JQuery ready to use, Goolge is the CDN of JQuery: explored something about +
css position, and with hide/show function in JQuery +

+ +

+ Day4 (2022/01/22): follow React's tutorial, made a Tic Tac Toe game then +
build and deploy the react project to a git repo then download the +
reop...and copy to this main project I am sure this is not the best way to + do it... +

+ +

+ Day5 (2022/01/23): tried a little bit Vue, very powerful JS frontend stuff +
I have tried both the old way and new way to toggle a shape's Color In the +
old way, it has a method inside Vue, to create a toggle function there In +
the new way, it only has one data show: true, there, a bool, apparently +
Then, in the html, it is using v-on:click = "show =!show" to do the basic +
logic and then, it is using a v-if, and a v-else to call different +
components to render them , very cool. Then there is anotherway to change +
color, which is pick up a color and apply to the inline css style, by +
using v-bind: style I think to switch color, the third way is the right +
way, we don't really need to create a component to do color switch also, I +
could embed the -webkit-transition into inline css to have vue's +
transition things...cool beans +

+ +

+ Day6 (2022/01/24): use webstorage to store user input and read it use Vue +
to store and pass the data to DOM +

+ +

+ Day7 (2022/01/25): javascript + Vue create two simple progress bar first +
one could reflect current year progression by getting the Date() second +
one could record personal year Goal also using web storage to record the +
goal and update it in the progress bar +

+ +

+ Day8 (2022/01/26): Bootstrap + CSS animation using bootstrap spinners + +
CSS animation create something...very strange also using Bootstrap navbar +
and shadow for the top banners +

+ +

+ Day9 (2022/01/27): a simple todo list from Vue offical website I have +
added a delete all button and a check box in the template of the + +

+ +

+ Day10 (2022/01/28): + + a simple loop with interval setInterval(myFunction, 1000); +
also created an array to hold the loop + +

+ +

+ Day11 (2022/01/29): + + follow this tutorial +
using python + Flask create a web app +
create google app engine account and create a test project +
using gcloud to deploy the app to google app engine + +

+ +

+ Day12 (2022/01/30): + + Get weather info from Open Weather API + + +

+ +

+ Day13 (2022/01/31): + + Get user current country name, region, IP, and ISP by calling this API +
and get info from JSON file +
Show country flag by this repo + + +

+ + +

+ Day14 (2022/02/01): + +
Get user input and check if it's a number +
if it's a number +
Then check if it's a prime number +
Also handle if user didn't input anything + +

+ + +

+ Day15 (2022/02/02): + +
Follow google official tutorial create a cloud database +
The good thing is from the day 11 practice, +
I had already create python3 + flask + google app engine +
, so part of the set up work has been done. + +
BTW: I found two parts weren't mentioned in the tutorial, which are very important: + +
you need to do (or pip install requirements.txt): +
pip install google-cloud-datastore + +
also must follow this page to setup Google authentication: + + +

+ +

+ Day16 (2022/02/03): + +
Totoally pissed off by Firebase set up +
Just created a simple page with google translate on it + +

+ + +

+ Day17 (2022/02/04): + +
followed this tutorial +
make a diary website with Django and Python +
tried to deploy it with Heroku with this tutorial , successed but not working, something is wrong +
+
https://pure-plateau-10092.herokuapp.com/ + +

+ + +

+ Day18 (2022/02/05): + +
used this repo +
finally got python + django + heroku to work +
and then ingerate the other diary project in, feel so good ! + + + +

+ Day19 (2022/02/06): + +
used this tutorial +
got flask + python project deployed on heroku +
no issues, just need to remember to add the gunicorn into requirements.txt + + +

+ Day20 (2022/02/07): + +
follow heroku official tutorial +
get my first Docker image deployed on heroku +
happy + +
+
+Day21 (2022/02/08): + +
follow official Django tutorial +
create a polls project +
still have issue deploy it with heroku: collectestatic : no input error + + +

+ +Day22 (2022/02/09): + +
tired of those heroku deploy issue +
just create a random picture website with https://picsum.photos/ +
add a bit function to let user customize the picture size +
add another bit function to let user undo + +
+ +
+Day23 (2022/02/012): + +
C# interface +
C# Event Action +
condition from actions +
interface implemented into multiple objects + +
+
public interface IInteractable +
{ +
void Interact(); +
public event Action Interacted; +
} +
Inside player.cs: +
var interactable = nearestGameObject.GetComponent(); +
if (interactable != null) +
{ +
interactable.Interact(); +
} +
Inside Cube.cs: +
public void Interact() +
{ +
ColorChange(); // let each interactable object deside what to do +
+
Interacted?.Invoke(string); +
} + + +

+ +Day24 (2022/02/14): + +
use same code base as mini Spelling +
create a phrase sandbox game, let player construct phrase +
and show the picutre of the phrase +

+Day25 (2022/02/15): + +
Angular with Rainer +
create new app +
create a new component +
create a new router +
one way, two way, structrual data binding + +Day26 (2022/02/16): + +
Angular todo list +
also, to make angular work in Github page +
need change index.html to 404.html +
update base herf if needed +
and add those lines at the top of the html file: +
--- +
permalink: cqpfirstangular/404.html +
--- + +
+ +Day27 (2022/02/18): + +
ASP.NET core 6.0 website deploy +
using Azure web service +
using Azure database +
not so existing yet + + + diff --git a/python_json_and_others.html b/learn/python_json_and_others.html similarity index 94% rename from python_json_and_others.html rename to learn/python_json_and_others.html index 1772386..423bb88 100644 --- a/python_json_and_others.html +++ b/learn/python_json_and_others.html @@ -1,48 +1,48 @@ - - - - day10 javascript loop and async - - -

Back

- -

Learn some Python

- - -
- - Create a Json file by Python: - -
-            
-                import json
-                data = {
-                    "name": "cqp",
-                    "age": 38,
-                    "city": "Sydney"
-                }
-                with open("data.json", "w") as write_file:
-                    json.dump(data, write_file)
-            
-
-    
- -
- - Read a Json file by Python: - -
-            
-                import json
-                with open ("data.json", "r") as read_file:
-                    data = json.load(read_file)
-                    print(data)
-            
-
-    
- - - - - - + + + + day10 javascript loop and async + + +

Back

+ +

Learn some Python

+ + +
+ + Create a Json file by Python: + +
+            
+                import json
+                data = {
+                    "name": "cqp",
+                    "age": 38,
+                    "city": "Sydney"
+                }
+                with open("data.json", "w") as write_file:
+                    json.dump(data, write_file)
+            
+
+    
+ +
+ + Read a Json file by Python: + +
+            
+                import json
+                with open ("data.json", "r") as read_file:
+                    data = json.load(read_file)
+                    print(data)
+            
+
+    
+ + + + + + diff --git a/swim.html b/learn/swim.html similarity index 93% rename from swim.html rename to learn/swim.html index 30a442b..c1d9dab 100644 --- a/swim.html +++ b/learn/swim.html @@ -1,20 +1,20 @@ - - - -

Back

- -

Swim 2022 Progress

- - -
- - - -
- - - - - + + + +

Back

+ +

Swim 2022 Progress

+ + +
+ + + +
+ + + + + diff --git a/script.js b/script.js new file mode 100644 index 0000000..d8b3b40 --- /dev/null +++ b/script.js @@ -0,0 +1,100 @@ +// Navigation functionality +const navVideos = document.getElementById('nav-videos'); +const navArticles = document.getElementById('nav-articles'); +const navDemos = document.getElementById('nav-demos'); +const navAbout = document.getElementById('nav-about'); +const siteTitle = document.getElementById('site-title'); +const videosSection = document.getElementById('videos'); +const articlesSection = document.getElementById('articles'); +const demosSection = document.getElementById('demos'); +const aboutSection = document.getElementById('about'); +const loadMoreButton = document.getElementById('load-more-videos'); + +navVideos.addEventListener('click', (e) => { + e.preventDefault(); + showSection('videos'); +}); + +navArticles.addEventListener('click', (e) => { + e.preventDefault(); + showSection('articles'); +}); + +navDemos.addEventListener('click', (e) => { + e.preventDefault(); + showSection('demos'); +}); + +navAbout.addEventListener('click', (e) => { + e.preventDefault(); + showSection('about'); +}); + +siteTitle.addEventListener('click', () => { + showSection('all'); +}); + +function showSection(section) { + videosSection.style.display = (section === 'videos' || section === 'all') ? 'block' : 'none'; + articlesSection.style.display = (section === 'articles' || section === 'all') ? 'block' : 'none'; + demosSection.style.display = (section === 'demos' || section === 'all') ? 'block' : 'none'; + aboutSection.style.display = (section === 'about' || section === 'all') ? 'block' : 'none'; +} + +// Search functionality +const searchInput = document.getElementById('search'); + +searchInput.addEventListener('input', () => { + const query = searchInput.value.toLowerCase(); + filterContent(query); +}); + +function filterContent(query) { + const allContent = document.querySelectorAll('.video, .article, .demo'); + + allContent.forEach(content => { + const title = content.querySelector('h3').textContent.toLowerCase(); + if (title.includes(query)) { + content.style.display = ''; + } else { + content.style.display = 'none'; + } + }); +} + +// Load more videos functionality +let currentVideoIndex = 0; +const videosPerPage = 3; // Number of videos to show per load +const videoContainer = document.getElementById('video-container'); + +const videoData = [ + // Example data, replace with your actual video data + { title: 'Shooting feeling - Doom Eternal - Hit Marker', src: 'https://www.youtube.com/embed/ezL6b_VbOQY' }, + { title: 'Shooting feeling - Doom Eternal - Body Explode VFX', src: 'https://www.youtube.com/embed/HqsFsx9Kzpo' }, + { title: 'Shooting feeling - Doom Eternal - Hit Reaction', src: 'https://www.youtube.com/embed/oO1S7AixjKM' }, + // Add more video data here... +]; + +function loadVideos() { + for (let i = 0; i < videosPerPage && currentVideoIndex < videoData.length; i++, currentVideoIndex++) { + const video = videoData[currentVideoIndex]; + const videoElement = document.createElement('div'); + videoElement.className = 'video'; + videoElement.innerHTML = ` +

${video.title}

+ + `; + videoContainer.appendChild(videoElement); + } + + if (currentVideoIndex >= videoData.length) { + loadMoreButton.style.display = 'none'; + } else { + loadMoreButton.style.display = 'block'; + } +} + +loadMoreButton.addEventListener('click', loadVideos); + +// Load initial set of videos +loadVideos(); diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..078957d --- /dev/null +++ b/styles.css @@ -0,0 +1,96 @@ +body { + font-family: Arial, sans-serif; + margin: 0; + padding: 0; + background-color: #f0f0f0; +} + +header { + background-color: #333; + color: #fff; + padding: 20px; + text-align: center; +} + +header h1 { + cursor: pointer; +} + +nav { + margin-top: 10px; +} + +nav ul { + list-style-type: none; + padding: 0; +} + +nav ul li { + display: inline; + margin-right: 20px; +} + +nav ul li a { + color: #fff; + text-decoration: none; + font-size: 1.2em; +} + +header input { + width: 80%; + padding: 10px; + margin-top: 10px; + font-size: 1em; +} + +.container { + max-width: 1000px; + margin: auto; + padding: 20px; + background-color: #fff; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +.category { + margin-bottom: 40px; +} + +.category h2 { + font-size: 2em; + margin-bottom: 20px; +} + +.video, .article, .demo { + margin-bottom: 20px; +} + +.video h3, .article h3, .demo h3 { + font-size: 1.5em; + margin-bottom: 10px; +} + +#load-more-videos { + display: block; + margin: 20px auto; + padding: 10px 20px; + font-size: 1em; + cursor: pointer; +} + +#about p { + font-size: 1.2em; +} + +#about a { + margin-right: 10px; +} + +@media (max-width: 600px) { + .video iframe, .article iframe, .demo iframe { + height: 200px; + } + + header input { + width: 95%; + } +}