From ab366351a7ed513b993b30bece1e94e4341aa64b Mon Sep 17 00:00:00 2001 From: Palash Mondal Date: Tue, 7 Nov 2017 19:12:13 +0530 Subject: [PATCH 01/22] Update README.md --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 667667c..02a95f5 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # JavaScript30 -> Course created by [Wes Bos](https://github.com/wesbos) - +> Course created by [Wes Bos](https://github.com/wesbos) > Join the challenge (for free!) here - [JavaScript30](https://javascript30.com/account) Hi there! @@ -114,7 +113,6 @@ Tested all new buttons. Data is also persisting on page reload:- ### Day 21: 24 Jan 2017 **Thoughts:** Worked on Device Orientation using Chrome sensors devtools. Also learned about Geolocation & Orientation Api. Unlike desktops, mobile devices commonly use GPS hardware to detect location. [Tweet Link Here 🐦](https://twitter.com/palashv2/status/823919145557299200) - ### Day 22: 29 Jan 2017 **Thoughts:** Learned about `Element.getBoundingClientRect()` method and worked on some css effects [Tweet Link Here 🐦](https://twitter.com/palashv2/status/825757066669076480) @@ -149,4 +147,5 @@ Tested all new buttons. Data is also persisting on page reload:- **Thoughts:** Finally finished #JavaScript30 Day 30 Whack A Mole 🔨 challenge. It was fun learning experience. Highly recommend the entire course. - +## Note +If you like this repo and find it useful, please consider ★ starring it (on top right of the page). Thanks! From 1e9ad8c29e2f1870e2f75521f8e9bbaf41e67962 Mon Sep 17 00:00:00 2001 From: Palash Mondal Date: Tue, 14 Nov 2017 20:58:42 +0530 Subject: [PATCH 02/22] Update README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 02a95f5..afbe50e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ # JavaScript30 +> Course created by [Wes Bos](https://github.com/wesbos). Join the challenge (for free!) here - [JavaScript30](https://javascript30.com/account) -> Course created by [Wes Bos](https://github.com/wesbos) -> Join the challenge (for free!) here - [JavaScript30](https://javascript30.com/account) +

+ JavaScript30 +

Hi there! From ed3fdadda69857cd4c7df49f8dfc8728bab86c75 Mon Sep 17 00:00:00 2001 From: Palash Mondal Date: Sun, 15 Jul 2018 18:12:50 +0530 Subject: [PATCH 03/22] Play some auto drum notes --- .../Day 01 - JavaScript Drum Kit/index.html | 173 ++++++++++++++---- .../sounds/closedhat.wav | Bin 0 -> 13032 bytes .../sounds/tinkbell.wav | Bin 0 -> 14284 bytes .../Day 01 - JavaScript Drum Kit/style.css | 50 +++-- 4 files changed, 170 insertions(+), 53 deletions(-) create mode 100644 Challenges/Day 01 - JavaScript Drum Kit/sounds/closedhat.wav create mode 100644 Challenges/Day 01 - JavaScript Drum Kit/sounds/tinkbell.wav diff --git a/Challenges/Day 01 - JavaScript Drum Kit/index.html b/Challenges/Day 01 - JavaScript Drum Kit/index.html index 9176ae7..19d72c6 100644 --- a/Challenges/Day 01 - JavaScript Drum Kit/index.html +++ b/Challenges/Day 01 - JavaScript Drum Kit/index.html @@ -1,10 +1,12 @@ + JS Drum Kit + @@ -47,51 +49,148 @@ + + - + - - - + + + + diff --git a/Challenges/Day 01 - JavaScript Drum Kit/sounds/closedhat.wav b/Challenges/Day 01 - JavaScript Drum Kit/sounds/closedhat.wav new file mode 100644 index 0000000000000000000000000000000000000000..2320db510273370fdd6c89bcf279fcb31f881a63 GIT binary patch literal 13032 zcmXwf1y~i^_x7Hd(@8f1Dj+I~3fL|7HL$zAc3$He_Zrvk?!XQd0TD$+kx-BjK?J3{ zIUO@+X8#xdzVDgmIA``=@ve8p%p43IGje2EPlRR+ogT7$?O&c&2q6NIXhb+dR*@v) zAuF_W(O-+=L8bv;!nSB1azwlE7V0LoOz=yv!7$T&m6aNgTfK1TQk7US*kOPbjUS1x zm}hDZOVSnl%*f=%YvMW4-OW#A3Rw_CVKZ%Ge8it46q;w5Q#qC8A7Trc%FbX9a1QvO zae|>mW-p~p?eSv6{FbBE*B$G#BC;=dEmd5YyynlHPfB8wUe3JK=qu}#zzii%_*`qZ z$HCQiT;t2i@%H_l))Xj<|Eyb3G~b$Mb4A@^vMYF-^^aGU+iv3#zWdMSjMjlq`gNlRPJx^EK#%BKiwbq z)4jj`u-~RpJ7QvAeZC&p*?D;5JVkl+s*iof-&r)}m)oy<){kVAGTU0pzNTccOjtG$dwEJK+ ztZMY72CeyzGQZ5Vep`AO@*=jod)n;nmc!0 z-6!_*)U*TLK6>=iK9IJwY|pRtoYm{^pF!CNJ@UM75UXEPdGG8~}^&T^7xKPtgHYnfbovbqxtjL*_;pwDsykA>bbIi8DVSNR^aNGRt z%SGp$!+wki^ITF{V|}xBN$ko${@e89=FZbI2BZer=0#T&JC>3Eb$An8P+C?T#>ov6 zeO7nrRJ*KYz3`k_;a1rB{QIwOpZ2hA|EP7M)Ya(!<7d#-DI?Qgyy`Z1;2#g-;-bnz zdXFZwo?|0vl<$+Ni zNfo`hOhLQGA63iH2r{EsjXyWdCra5E9xOVK|Dcm z+)biD_g_N)|`p;_jqxyCQj<&CY{~8 zsPK>XJM9bGrB;X3zH14s9N-z)`SF|37?*JggPMyMn646zH6hl`zPEF{l85$W{NGFR z+(u(OD!L$^{wMY?#|78zR_S4&~bx$N7V)0Ro-ON{-0+?Th{!49wi^| z)#W>iwEab|yhT-?a@UFONxfP|YhqZYX~wMnE2DC1zjyMx&>=U!UD3vV!GXT9t;u6T z7Y6-kp6VRO*5uyyT{NL{{MOq$C%&DPR8vxaT$m#9ukg-y4AD*~O>z0;GjwYoQROAg zSeHWzuW#y--7YM(qQ~%%FJtm{4Q#aFYpM9ntt1CMw{olvc$0)}>8+!KBgI`HO z9h`eLmDqGBt&LqdIC(Z5uDlo4byoZ7*h&7HOEH}FEcTkpxk@IN-p_k0&X)xdH|Z;) zJclnoGLviOJo~dp#OYUY{a*WqW*KYKZ3;AhI|K)Y7UZRz_utm@e7&vuwdI>?Zu{WQ z?`p=^9~T`agnU2A2+=2jy?T{?KRrhi*6xhg9BmA9v2xH)TIwQqqWw%CoLby=ecqS; zv|p=Fw79N|@B4T6^*vJic>n5AtW~~{x|DP&*SSx&QxbalaZ?ZVCBBc)Um7e=tbAWp zX*E@Hsc2s9G&ya2>bk6#UD~X-yF6++s+p@ASr#3g?>0lt=!9hFiy0M_lRY z?Yp#mozcK=S2w)p>B+LNtEcg#`(wvuJ*ZgYc$KZT`?u@tIz!Pd^0-jhbg*`^qNDtY zF`5}*9V@QphATSdT};|G>c-gT1*tVhiLll_)*alwQ`z_+suqkYwl2Ku(bsXMIY^pi zQda7F_>Z0*J>s#^zo4^q#><@Ez5ehmDGpTi6?WE5rtQT;Y3G&&vi`Pz(nHO+(JC&@ z*4bgX!NDA3Jf*L&4v`^As?&q~pP$Ef+R#1p{r!aO&g(srw8Mynim&{;<^pb^+ZdO5 z<$}6kTa&1N<3mG)z|A~MB(Xij--Sn8;>f91GelXOzwBkpuJSm0Pmj!+qEd%mk%3)G zAJ#dxo1*B!@9(m@@?h>rH(h(m5TRR+IO>%;sG-L5ymzeXtY)+zoqA`ZvYt@=w`Pci zC?D3ZVCI)6M=uVWSG%P0;jCxRXK|yI>36HgxXfW2MZTU2?7z zMiq}(oLOJ;R77aIVLSOHNitQMXH&G^r`UE2`sUo%Fuio0?~8t^*#kbk>J;VEz2r=t z1tqG6bXelw)mUc==glPkBE|>~HKx^`RyfMbR0DLMJfa<+>obJM8UnxX?G-X&(i8c^ z?jZ+y{atjHS;#Y$ZfSoeWJSiB$YK36CX9dLb1Q1PFf={qWJSK+H2&U}8sj#%^A5Ge z@*1u5PeRSTq_(+EbIYvwQMJgmgJV%kt!9_=MW+V^(S^MS^a=c4TB|*xDKFm8{y)FP z*jHFr{;(k1XTM)_gR-fvmuJsGg#)X@`6fd*`Z2lI`j&KJ<7I6*HQL-;ctHNtim$xT zFtv3-`yNi48!Fk0M7uhbYv2m$w{Oj^5 zmYFS0?QRD4iK)6}x4zr9u@^Vr?cMi*dza!e(=(e$^CM<~@|1inrnUQtR^bP_$g)Pv z(-95b#9L*}WFc?ikF7tB*mV-$C&Cq7sh8%!W_NRg(Yrd>CpGAO`LkbE$^vV#?sZG3 z?EtrZdELG=_L|M~i}g_VtVOcKUU-<^W%(tFX>@Yb1{10Q~{u28Betit`aJFbru4v^s6S zyQI1#Mq(kB8ha6sY+vz?IazhTmbowf_MnguQ`+9lvB9NX{{8x^Vw~e?JhY}gI>nAE zx!x{xfaUATHx(m>PSGSC`?%b%zWtawxw_I~Ft!+F+Rv_EI=Hn=s@dtG?s6%ecz1Vv z>$E%9nr~RfW%X?+sA}Epy~L)VptSM2^)_yF!$IS&z7xBQ%&M#Rriw}%g{3~n_3;Hm zoxTU}bb!^*rt(atUxS|r@Amd$z1lH?v=y*c0206*4|Vkh)>gJ2{XSRcU!-k z=vu>lujmpK#4CGMV)QxC@n{v-xZIg%6<-shjY0vcLE;3*ppwem^PSAT)9RwNg}k0R zsnsd3edYAG3tgjwo@JlPI^^-(Wl^zHWv})L&VH5mo2|PK^*a0Og!YnbUvm<5-p4EB z$s@tk%GI~SN8fusCw%&(*P@IL0eLniQ!kg{<7Upkr}-oj=w_B}^(^s!UM4KM<9g90qNYpZVxKCvBURa^ z5iQC*V^^yo!+)I0n(o`N^PZB+r9(TpbzEBfZ|yZ%Py7J?EpBIBEZNeiFs#?5)~vD7 zJN@Jaa-=@km}U~`7UO1ACz~X3Hu147Zw&p3+b=s`nwMo7IAB!N+u?~<18%$BZDfRl znlF5DKz| z#cu5ncU+;5wnQz6E>SzC;l8ZZYAtykCrh+egDL_`YCUJW z-)R`GA1D`bXXQ$d%@v8?54vCKaIRu-`CWG_ms^G?Hk&sB9oIDLFXN?*CtJ?8C{&8} zt?M*f1fgg(@2BX1e3ta1ISR`(_nVV6Gc~j2N5w(95XMCoN!T0T3dk0^(65tg--yiD zN&g1F>$4>FPR1}lvCAdh7J<8Pi+Pkjk~pt9R?|fpYIn?NF%IK;F@N#*i)Jz}jMEio zZ9{9HS6I4={OAAFRT><%!t<6o#YN+Z+B&hFqfJvp*_-Q}uNLGi8f;|foad(D=H?XK0fm-HiX ziXu>Wyk(*>S+WOfdF`zt%^?~U|Exq{e5X%n-q>6z8OU$Y8@REkRrABWPgmQ_tEsDl z%err`DAp;60gWoD(!;$)RI=CZpAJPiYm@!^Jsx!M+wcOyMX&s?wZAFCG0uu#dqA~Q zIhFh(+3aX-*scoYzvBnU^As1FhO|nt&g4ox=1-Pv5|1SksAx+V+e4qCn&)-715>1` z_}aeNwljUwdTfn0%e_l(|3fLO5>5r|=z1o5Zqa`0Oy;dqUDx+zpMTW5C%Yx79O(AO z)`qQC-CbO&l_g)>E4{tT9#uYZKVxrdC^Fh%O4TCwbcrcn`ODVjjbmBWhL$M#1g3|} z=zu4`6kogptOs04Xnym)e`e5|^mT=^9rdFRhw?($PW;MN#dZvrF+w3{Fp-=5H>pgN-JD-#3gR84LUF@Bc^5p%&e(Qs7eqC59 z>0l#YW*TiIkztBFYgf^RkTXDQFp(-)@f0@$Xb5GKq)3UGETNxzpOb+ zG2d>L+OcJ?%~HF!b&u=o>!Y>H_;w4!z8` z*=d4rXtLm`Twbjzd#$XK>PU^~j`o7OLco&iY)wvcS{+)A$|v##_1P_}t!08u1Z%aR zLHDbV*F(Pt)xxTGwp(rHH1uq~FW)1IV!skX>q14Pp_~~@BwAGLXtbFyAQwZlZmRuV zdvSSe^%BRS(oWib{96ra-#7Q%HMlaJ(ywqD8q$Yn&jLVI7 zTN)2GU$P!AdrUJ#gptv>b1&I|FA?~3fnj`V-T0?}jD(k2__TG0;F5q`d24@PwN>yVEd=g zv^75So#!<_!(EZKDN*6%xvGfzdf3mQD_P~$ND6k-wTgaD*P6l`lDI?668iJKRTd#OgJ?BgAl_*au~?t0WegOjoJ<$lYL$ z6K+%r{>8cT=I|CE4Uw$+OSMEef_yG%vD%}PX~yxs^8ySz_4P7|G>BX!IH`N0-H7H` z8kODb%#F@X;mSVJvsxt+PrWd+;<Qmd1hUahd&o?dTREeu2XT zv-zF4D0Eq(6sq~lWa|3swKQKqM9TtfK4~QCE7l*aWHoh-mxUCglxdypS_jpPR&sXH ztw$Tn<-XQy)DxR0d8T)u%I8+jQ}h?3#)B87ZslmGHhH=L+ZC>JYQP2=dVE-_A1n$?EWY*!UhHoBzLu*DAEjh!ZCU(MsS%a(cY z`?wBoloYrGmJdN$?%8#=63J|}A9GIpgPY3lYjsXNq#;4kY?Z>r;&^r$x5~W1NC_4T zHZnELVxfbeiD~Bcqa4c-Vk`fNv8zrecqnEU&YrC8P_fH?r(N$> zC!MqKKdcnjEB`WO=|lKg{0)Xn#`lyK=a`RUYx8VXmeUQ70WEi$uwuS)R>QJJwdf4r z%fJ||WJe`O_3MpBQKZn&JiIkqRwVjGf8;g@Pw`7sM>S^IGBGmP(Hm`7C?0EhthZUv zdQ%WDdu+)t`B}E32h2`gzEg3#o7KYFnf!~KikvFi&i18qg(t-8Ene(f>I<=*WcYJi zJ2j6KI|zRo|6v+=cQ7KoMWg7GI#Sl&`a$)V%GI`g6gFs`NN4(@X%Y93+v}Tk--)OA zo(17`rb&9EQmc$NhFXM(F{{W~qP4^)CQ>j_aaBF6A5CWwW+TC zR2^YkYV}g*M&IW3z*p&CoUhbZ@WZm4SIu2A9F}yn-Cwt)BHnqkOK@F9laC^d_l$qQ z>adoYki>0Buq^5j{z14}92Myco zvHhWzQ5plahfZm-H$(fo6~ zt*Q~K8}{98Z4958I?)DdgsCStl=QLqGKh#}1B?aabCHXwrzYBNlv6+LHQgY=H0rkb zhb5S-WJik3QVq?TdkCKhUNGTYk$#+pk@l1w)}J(O;{U+m)FMeBJX^_a2H4kVPH2SPc5%Jw{+696(X7_SN?es*xiwEc60Kmh zP z)+A#M5vEt98PDh9P$W}h&J|~ip1`k%oW|0eE_d;i#d^pUC^ufCwo$W6HcuL? z9;Q1epDZNVLjGj>Z}noER;SFSON}Lh#k_ynp?I)ph|tkMo1%#VOAbj1*PtRxHm{d> zfbOd*T$&^+QoCrE^1}#sw2V3p@BQ1k)yTs2W}`R>TFQD`CbH@5adaA=GCG-OQ8gSz zJQoZwch&~Wr`b@NgDqPfNT;THar00roLz06W2qO{2)5IAIA@|4dxrQ)J*7Du2bnlH51WCjv;<%uierCKcsuiaiE}1%WLVB=Zn^#QBy;eAe<0eHdLt^|%;4H5BLtWG1S!+-C3a?ol$l7u_V^5Zjn!i-inBMd&-# zgRU{I6y^zaMj_qI-ZbkZV#R*#C+%d>d!C5*T4XT)Xc~ZzLWcOHF1;>TAh%00u-AY%m3z=Q40u7=a47Ai< zX|H~$s+9H>FXtwbT6~#J#$Qnhd6`^j`E2>cPvSKYanwx9TX=W8ZmJUW5G~QS(^tyR zNgtqD{9SaADH|`r2C{+bXntU-78v>U+k#QEL3zC>cY_=tjna;K_Il@(9 zh4!6hsnsp{0s1OhjQ=&CrdGqfr?)OZa8g*I=Naq;!PFdHH_=67hW@)?x1dmOG%9&Z z@M!Xo@CD;;yusIqqqR(HnB=<5U#n4<%5Ta2^luDrgnb1Ssvylu85RxJSxh>Cf(WO> z(Lw%GZWM2^?2dX#V}Hdrt2e3u^#VzPpxP2bPNjqNw$dN+ImW}rD&A&lhH<}n2j7hP zlRlzdx{a;Lia4va`XPpy;%&nIx;@|3um8Zr8iHt3}WbrYvRCnGG2v3$JL|^ezgOzHy^oCO0^1bndvWFr?Kh3;U zXhn@{0>3!X8nO`iNo!mf;h?t;1y=}exvf`43SG^!1Wl1Y-@<`>K(l*slY zGpQ8L6>l{kG#%%Oc_-)`hKD<`6L?d3*<>rv!4z!RB8`)dG7L7A^W#YuI)}Z_ouGH3 zsnjE^wnS6+1oQRRwc{iOqBwRxaf_AG2dUA5H6}Wp{7z}skn#OjV@$P2?c^EQy9&cY!L?O zADBu0a&9`cS(2_>+?pc4tK4b6NPpxPQN{Q)Ihi?Uo=XK&!_au5j+L|Cy!E^e#;2z5 zY`s}2d?B_l20CBVPh3Iwv6Kql^V+e=$l0>Tw1?1B!|5jD7XDMgIog9BN3EqEn3tPF z1Sk0e=?G@DAcxAteW@wzP5Ls=PQcJ!%y!&?JB98N3Ct&2!t>;9r@JtP6iZBCb8s(0 z$Zepi1dB~S^>+k!gpbT)&C{jdBuP3qQxRIpJRmO#6ZH0)MUqxYBWvK21xp1shOVYg z)JIOo33!vt*;+yS-$u48l$qe!_ zbHU=ou3=7*AIJk_3F*r5@j|9I-I01l#^EHi6`jF{&{m=hTVZQ%Gv2_=Gh2Apf;r|t z%o8X#vIe~+22w|<2s({c@hns)x`i1-e!&W}z2yQi&oYwVO?pI~+_ca3p55Hmhni|W zgS#=qh!fl)W1c+Rc9U+VCS7b1f7J7g8~G2&Z>$Q9u)H+)jnrv6~rWSwqRlPUsHNf$|}f*>vnfD^1&|Gt?Y- zhIAl?<}Ua9l_ODNXUuJOcaw$Y($r^ z9?geQ(Fgkw16U*7#5*Ghhvy4tzKlQ496C_)d2HgGW(L>kFg>;X2D+s|EsDLbCa z`+p|G9l1b#v72afa(|34Dyu+4ttQ~O;pFVUsPh zs9b6rzJ}KmrwM1S59fd~@OZ>WY2+qqF0-F`K^#U~pk}Wi4|EEfv58nm_~TG?l$~zT zko~Cwb|Y7be{wbiCN!3n7CD(r48u7%5Iw-(h+xv6ear5{LT(A6fm!#>&Q-hGGgCxd%8C zEo3E@|ESKqV#dkxk%&fX(H^1ar;2P0PG>fCTgE*c$fl1U3$8x9OSMZ^byEoVw9pZesaC8}U z#k+6}9tbgPM>_6Lcm_K~3}Q`|LgF0Z$Hj0fQ8?~|UPIO|VNY%{cLOuu@L3raITrl!Q=27?22CC-k67Wq3c{%&JImPFSv75eMQkoIi1ZxWJv@HX(m_etC=4 z+%e9K8N3`%!5&D7rr~usnLEXuM1#-}^b!T&H0}}7p>OP6b{L^SY209}L_6_K+!5{J z2zXaNfM(;3_&DI6f3A`9T17AnsSt|#Z;UMgRr{S@9 zJ?@E9&@YtAm2uOM20XXmLN0{6h;oqtmvek1Kr8SBTnFQDK6b~}XgQk3Hd^izn~A~P zBhG^0Nf-yAEfAkSdH}pKtShR<2>GB^E+1yha-`y>;?4L67ld9QKQ0<(*g&EH?lqf` zAIjo9A>aK0$$f~w0Qh@}YPhr9QY`!%aa;P(IB4Z@3&Pr4?$V23K?0 z+!E9ieZyjO2mc40U583f!N>3+JPL;ZHyxoGt^l4?E&@G7^&Af>?F(+;?64akIRVmQ z&>oNX;13XCByNOCafDh)#9I6lN8=)}H4&!4JjBN&NX^9`@guO|h3v4A6C)NTQ7PvN zowWd8!4~MM3xMlyt`|2Oa3w;u_QM38gJvOX+zao6Tm=9JJt2F?@htov=1&p#o_mXL zLySXkJIG%Zc0k!U0z8{A4{Cilb^#2B@k!__f7BgKhsyp8UOe$|=)NI7vU zi;}o>=&!yoOXfqJzri~pGb4blaKL7dT#*;{!oPr@91ecZLtmlGKH}4OFt$MhkT2wC zA6|(wVXn-?%kXYI8B38ZipL4~HB6A1coNGY_8);Y zJ@=RkL_JVPm?Zx|jYk0^b09`F@aqWm#Dm&e4&K9{qn1HlZDEd$gq7V8VJ-CeVz3?y zGo%{gdH{8`5O`k&li!TJQ3IFE?LiyC-#F-}pLh$@{v7bL4x(xV^iOd-RM2zi)_8mh zGPeY>Yrt~EL9LucyO9EL+M>6xQ-pnSKBt9gup4Hw8vJerULx@=(0>K~-$9QLgR0NK z=K+f=5~Ax+H5WnVA!K1K9tl(8Ie2-9n*rH=h$j`NL#9Rm$Au8pa+n!=VNZ**AlC<= zFa86JRe*6d-Uhi?3v2{K++E=}Xg4$kqHIIF13uUBCR_~l32)s{Z;?>d825phlM3Cj z5g0Q=qN;90_%tIL8!@a@H-y- zXTX26I}15`2a-mp`9+Y^dw3}x19vG67fbL7M z@(n8R3CPEQmHQy^2=uQ5w{7dM!A36RW*_kW4f>~Tp0=@)2r)&&IT}2{FTbF3AJ}^U z7A}HR99-W7tt`m!X~_O3SUm}Pk0F-3kcCem`xN5If|Yx)_6Y3m06*!!aTGw+orbv6 z!An~YeFTM;xueEfg$w$;sXsDZZlB0(k#&SAhq0_Z*lywAbHBVZ!ucgIHqFFD}l5a5ajzu{2% z5fEW4F#8%T#{Q1=IMiV#Shx)JTmg(m1H13RPdG$!5Axr}b0Wxo28^+w{SG9u;0S|= zvOw=4#F7PjF`$zTOuYp3ZIL_&Ja53uGq6&L>%sm>sONk@a{%%j4_f!3UhY7xe1p72 z{myBd?o;3(9(;s@L?uj=FyJp9qHW_f4)&kHIR`wpA* zs3Re&%OI5q5!{6Jq~Dx<24-)9<~Lyc668A z!nb75I}g`UaNGgbenHd^;on^Fe;uqp13seRs;%M@plaIY!(*`i4NzTys55})+i*?* z#K{m(8d!M%QNR4nM_c@DPa4G_(Z=gnuyYIY)YeDvB#cWzKN48Z0J*l#&IBuA@T~+Q ze*rt+;QBRSPX(E1KvoD6ZFOA)I}yN4$?rZ%01jgSPg{Q5CgH2!JiZ02nXvN~kSD_D zEil*C_wk@v3KrUC$xlEO4o6#E#{#17pxHKY+w%Mpu2Z3E-@r;57=BfweS{dZX4}c*XR^EWewz_!&apl9eNVsmp5f75Nzx_Rd^B0gygw_A$ y;eWVa{^sco@Y8mk00;|V7tFy;kEwF3?DOzV)u`F9kS$a#-TN%cm);%RQ9O+Pz#mxqq;9RrY_# zepR#7BeQe(hI$VgB($w`80WW`rUi*tLgn}jcT@BdBEm5JU4i-r|OjZvA4`O z-yCeI)6rF_%?cK*CQBoJ=$?&_bZB$m(n@{j($XVQY5%?K6V<5Wgxbqn*Rd5^)5$?a zHY7Oz{`LB|hF@Dg`{dfuEkbwSDYo)LWh~F+a;J}8Hw)h7TZ`}KlzXl8>McLlRL?y2 zHBT{#u^x#Y%xRR*V9U{psA{c!uUDT}Ykc6_I$!l;9pVF$Ys?`1)k{ifu~XuR_aTYK zHzx`gr9Q7WDAGBob0Ia|LwNh67gS3>3t1kK=U48OtsRZ)?1xJo zqq2LAbBJ}VT{ELDb-VAL(>9`8bb~pqwRKqJ>EP`(6PhG;`eB|f|F7~}(NyP;4$VSe zH9S};**fP}qRZ z#hIeM&S_3WmF3|5scroFgx603a|Wc%jW2w&h!(c}lwPH!d^k+j(nw z<(#sQ<@)bYpVG=Ia+lhpJYIM<{ofW(XI`3HuSUL3_R*XzKKtdH@2?W3<}6L`nza4n_mu2}sNBq~VP8AOk4a7V z6l6P8_RZfX*x7q*px!y(?Ra31ptHXvw`^ly&dvVb`tydL3sQm|XX-b3H46Bj?|c6x ztrI#9>D1_t=d~l6Uh?YXmmE@Br=9=FT2cDRPNHM3tTM~*q% zY5$Pz)h33j$YnXB>Go#)@BJqgcqi6wMu#YQHC#h`HS&uZ?`;YC*Z*Tc^+p-3ch@Xz zpz#!a2l7b|V)#b1h7qc%nizkUp5taxLAax`8;T5ant)AJE~>WTo_i+I=D+#+xLCKYo<3i7St|uRE<{kT!UOfKQ?!1ceeYnVar+% z=~=&xz3ZXYn|l5o^r_wyXM8$P*F)3Aq;X}65q(|=P@YRb39d?@F(j{bD z=#;uqO-48HY(6BabC3QV_x!%9W6*%|rb{}Xs~g;8UE?cl4@IW7D+sz&ceW?*`!b*) zq;WuL&HjF+)dx0?Z5b1NuHUX2?IM^5^Nwp&t9eL=I=^?Rzo7M*V3)8B;l_wj;XRvv zHq`gXuGm^0Z+uYJ&f45^wYWv$tnxO62b|V8T&$5A9^&5JzpuDiT+Q>`J}Hx}{n;=x zvbf~u;*#%$-Z?{lTueWabR#P|B{yg8k8fG4Q}r2>zDIo8^S1P5;=N%HJ6!(!#QWOI zN8PUOc)je--5;O6c1^zg`TF~|&(q_-J{RBKeKP2U`cBTn(^qyp?0+#P@t@c!`9Cuc z$c3#)Ux={x7;p54_4w5@f?y5)|AE*l(o zI`8)l46IS7cY|(qe`~rpz$4TpFsw#-P0!!f1UQ7Q@*3qA8j>ISEJD+&Nwb3;&P04~ zGpXT@mbDsfZ8It&r`4gRz1!cbzpvHW;FjT=g8XZ{L9>fPeuV#9%i*{9I)xE+gWrU^ zxY#|z4StTJ9Ba6kT^_poc)9hwxm;W*+FZ)YcOqOTr z!;)UPapVDWWeZSw1DTs;jpc1t!Vhcw<=C-rk{_&0;9q=9`11TE5;OefMXHaMZVYIl&eupe$9}O`Mo&D3QzX{8W2ngF1=@!(z zPW9>^YxVcd4xZ{->^aKwUbTV#ej%lPD?|2I=W1ouPivaoq*nXs4I8%JQqQ4T-O#KC z8P$_(&#UHGeTH|w-$}ob!Mg%z%`-ligC2Oe`xN^s)w_7t4Q%S@e*Xn={hNn&s1P@JJ%YMt8l05|`)57xmnm^SW+y{C)x_tJy zqe{`biJ@YTN>Z^b=SGJ7Bj($&+=dx1^S@=!DfIc-rn0c)Uu%vzu3}*Mg8b~9w<#mO zzKw7G(wxxr#fWc5;}@sSN$mCGO45g{{FDp1#ThfQ)~3Bm-t_7Ar|7rrO~B(lai1RN zB@aj_$+i9{E`FWwRM7fo_RnS+E`^hG+E>;u%`>~1Mw=@u2gx19FTzMwEI&YXj#Iep z{B5D0VpO7y_bUJTxi0fV_JLIYit$C8_!rdIb+P+t&*8oSUSWP=?wzV#c3SOL(=gsC zUiD6MPTf_r!FjgpVQ;(N9sgA!uLEw^?Bn+)_-?gZfvH~1&)s{tf21eptMeOEy)dM2 zczU2cbhGb_pyoj@YqbqO-RMrup$#6n$M|X-Go7ou=DOea^7C`{`#ngkJ|T2#hb!#ag}Lrv9bjp}Wm1%e|FPM}1GHV6uSjF^xC z%?pkcwaG8Zj`-0jeL+${+Ws#NKUyT^=BYEgR798fm_AknmVYg|UHCG0b-|~cJ^3H9 zlL~g{#FP~kem5soZdY<77j>*UOy#UuN_%iCm7B^q`HIv~`5^l%D`cH8lJDbca(n7u z9L$Gw4bud<)fwg!95mi-i?_k?l*@6=PLk zrvh%cw(*i(mwEcQ@AuZZz4pB0b3I^w@U%LMs;{UW?=>VK$;IL^&e_NPxjw|HnkrR2 zNcbe=8QwT-_V)4{9r&ESB0W)tb03ecD%_oSA8k`C(Zj%a#>xH#-^!8249rmlYS?C?SOxil60kMaj8q z3*Y=ym#obnTK2eTTS?o(8b!sqJqzCE6cn7z$u2oxP+2mgaA)y}{N&Q%g~`@irorSH zn@IKCaQU#@$Xeg>+IYEQMMYZa`SO7!k4z&g`mnjOqn2qo{S*g99iyAUzL6v5&8AM~ zk(Dv>dhwm0Qn{+1Xk67f>S~T>oig0scy)Ds>zU-#)UBiQ5w~o|wXO-;&4xqzLx!tf z?|qDcO=?XHEUD#RZARd9_i@!eIWpIk>LP8NFhSMOFxsJ`>p_nLuE#t}+_!qK_Im9% z(RrfB7fm0%pK7rBo%*0A#-XE=$vM#dsrzv6{@(5VQ$0ufO>*}4_@us~BkVexAl|Vb zvixPfXH`rOxU1Avzts@yFv0nl!yD)3LNAThGS3`p3a*%8U19#$Y%m!twT)|-UPeexr@_2NmPibxlW;htma@*G@;=zGw>!H@Fbt5AnSiUH(U@XYu>I{^fGf z5mRX8ETeNpLrZsKUx|pf?Bnc*joB3sE7z7Sw5rVG#Kv}K$z7ZzFOpu9Kgd$9JzpyC zP#nzFfF~>bp1(RLBJXzQ^x~}C8CGW8!D_NIa;n@@tZgSsh&)N$E1Js(m6a5}&Hb%p za(;`-%cT#jf#yfb6S*_@7uS#L%D0qH%69Wt6Ek+Lh_vOIHFBZYnS5k7c}F2uWm6ke zv(z>k$U92)r5Bbc^L6WPvsKz4cHs(Xs^+V9n&GtLT!-$?0eWZ0B-Le2JE5)WoUmH8 zTYW?GSUW^tVxUg#oJP1db=d9PShG(zfZrh;Q@XP|wky^%;(J?NAiF|as*7-Na~kBn z#7puD@&D}hTeV2TMW-T7x-L`rsP<)R*-W~KOg2n+sOGxEBfvGxbAeNPx4-oh98D@$ zt&Qc7fzk!>u)In-&W+->sP3v$RYvu5O=sPIstcNBtPRPLnn>FuUOH@hY8_*ZF~61r z5T|VJf3zMaun@LHijsUR&CNZ^ca?lBty|<#KB4$-<+8GSmIzZbF~g=88`*DK_gd`6 zT9v-#eM|P0W)-%nm{SsL>trq^HOOb-xGF-}sA@s8XaZA_)&lTydtfjj>C4 zu6d}@X!o`GlZostoy(1s&&rWDck5!y7gJMHo62}&S$SRi8%re{%y>lR2p7h$rtP@; z%4p@gy^h^zn``xxABt_L6Ak7rarsN(y$-TQCnZ1*m@x(?S>Jv4oUajH>5sH&Z|zHXLdvhytG4{q5` z3*72E%yBkocI)h-6DqUIo0O@G z50xer=9afC`Q1FVa-{vB^>2BaG+pVXT(Xa`N1F~*E~q$IdZ03-^^4U1X!r521uMBlmq`nyQ2R@3tUO+7$+zNLYPx7W z4U)sZjtgA=bU5uiL~GPH5Du#5a;|(fH;q5acM^7~MygNfe1YmL=eLgET!I|iyX-W~ zchYN@>4|EfdWGsw^=91cUJVUvaVx zv~H_hSN^zsRLNoE_VV@M`xB9~52LZ9ky@=8u4$&r<_-wY!~}7XrNVUAyx(}sa?F%r z^ReEQ{uNuY8_HlZm#CGd%D=X+*3RbH#uVeCiZbJviY(KlN)Ky}>4R;G)!q8kyx+Xc z*wq?ko@y(zEU~#*18t8jVb)bcJY&Pj2S4dZ+=i(;vkgeDFYi~MuILA9?xeRrj z@8a#CIC<;eJN!`DHS=j-ZUPxds`1Tvt=d^LS@TibQLh-b8%8^YYVPU^XeRfFyd;OY zBxp!mb){~OVTwZ|XM;Y~VYa5bZmT9zcU`qzGl90}?vkw}g5SuS_);N||H0e%4MM5P zuJ%%&)tsaTUN3&KXPcu<>rEXhUCsL{^K3^fPsn%nNw}r*ELo&KhT#Yg%9VXJt~^_{tt-W6jqquh^bh z+DLW95P6IgD|eKGn5phg-%%GXf~zIG78gk zvyR^=G~?s>fr3W0PqR(y=n(1D*KxGV9}aDudm2&R)+ zCu^AXN#()v&tGmHeR%cf|vCljJGwkqxrD@;|u=D^hkS>y&WmuGkDUuDR`p#mzdyoN3K7 zuaLFUE1FI}(?2-}I)W}_FW47xgJ`oJu;f`ATeP+{mcG_A<}S9$mY$MmpQ2>RJ(VD( zNZcf9tY6JF&GyRA(42MF&1Q|b*0xJNEjh3cic$U~pAfZTmhF~xr?rkH!y=jfv%R$R z!1<=qX4Hkh##^~_d@T1jucA+AkyI$1w5_%FM;=~AE&t41*aYFG&{ca($LSk6yw=t* zELL^W4CWgO@%%g?UHGJ$t=bOHZPJ|7j?vq-f}xqVg+5t*SUW|?ROQj7+;Hw3*O4#b zFY}{>rK&&FL7HRQ*6KXX9^swJTTp~$7)Ro^@;<63stCJ;AaJyUDi1Uf1R$y|V|f zsY(jXq|+80?PWmoAbo5P-CCQ*u~vRG0{>+DBtsn(^I3TudEk?3TP zl`YZ-HkXOyH#!J?Mho$yJ;B=75@lOu`D&kFOOq1BJxs$MbGclOkf@3km}(NZKZ$yB zt=LfZr=n35WxsNn%p2JQs6m;1r}Ck#`C zs{3iWY948GHOF+J8eZqETC6S;-m5xlW@snq`Wpu8)*762YQqn0iGHJIjc&X^)GLV} z^;62^Z&G`yz5J(?%YJ7zE}GvaOi}4nP1Ni7n?ifA@e8YD9a#Wt!kpNBWr@(XO{mmnMnR_A=WI>tovhYi%Ic$F8<5v^TXS*$>;| z?00NSZM~uL5$0HPnvtOAceI={je33OObJ&K zO_j zwXOBvHBWVO)REdg!d?}Rd~xHi^J@M!|CAfWcjFWJEdH_3j;|)fb5r>YZXv&cYs^>D z7%rMS$_?gI_%*^LRgzGq>McxE{mpj}!uVp|i+jqoq6?{s{>IJWd7-t+Q$0a*TT8SR zy1$VHjW}QaK655Di(0ah^+B~drMjZ-r@p1( z)PHNdR8!QG_{G8s>cd${2%X7Y;5gwqVpA-{acB6gRN$u5JGe?e?g4GV)ueyX0InN1 zhIbO0B8DS*k$(%nXjIkL?1Zlf5qhfDali8uX&k*l3#p1<0@rZ~`*jl9az)%{5=F;zxl{&=8KG9P8mLDMWg)SXeRjAX25cPTfiqMH;n9l&Zo7^DZiA+}E-s=$b;I43_ zNBPmhI6hjKMO$;Dm6^&Gsa!lPJrqaFccm1$uk50nmJ6hH(mi{IjoG$YSBOpQObUlD z&XQb|^>SM!TW+DekfW3Wxq%!frP)L6p0?wby0$}>0oHG3vpK+&VA*Y2D1Nu?QmpbM z)|dT{b!Ugz9@boGq|<_UF)&!O9IemtABHXf$pskLBFB{ahpHcs$k}&!d-% z7t`#o@cf%{RDPq(QK3%v3z5` zl#fGy5(>Z5nLE!(+y=0ItWW^W|Dtl&{H6M+UdkU8mLYc25%sUAk!iFBcYyOkhIAL+ zpo*@>z36*7vthgDxh_U{sQQ3a(M&pt+Yg^Xxj~$X8_y?Wj05~y;Q{wQzBBipJ4zdH zR`jB;l|4!;mZD@q^S5x7IR8z49#@V3PKR?N=tauYzBGXJB_&Fda#iW4Oknj{F!N^T zSAZR0h*L&TWLLQ?`mr%`G`-EBU_aE z$}455a#oq998!8JgP5!wBYVhC=#Pd(l5MCNKiEsQgKQ`Fk?{`P9_~ExrQelgMGakQ zq}-D|*hS?UFf5=gIbZG|w-qZsw}?RVnaJEp5tFd?_L!d}d=~Dh+|*H;^XgjKFRHPc zw|u!!O80TTbT}PN57J6_?tXkM-$3P}?xfzVv8iLUZkng)=OQ#u_*7v&SDo*UHJZ6x z1^1R40d<-vyjHzcZ&CBwqbfg5O{{+|;5!QiRHH5=bfp|#zh;^6K(mSQQ(uM>OAH-vdGC&zDr%MMUv)EIbA}+-`)F;Ux&6g9T zJb8j#h~vl0xj0@gjT3jEVt=$wv1MCa#T~W-s0aTl?UeaSP31EBR9EDwzhaY5Np4c8 z)LZnGnqj;nVi@|^-LhKlB;SyR%9o^>$f;&bQZ6W4m6P!KqvTlWv)n;;1it;0G1kR(qfkQ~_4m4_2>c`N(a)-^b1WztUl0aZX;%L5$ggKP#B5MKyJ8lam0tVB7<=L zMr0Iz4>Fl7Beh9;GK`I4!<0a!NS-bGD0}7qlvav2OH%YKOPQiHS8B_Tq!*%IoMj(v z>u0xFqea0!M_MNC0N(eMPRet3kfpF(7LJ;J0R4eVxi42re@j!PV`7C=OWFYcazd^y z-50y$D;Yv2 zl9l8?{Bq?C;lYO+>?D+BFI&O>VQrWn^IT~B@KC|W@xXg;Y)7n93asfcBH%1h-x zXvhm?q7uO>mHL>YNr_dSBCn4rqm*%qyV4mvI<0h70^xxgF#~H2AD6@~vluds$XLra zDw#?x+-q=B4$4|(zs%(AxbJXUo{lWPs>CSg@i?Lkgief5)+-$qhPCu7a(y`gEbgkr z$=~sWYXmxWsmF`E4v_VfZ z=vXeAo}dTueHN400M?u>WS!UvvI%|W0?x?oA{85RrD13MmCTW z@OUaZgWjc!!RrC^81<*)XgLX^moQ!*GK)M%g_*|s;2vmKj5`|R*GJXSF%im{uIyDB z1M@g=WdIp~Rk=fOzxzlAW9$_&+9vOjGm+66Wrv(C|4)7@x5A@^+*x@lM_}zM7X86S zwi;-Z0lQa-pGD~ceh)-7xQm(@PHK@Yg*jKm(m?v_#7+JNREdvWe;Ovr>O59HiN2a`m6Zsuyn~li-jkEP6Q^_98<^r|P`QI+y8!q0;IEBo$lq)Vd!p<@HxjCpD7%%ja7S~2-2*=F zq9WLLo4z29R7XNc0Y){lau!CyvDbW(PAW(PI-NG6vuFtRRMF1#A}PQb{({;z2a3~i zWoO7qtZ|u1bvUazP>u@tmGPVv`n;4D!+Z3kmq`xkg=5^1RW+c48f54uwub$QwcrJ8 zBph1=^Fr;M45n#_h0P@^5cx{-gjmT8)cSN*3UvQuXVH78aAh5ly(6I|b5L&vkblS* ztbO?~J2YvTQm7nP>Ve;Dz-kStU<2XRx?t~SIK~zDeFtuNQ1)!Z^)9=BRf;80g|3LE zA6_HD<`r1IsKyQ|Bhf7kR17R$$$^sZfVS_){hvGVu}74_c%7j9#!8g=Y#6d&7FKq7 za-V!8{EJgD(c=QavCcA z6?Z-FVFmSH)RsNuIC+LT?nC?2t#lAQk9=uPH)4A?9Mu#|nMxLrBw!s1t=G|B^e!m} z;~o&)Q6=kv#S~z(fQ?}NSPNW1O_mRTHVeGmNUk7zHNFKovQP8z6V8tE0 z&%-((V>T8|qQQnG;M8WQ&2@5%Wa0GjyH>aYd*HV4XANZe=*;NO}qMZEu^@x(w^fge-g!}`D{G)J5|;avyP4>M~4 zq-)^QV0fLS$n-hjb`ShI)|b48W}U(Pkuz*3yUGsZ$~QuzcOU`}!1|Bu17i08TTX$o z8`x~Hb`av)kohBD-a*r@C}Wg7ICF30q8Ice4E^jp)S??0>lOI<5HZ=uwt@$(a1=r2 z*2Wsoaj0M^i^u4juy(NkzH2p`%9esTeUZ;$h)q>|7h;@joWC}-EF50Z6G(aCuP#{F z0bJ_~_cj#QIt{L9H~4)W*zN*P`$J;_z{W5f*Bupk7PMg(B6k$EdmT9sUEP4A7GS?A zK&c=36MArud?CT~4>}fVG?l)f-RXanAd7C1Y;gMyqH+{0IEdqxvS~vLNu;gsSpM*@x<~RxvAg!S6zNrwYZH zeOGED1}#uk+_5J5SvjaYgyVmR{`7;gNg?d1(ibCaW7B`d*aQXPz+@9Dav5U6<2Te= z@VWx3ZicQCxGxHw%0@oiz?$1FWJ(I+<^wJ1h&nk68odbUFT&MN1+Fn*@Is)y5uV^G zNd)3$;A%A*05$0hXC4Nwz9SBFJ~@m^KM^Pm!BPJa4qJLcv)W*tNkco*JoFKn#FZLJ zE!65rJQ~6C)T0^16M9yix}kD}!4CwXcW^^(dX5pIpieo-j||K(AIy0L?%aSbJOKwk z;S=tBu&>DWr{LvL_>D{8{B68D0*(C}yzUIoQWO40%RU3gZ>R~962+XM3!bb7Jd}nd zqO05sk2wy`wJy+X21OaCR4CVgsXsyLKbHj$wv}@O~fs#$D*WjRnD1wFJUF;Yqvw!g&&KIu1AZ7!1lHKfpPK z;NAng;WB7=UsTp!*tZ|N!w@)t`C!@w@{VLe7aVDO>IZJS(cZKKee)ye^%-#WCCS4| ze_dcW?ALaGxOi{+JMeE$Ut!AzRE87PJlI%?Y#Ji0-Dy;;7ZV{esQXvi~V zg%YPMR#L!OHN0jd6M$DcIKdda_QVJ+eqmVynr=t;pl5I3nF^J`@VhfvZ@9H7$fq$- zlp&~{e?Z0Nqk}jAJwE{rI|Ze?kNCd>&$CzvX4n8;mBLw=;Y4c#?;gOg6;P~!Ej$#t z0(+W}1A!z6Dm>&DuMeTlU4^dSg44N8^2ts3lpUzz{{ZhQT#mv^CZG>421oU@9d!k( z9pN)Gu_k;B|7)-eReCn=+s(k*?IP@d9vYHB7)Dgn6!85$j=hDb9fY!MB zEOc|rfygT8?i~1|zo5E3@mG(9qSx_*H}OEf>xFfJV8o>rxH}SE&}{gkKT&%JgT?(( ze}}Qgh)64pGzw>$kJ@_(*>xLpc>il2-=Gf}n8^=hToQ7w>NyU%_=-Ko>vPOH6&$y) zM$qvdV9+2`r5IGlD*rJJ^>8FKBpSLM33ZM@C9B$J29R3;4p#Z^b%;RK`=w+*_S_47 zKZwZ91q0^+)9t_X_5+dNI;#UycleWhsPYq_eii-RK4|w2jJ5}e9s;6kpvDW4F{?0# z#c+JTV_l#PDsf{lxB>A8;x4E;BC33q4x%*u`m3s6RaifSAAE@jB%zwU#k=FbST`Oz z-4L2#R6^kCyTYkXME3s=I9BP*Vz`-g=-8_2=>kM)3hRM5binoj*fs_#u=JOwxq&Gdzb_J*Q6 z;u{ZqQysOm32pn16H6@n(-^1e?!BDK$)f>Mzelt%4BT) z3lSKGqdQ<*J#ZlckJk9q4s(dWa~K%ljQLx@miJ)Kb)a$(*S!&JUJZv_#pSAA@-ebJ z4xaBh9N<}?w-flS0n(d*=ni0f6i1wf&Yr>1Rj<3C6ia~RJh;mlxHnU!MdRTwt8`;K zj=2Tzl7Oo5oqfaKd$2W$Rr#+{{AICp_62cIVz2S8s;l~nM^z@K!ZYTg?qonsOsJcT zRpn_pveJk@3$sE^%CW5!SEJzWgA1-X5^Ng@j8*}Qb)+}kV_m3zJwzr7tRDpAhrrA9 z1#0b}>{S?6#imes z!}%J+83sV*T!F2G^@wcrLO*b&`M5d(O!ov!e9`w*hbDT1MHK!Z3D^7@nA`%wSAqI{ zFfa)*N%`dwiUd)54_SdSY7zv7pVy-T5y5^}@^%<{(`RoWg1#J%vz2mNdz>7rN7j?@E7+!{zB&xaJU9u-UIKF zuwOQ=+6JZ>Suu`I0isoSenlkGelhneFnWV{okUjL#J6{$%?UU%4*Prnf-inOlCe)N z;$Mkp^RMpWCq}Ar<}Wcym5!%@wT0krG4?6{)fZKLmy9`m#hyuse;QuDVBc)atPB`S o=$ss&INo5H3-GV Date: Sun, 15 Jul 2018 22:46:28 +0530 Subject: [PATCH 04/22] Added new JS drum kit demo --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index afbe50e..4dfda38 100644 --- a/README.md +++ b/README.md @@ -21,9 +21,9 @@ Thanks! ## LOGS ### Day 1: 11 Dec 2016 -**Thoughts:** Learned about key event, transitionend event & ES6 template strings. - -**Tool Found:** Nice tool for finding JavaScript event keycodes at [keycode.info](http://keycode.info/) +**Thoughts:** Learned about key event, `transitionend` event & ES6 template strings. +**Tool Found:** Nice tool for finding JavaScript event keycodes at [keycode.info](http://keycode.info/) +**Demo:** You can play/stop a auto drum routine by pressing spacebar [here](https://palashmon.github.io/JavaScript30/Challenges/Day%2001%20-%20JavaScript%20Drum%20Kit/). ### Day 2: 13 Dec 2016 **Thoughts:** Learned about Css transition & transform, ES6 const keyword and live UI update after few seconds. From 23fcd507c6d268bb11075b46fed80b0987ce854e Mon Sep 17 00:00:00 2001 From: Palash Mondal Date: Sun, 15 Jul 2018 23:00:21 +0530 Subject: [PATCH 05/22] Added hip-hop auto drum notes --- .../Day 01 - JavaScript Drum Kit/index2.html | 208 ++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 Challenges/Day 01 - JavaScript Drum Kit/index2.html diff --git a/Challenges/Day 01 - JavaScript Drum Kit/index2.html b/Challenges/Day 01 - JavaScript Drum Kit/index2.html new file mode 100644 index 0000000..3eaaab4 --- /dev/null +++ b/Challenges/Day 01 - JavaScript Drum Kit/index2.html @@ -0,0 +1,208 @@ + + + + + + JS Drum Kit + + + + + + +
+
+ A + clap +
+
+ S + hihat +
+
+ D + kick +
+
+ F + openhat +
+
+ G + boom +
+
+ H + ride +
+
+ J + snare +
+
+ K + tom +
+
+ L + tink +
+
+ + + + + + + + + + + + + + + + + + + From f41348434ae22378c6e5905eb08daefb2cc968f1 Mon Sep 17 00:00:00 2001 From: Palash Mondal Date: Sun, 15 Jul 2018 23:03:04 +0530 Subject: [PATCH 06/22] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4dfda38..f7ba4c2 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Thanks! ### Day 1: 11 Dec 2016 **Thoughts:** Learned about key event, `transitionend` event & ES6 template strings. **Tool Found:** Nice tool for finding JavaScript event keycodes at [keycode.info](http://keycode.info/) -**Demo:** You can play/stop a auto drum routine by pressing spacebar [here](https://palashmon.github.io/JavaScript30/Challenges/Day%2001%20-%20JavaScript%20Drum%20Kit/). +**Demo:** You can play/stop a auto drum routine by pressing spacebar [here](https://palashmon.github.io/JavaScript30/Challenges/Day%2001%20-%20JavaScript%20Drum%20Kit/) & [here](https://palashmon.github.io/JavaScript30/Challenges/Day%2001%20-%20JavaScript%20Drum%20Kit/index2.html) ### Day 2: 13 Dec 2016 **Thoughts:** Learned about Css transition & transform, ES6 const keyword and live UI update after few seconds. From 05ef67fa9ccadad3f4b84b0f6b1fdafe98808950 Mon Sep 17 00:00:00 2001 From: Palash Mondal Date: Mon, 16 Jul 2018 22:12:02 +0530 Subject: [PATCH 07/22] Updated Whack A Mole ui & sound --- Challenges/Day 30 - Whack A Mole/clap.wav | Bin 0 -> 64959 bytes Challenges/Day 30 - Whack A Mole/index.html | 99 +++++++++++--------- Challenges/Day 30 - Whack A Mole/style.css | 68 ++++++++++---- 3 files changed, 102 insertions(+), 65 deletions(-) create mode 100644 Challenges/Day 30 - Whack A Mole/clap.wav diff --git a/Challenges/Day 30 - Whack A Mole/clap.wav b/Challenges/Day 30 - Whack A Mole/clap.wav new file mode 100644 index 0000000000000000000000000000000000000000..ef952e5eb431797022bbcdab4c09578ed388877d GIT binary patch literal 64959 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 IZj#{t0Sy0(7ytkO literal 0 HcmV?d00001 diff --git a/Challenges/Day 30 - Whack A Mole/index.html b/Challenges/Day 30 - Whack A Mole/index.html index 8d741d5..94104c7 100644 --- a/Challenges/Day 30 - Whack A Mole/index.html +++ b/Challenges/Day 30 - Whack A Mole/index.html @@ -1,14 +1,19 @@ + Whack A Mole! + -

Whack-a-mole! 0

+

Whack-a-mole!

+

Score: + 0 +

@@ -31,57 +36,61 @@

Whack-a-mole! 0

+ + + + diff --git a/Challenges/Day 30 - Whack A Mole/style.css b/Challenges/Day 30 - Whack A Mole/style.css index 8fec3f5..d3528a8 100644 --- a/Challenges/Day 30 - Whack A Mole/style.css +++ b/Challenges/Day 30 - Whack A Mole/style.css @@ -2,38 +2,48 @@ html { box-sizing: border-box; font-size: 10px; background: #ffc600; + background: -webkit-linear-gradient(to right, #f2c94c, #f2994a); + background: linear-gradient(to right, #f2c94c, #f2994a); } -*, *:before, *:after { +*, +*:before, +*:after { box-sizing: inherit; } body { padding: 0; - margin:0; + margin: 0; font-family: 'Amatic SC', cursive; + text-align: center; } h1 { text-align: center; font-size: 10rem; - line-height:1; + line-height: 1; margin-bottom: 0; } +h2 { + font-size: 3rem; + color: #391d04; + margin: 2rem; +} .score { - background:rgba(255,255,255,0.2); - padding:0 3rem; - line-height:1; - border-radius:1rem; + background: rgba(255, 255, 255, 0.2); + padding: 0 3rem; + line-height: 1; + border-radius: 1rem; } .game { - width:600px; - height:400px; - display:flex; - flex-wrap:wrap; - margin:0 auto; + width: 600px; + height: 400px; + display: flex; + flex-wrap: wrap; + margin: 0 auto; } .hole { @@ -45,25 +55,43 @@ h1 { .hole:after { display: block; background: url(dirt.svg) bottom center no-repeat; - background-size:contain; - content:''; + background-size: contain; + content: ''; width: 100%; - height:70px; + height: 70px; position: absolute; z-index: 2; - bottom:-30px; + bottom: -30px; } .mole { - background:url('mole.svg') bottom center no-repeat; - background-size:60%; + background: url('mole.svg') bottom center no-repeat; + background-size: 60%; position: absolute; top: 100%; width: 100%; height: 100%; - transition:all 0.4s; + transition: all 0.4s; + cursor: pointer; } .hole.up .mole { - top:0; + top: 0; +} + +button { + font-family: 'Amatic SC', cursive; + display: inline-block; + text-decoration: none; + border: 0; + border-radius: 1rem; + background: #391d04; + color: #fff; + font-size: 2.5rem; + padding: 1rem 1.5rem; + margin-bottom: 2rem; +} +button:hover { + opacity: 0.7; + cursor: pointer; } From bddf8f68516f0937578958af952352c6c55c990e Mon Sep 17 00:00:00 2001 From: Palash Mondal Date: Mon, 16 Jul 2018 22:16:50 +0530 Subject: [PATCH 08/22] Update README.md --- README.md | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index f7ba4c2..cd51228 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ and commiting & logging what I have learnt on daily basis. Also, please have a look into the users I have helped so far regarding JavaScript30 course queries [here](/QUERIES.md). -If you have any JavaScript/JavaScript30 course realted queries, please create a new issue [here](https://github.com/palashmon/JavaScript30/issues/new). I will try to respond as soon as possible. I am always happy to help and learn new stuff from our JS community. +If you have any JavaScript/JavaScript30 course realted queries, please create a new issue [here](https://github.com/palashmon/JavaScript30/issues/new). I will try to respond as soon as possible. I am always happy to help and learn new stuff from our JS community. Thanks! @@ -21,8 +21,8 @@ Thanks! ## LOGS ### Day 1: 11 Dec 2016 -**Thoughts:** Learned about key event, `transitionend` event & ES6 template strings. -**Tool Found:** Nice tool for finding JavaScript event keycodes at [keycode.info](http://keycode.info/) +**Thoughts:** Learned about key event, `transitionend` event & ES6 template strings. +**Tool Found:** Nice tool for finding JavaScript event keycodes at [keycode.info](http://keycode.info/) **Demo:** You can play/stop a auto drum routine by pressing spacebar [here](https://palashmon.github.io/JavaScript30/Challenges/Day%2001%20-%20JavaScript%20Drum%20Kit/) & [here](https://palashmon.github.io/JavaScript30/Challenges/Day%2001%20-%20JavaScript%20Drum%20Kit/index2.html) ### Day 2: 13 Dec 2016 @@ -37,13 +37,13 @@ Thanks! ![ES6 Arrow function](https://pbs.twimg.com/media/C0V10qtUcAAct4D.jpg) ### Day 5: 25 Dec 2016 -**Thoughts:** Learned few tips about flexbox. Planning to learn more about flexbox at [flexbox.io](http://flexbox.io/) soon. +**Thoughts:** Learned few tips about flexbox. Planning to learn more about flexbox at [flexbox.io](http://flexbox.io/) soon. ### Day 6: 27 Dec 2016 -**Thoughts:** Learned about Fetch API, getting `.json()` from fetch response, ES6 spread operator. +**Thoughts:** Learned about Fetch API, getting `.json()` from fetch response, ES6 spread operator. ### Day 7: 30 Dec 2016 -**Thoughts:** Learned about new array methods like some, every, find, findIndex. +**Thoughts:** Learned about new array methods like some, every, find, findIndex. ![Day 7 of 30](https://pbs.twimg.com/media/C07gdtqUAAAtlyM.jpg) ### Day 8: 3 Jan 2017 @@ -67,10 +67,10 @@ Found one more useful trick called `console.trace()`. It helps to print a stack ![ES6 arrow functions](https://pbs.twimg.com/media/C1vYSZ7XUAEqZXS.jpg) -**Tool Found:** [ESLint v3.13.1](http://eslint.org/blog/2017/01/eslint-v3.13.1-released) has been released today. +**Tool Found:** [ESLint v3.13.1](http://eslint.org/blog/2017/01/eslint-v3.13.1-released) has been released today. ### Day 12: 10 Jan 2017 -**Thoughts:** Learned about key sequence detection & Konami code. Also, found that [BuzzFeed site](https://www.buzzfeed.com/)'s hidden easter egg is still working. To see it in action just press ':arrow_up: :arrow_up: :arrow_down: :arrow_down: :arrow_left: :arrow_right: :arrow_left: :arrow_right: B A'. +**Thoughts:** Learned about key sequence detection & Konami code. Also, found that [BuzzFeed site](https://www.buzzfeed.com/)'s hidden easter egg is still working. To see it in action just press ':arrow_up: :arrow_up: :arrow_down: :arrow_down: :arrow_left: :arrow_right: :arrow_left: :arrow_right: B A'. ### Day 13: 11 Jan 2017 **Thoughts:** Learned a bit more about window events & a very useful javascript debounce function. Today's project helped me to fix an issue related to resize events which was slowing down our site. The goal behind debounce implementation is to reduce overhead by preventing a function from being called several times in succession. @@ -79,7 +79,7 @@ Found one more useful trick called `console.trace()`. It helps to print a stack **Thoughts:** Learned more about array & object reference vs actual copy. Found that primitive types are manipulated by value & reference types are manipulated by reference. Numbers and booleans are primitive types in JavaScript -- primitive because they consist of nothing more than a small, fixed number of bytes that are easily manipulated at the low (primitive) levels of the JavaScript interpreter. Objects, on the other hand, are reference types. Arrays and functions, which are specialized types of objects, are therefore also reference types. These data types can contain arbitrary numbers of properties or elements, so they cannot be manipulated as easily as fixed-size primitive values can. Since object and array values can become quite large, it doesn't make sense to manipulate these types by value, as this could involve the inefficient copying and comparing of large amounts of memory. ### Day 15: 13 Jan 2017 -**Thoughts:** Learned some useful stuff on local Storage & event delegation. +**Thoughts:** Learned some useful stuff on local Storage & event delegation. Completed all of the project goals for today:- ![Day 15](https://pbs.twimg.com/media/C2EWpE7XgAAG3sp.jpg) @@ -102,7 +102,7 @@ Tested all new buttons. Data is also persisting on page reload:- ![Day 18 new taks](https://pbs.twimg.com/media/C2eCp-xWgAAbhJz.jpg) -**Tools/Sites Found:** +**Tools/Sites Found:** - New, interactive Chrome Dev Tools tutorial: [How to analyze page load performance ⚡️🚀🔎](https://developers.google.com/web/tools/chrome-devtools/network-performance/) - [2016 JavaScript Rising Stars](https://risingstars2016.js.org/) @@ -125,7 +125,7 @@ Tested all new buttons. Data is also persisting on page reload:- **Thoughts:** Sticky Nav was really an interesting challenge. Learned about the requirement of padding top in nav element and other UI effects using css. ### Day 25: 11 Feb 2017 -**Thoughts:** Learned about `Event.stopPropagation()` & `EventTarget.addEventListener()` boolean options like capture, once & passive. More details about it here: +**Thoughts:** Learned about `Event.stopPropagation()` & `EventTarget.addEventListener()` boolean options like capture, once & passive. More details about it here: - https://developer.mozilla.org/en/docs/Web/API/Event/stopPropagation - https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener @@ -135,7 +135,7 @@ Tested all new buttons. Data is also persisting on page reload:- ### Day 27: 14 Feb 2017 **Thoughts:** Understood the basics behind the "Click and Drag to Scroll" challenge. element.offsetLeft play a great role in this logic. -**Tip:** Simple & time-saving tip +**Tip:** Simple & time-saving tip ![console image](https://pbs.twimg.com/media/C4oivhGVcAApV3E.jpg) @@ -147,6 +147,7 @@ Tested all new buttons. Data is also persisting on page reload:- ### Day 30: 20 Feb 2017 **Thoughts:** Finally finished #JavaScript30 Day 30 Whack A Mole 🔨 challenge. It was fun learning experience. Highly recommend the entire course. +**Demo:** You can play the game [here](https://palashmon.github.io/JavaScript30/Challenges/Day%2030%20-%20Whack%20A%20Mole/) and keep the audio on for some fun. ## Note From bc2c14a43f007dddfe653cc818fe11b04c8582c9 Mon Sep 17 00:00:00 2001 From: Palash Mondal Date: Mon, 16 Jul 2018 22:19:59 +0530 Subject: [PATCH 09/22] Update README.md --- README.md | 54 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index cd51228..901b570 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # JavaScript30 + > Course created by [Wes Bos](https://github.com/wesbos). Join the challenge (for free!) here - [JavaScript30](https://javascript30.com/account)

@@ -21,36 +22,47 @@ Thanks! ## LOGS ### Day 1: 11 Dec 2016 + **Thoughts:** Learned about key event, `transitionend` event & ES6 template strings. + **Tool Found:** Nice tool for finding JavaScript event keycodes at [keycode.info](http://keycode.info/) + **Demo:** You can play/stop a auto drum routine by pressing spacebar [here](https://palashmon.github.io/JavaScript30/Challenges/Day%2001%20-%20JavaScript%20Drum%20Kit/) & [here](https://palashmon.github.io/JavaScript30/Challenges/Day%2001%20-%20JavaScript%20Drum%20Kit/index2.html) ### Day 2: 13 Dec 2016 + **Thoughts:** Learned about Css transition & transform, ES6 const keyword and live UI update after few seconds. ### Day 3: 16 Dec 2016 + **Thoughts:** Learned about CSS variables & updating them using JavaScript ### Day 4: 22 Dec 2016 + **Thoughts:** Learned more about JavaScript array methods like filter, map, sort, reduce & others. Really liked ES6 Arrow functions. Shorter functions are most welcome. ![ES6 Arrow function](https://pbs.twimg.com/media/C0V10qtUcAAct4D.jpg) ### Day 5: 25 Dec 2016 + **Thoughts:** Learned few tips about flexbox. Planning to learn more about flexbox at [flexbox.io](http://flexbox.io/) soon. ### Day 6: 27 Dec 2016 + **Thoughts:** Learned about Fetch API, getting `.json()` from fetch response, ES6 spread operator. ### Day 7: 30 Dec 2016 + **Thoughts:** Learned about new array methods like some, every, find, findIndex. ![Day 7 of 30](https://pbs.twimg.com/media/C07gdtqUAAAtlyM.jpg) ### Day 8: 3 Jan 2017 + **Thoughts:** Had so much fun learning today. Did lots of coding & painting today. ![Canvas](https://pbs.twimg.com/media/C1QFNMYUsAA9cxC.jpg) ### Day 9: 5 Jan 2017 + **Thoughts:** Learned few useful Dev tools tricks. Debugging JavaScript code is so much fun, easy and colorful now. ![Canvas](https://pbs.twimg.com/media/C1fRlZCWQAAtuMx.jpg) @@ -58,11 +70,13 @@ Found one more useful trick called `console.trace()`. It helps to print a stack ![console.trace()](/Challenges/Images/console_trace.png) ### Day 10: 8 Jan 2017 + **Thoughts:** Learned a user-friendly feature used by popular email clients. **Tool Found:** It's so easy now to convert our ES5 code into readable ES6 using [lebab.io](https://lebab.io/try-it) ### Day 11: 9 Jan 2017 + **Thoughts:** Learned some nice tips on creating custom interface for HTML5 video player. Really liking the ES6 arrow functions from day 4 onwards. ![ES6 arrow functions](https://pbs.twimg.com/media/C1vYSZ7XUAEqZXS.jpg) @@ -70,15 +84,19 @@ Found one more useful trick called `console.trace()`. It helps to print a stack **Tool Found:** [ESLint v3.13.1](http://eslint.org/blog/2017/01/eslint-v3.13.1-released) has been released today. ### Day 12: 10 Jan 2017 + **Thoughts:** Learned about key sequence detection & Konami code. Also, found that [BuzzFeed site](https://www.buzzfeed.com/)'s hidden easter egg is still working. To see it in action just press ':arrow_up: :arrow_up: :arrow_down: :arrow_down: :arrow_left: :arrow_right: :arrow_left: :arrow_right: B A'. ### Day 13: 11 Jan 2017 + **Thoughts:** Learned a bit more about window events & a very useful javascript debounce function. Today's project helped me to fix an issue related to resize events which was slowing down our site. The goal behind debounce implementation is to reduce overhead by preventing a function from being called several times in succession. ### Day 14: 12 Jan 2017 + **Thoughts:** Learned more about array & object reference vs actual copy. Found that primitive types are manipulated by value & reference types are manipulated by reference. Numbers and booleans are primitive types in JavaScript -- primitive because they consist of nothing more than a small, fixed number of bytes that are easily manipulated at the low (primitive) levels of the JavaScript interpreter. Objects, on the other hand, are reference types. Arrays and functions, which are specialized types of objects, are therefore also reference types. These data types can contain arbitrary numbers of properties or elements, so they cannot be manipulated as easily as fixed-size primitive values can. Since object and array values can become quite large, it doesn't make sense to manipulate these types by value, as this could involve the inefficient copying and comparing of large amounts of memory. ### Day 15: 13 Jan 2017 + **Thoughts:** Learned some useful stuff on local Storage & event delegation. Completed all of the project goals for today:- @@ -88,51 +106,65 @@ Tested all new buttons. Data is also persisting on page reload:- ![Day 15 new taks](https://pbs.twimg.com/media/C2EYda5XUAAdUdh.jpg) ### Day 16: 14 Jan 2017 + **Thoughts:** Today learned about assigning to new variable names using ES6 Object destructuring and how we can update CSS rules like textShadow or anything using javascript. Just like canvas this was a fun challenge today. I tried some css effects like this:- ![Day 16 new taks](https://pbs.twimg.com/media/C2IFDhkWQAAv-Ck.jpg) ### Day 17: 15 Jan 2017 -**Thoughts:** Updated code to show modified band names on which sort actually happens and on right side the actual band names. After code modifications it looks like this:- + +**Thoughts:** Updated code to show modified band names on which sort actually happens and on right side the actual band names. After code modifications it looks like this:- ![Day 17 new taks](https://pbs.twimg.com/media/C2N0IDsWIAA9hLT.jpg) ### Day 18: 18 Jan 2017 + **Thoughts:** Learned more about `Array.prototype.reduce()` and its usability test case scenario. `reduce()` is quite simple & effective in specific scenarios like in the example below:- ![Day 18 new taks](https://pbs.twimg.com/media/C2eCp-xWgAAbhJz.jpg) **Tools/Sites Found:** - - New, interactive Chrome Dev Tools tutorial: [How to analyze page load performance ⚡️🚀🔎](https://developers.google.com/web/tools/chrome-devtools/network-performance/) - - [2016 JavaScript Rising Stars](https://risingstars2016.js.org/) + +- New, interactive Chrome Dev Tools tutorial: [How to analyze page load performance ⚡️🚀🔎](https://developers.google.com/web/tools/chrome-devtools/network-performance/) +- [2016 JavaScript Rising Stars](https://risingstars2016.js.org/) ### Day 19: 21 Jan 2017 + **Thoughts:** It was too much fun today. Learned a lot about canvas and pipelining real-time images. ### Day 20: 22 Jan 2017 + **Thoughts:** Learned about native [SpeechRecognition](https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition) interface of the Web Speech API and how we can make use of it. Something like we do in google voice search. I think we can use it in various ways. Only limit is our imagination. Also liked the use npm [browser-sync](https://browsersync.io/) for time-saving synchronised browser testing. ### Day 21: 24 Jan 2017 + **Thoughts:** Worked on Device Orientation using Chrome sensors devtools. Also learned about Geolocation & Orientation Api. Unlike desktops, mobile devices commonly use GPS hardware to detect location. [Tweet Link Here 🐦](https://twitter.com/palashv2/status/823919145557299200) ### Day 22: 29 Jan 2017 -**Thoughts:** Learned about `Element.getBoundingClientRect()` method and worked on some css effects [Tweet Link Here 🐦](https://twitter.com/palashv2/status/825757066669076480) + +**Thoughts:** Learned about `Element.getBoundingClientRect()` method and worked on some css effects [Tweet Link Here 🐦](https://twitter.com/palashv2/status/825757066669076480) ### Day 23: 5 Feb 2017 -**Thoughts:** "The Voiceinator 5000" challenge was great. Also, learned about SpeechSynthesis interface. + +**Thoughts:** "The Voiceinator 5000" challenge was great. Also, learned about SpeechSynthesis interface. ### Day 24: 11 Feb 2017 + **Thoughts:** Sticky Nav was really an interesting challenge. Learned about the requirement of padding top in nav element and other UI effects using css. ### Day 25: 11 Feb 2017 + **Thoughts:** Learned about `Event.stopPropagation()` & `EventTarget.addEventListener()` boolean options like capture, once & passive. More details about it here: - - https://developer.mozilla.org/en/docs/Web/API/Event/stopPropagation - - https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener + +- https://developer.mozilla.org/en/docs/Web/API/Event/stopPropagation +- https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener ### Day 26: 13 Feb 2017 + **Thoughts:** It was super-fun learning abt this really slick "follow along" nav found on Stripe's pricing page. [Tweet Link Here 🐦](https://twitter.com/palashv2/status/831161506301612036) ### Day 27: 14 Feb 2017 + **Thoughts:** Understood the basics behind the "Click and Drag to Scroll" challenge. element.offsetLeft play a great role in this logic. **Tip:** Simple & time-saving tip @@ -140,15 +172,19 @@ Tested all new buttons. Data is also persisting on page reload:- ![console image](https://pbs.twimg.com/media/C4oivhGVcAApV3E.jpg) ### Day 28: 15 Feb 2017 + **Thoughts:** Finished the fantastic video speed controller UI challenge today. These offset properties are pretty important for proper aligments. For block-level elements, `offsetTop`, `offsetLeft`, `offsetWidth`, and `offsetHeight` describe the border box of an element relative to the `offsetParent`. The `offsetParent` element is the nearest ancestor that has a position other than static. ### Day 29: 16 Feb 2017 -**Thoughts:** Finished the beeeeeeeeutiful countdown break clock challenge today. Learned about timestamps, set & clear intervals and `Date.now()`. The `Date.now()` method returns the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC. Because `now()` is a static method of Date, we can always use it as `Date.now()` instead of `new Date().now()`. + +**Thoughts:** Finished the beautiful countdown break clock challenge today. Learned about timestamps, set & clear intervals and `Date.now()`. The `Date.now()` method returns the number of milliseconds elapsed since `1 January 1970 00:00:00 UTC`. Because `now()` is a static method of Date, we can always use it as `Date.now()` instead of `new Date().now()`. ### Day 30: 20 Feb 2017 + **Thoughts:** Finally finished #JavaScript30 Day 30 Whack A Mole 🔨 challenge. It was fun learning experience. Highly recommend the entire course. -**Demo:** You can play the game [here](https://palashmon.github.io/JavaScript30/Challenges/Day%2030%20-%20Whack%20A%20Mole/) and keep the audio on for some fun. +**Demo:** You can play the game [here](https://palashmon.github.io/JavaScript30/Challenges/Day%2030%20-%20Whack%20A%20Mole/) and keep the audio on for some fun. ## Note + If you like this repo and find it useful, please consider ★ starring it (on top right of the page). Thanks! From d67c5c28009f9516f3672743186900b84c3d30a0 Mon Sep 17 00:00:00 2001 From: Palash Mondal Date: Thu, 2 Aug 2018 22:59:11 +0530 Subject: [PATCH 10/22] Update style.css --- Challenges/Day 01 - JavaScript Drum Kit/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Challenges/Day 01 - JavaScript Drum Kit/style.css b/Challenges/Day 01 - JavaScript Drum Kit/style.css index 0b78192..1eef4a3 100644 --- a/Challenges/Day 01 - JavaScript Drum Kit/style.css +++ b/Challenges/Day 01 - JavaScript Drum Kit/style.css @@ -1,6 +1,6 @@ html { font-size: 10px; - background: url(http://i.imgur.com/b9r5sEL.jpg) bottom center; + background: url(https://i.imgur.com/b9r5sEL.jpg) bottom center; background-size: cover; } From c9e6454c05ec4088e11fa2920e004c5eeac95782 Mon Sep 17 00:00:00 2001 From: Palash Mondal Date: Sat, 8 Jun 2019 21:48:23 +0530 Subject: [PATCH 11/22] Update style.css --- Challenges/Day 01 - JavaScript Drum Kit/style.css | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Challenges/Day 01 - JavaScript Drum Kit/style.css b/Challenges/Day 01 - JavaScript Drum Kit/style.css index 1eef4a3..44a5da8 100644 --- a/Challenges/Day 01 - JavaScript Drum Kit/style.css +++ b/Challenges/Day 01 - JavaScript Drum Kit/style.css @@ -1,7 +1,10 @@ html { font-size: 10px; - background: url(https://i.imgur.com/b9r5sEL.jpg) bottom center; - background-size: cover; + /*background: url(https://i.imgur.com/b9r5sEL.jpg) bottom center; + background-size: cover;*/ + background: #2980b9; /* fallback for old browsers */ + background: -webkit-linear-gradient(to right, #2c3e50, #2980b9); /* Chrome 10-25, Safari 5.1-6 */ + background: linear-gradient(to right, #2c3e50, #2980b9); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ } body, From cecbbe3cf44292be3ffb62854af0f7855730aa4b Mon Sep 17 00:00:00 2001 From: Palash Mondal Date: Sat, 8 Jun 2019 22:34:13 +0530 Subject: [PATCH 12/22] Updated UI --- .../Day 01 - JavaScript Drum Kit/index.html | 110 ++++++++++-------- .../Day 01 - JavaScript Drum Kit/style.css | 55 +++++++-- 2 files changed, 107 insertions(+), 58 deletions(-) diff --git a/Challenges/Day 01 - JavaScript Drum Kit/index.html b/Challenges/Day 01 - JavaScript Drum Kit/index.html index 19d72c6..c621b20 100644 --- a/Challenges/Day 01 - JavaScript Drum Kit/index.html +++ b/Challenges/Day 01 - JavaScript Drum Kit/index.html @@ -8,59 +8,67 @@ - - -
-
- A - clap -
-
- S - hihat -
-
- D - kick -
-
- F - openhat -
-
- G - boom -
-
- H - ride -
-
- J - snare -
-
- K - tom -
-
- L - tink -
+
+
+
+

JavaScript Drum Kit

+

Press key or press space to play auto drum

+
+
+
+
+
+ A + clap +
+
+ S + hihat +
+
+ D + kick +
+
+ F + openhat +
+
+ G + boom +
+
+ H + ride +
+
+ J + snare +
+
+ K + tom +
+
+ L + tink +
+
+ + + + + + + + + +
+
+ +
- - - - - - - - - - - -