From 5da6babc7cec782f89fc4a9777ebf7592c431198 Mon Sep 17 00:00:00 2001 From: Randy Fay Date: Sun, 3 Nov 2024 08:13:07 -0700 Subject: [PATCH 1/6] Getting started --- src/content/blog/windows-ddev-setup.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/content/blog/windows-ddev-setup.md diff --git a/src/content/blog/windows-ddev-setup.md b/src/content/blog/windows-ddev-setup.md new file mode 100644 index 00000000..33fea6fa --- /dev/null +++ b/src/content/blog/windows-ddev-setup.md @@ -0,0 +1,20 @@ +--- +title: "Setting up a Windows Machine for DDEV" +pubDate: 2024-11-04 +#modifiedDate: 2024-10-17 +summary: Setting up a new Windows machine for DDEV maintenance or development is not hard. Here are the steps +author: Randy Fay +#featureImage: +# src: /img/blog/2024/10/DDEV-v1.23.5.png +# alt: DDEV v1.23.5 release announcement +categories: + - DevOps +--- + +I've recently set up a few Windows machines for DDEV maintenance and development, and wanted to share how I do it. It's surprisingly easy. My approach here is opinionated, but it works for me. You'll do things a little differently I'm sure. + +Two recent Windows machines I set up were the new ARM64/Qualcomm/CoPilot variety. They were excellent and fast and had great battery life. There's very little I had to do differently with them, but I'll mention in the steps when there was something different. (I was surprised by the lack of a fingerprint sensor on both, but the Windows Hello facial recognition was quite fast. There is no ARM64 Discord app, and the AMD64 one had horrific performance.) + + + +Follow our [blog](https://ddev.com/blog/), [LinkedIn](https://www.linkedin.com/company/ddev-foundation), [Mastodon](https://fosstodon.org/@ddev), [X,](https://x.com/randyfay) and join us on [Discord](https://discord.gg/5wjP76mBJD). And we'd love to have you sign up for the [monthly newsletter](/newsletter). \ No newline at end of file From 33ea81783f1b1cd0bd0b68c7e18a0cdb29112816 Mon Sep 17 00:00:00 2001 From: Randy Fay Date: Sun, 3 Nov 2024 08:48:48 -0700 Subject: [PATCH 2/6] Add content --- src/content/blog/windows-ddev-setup.md | 38 +++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/content/blog/windows-ddev-setup.md b/src/content/blog/windows-ddev-setup.md index 33fea6fa..9dda00ab 100644 --- a/src/content/blog/windows-ddev-setup.md +++ b/src/content/blog/windows-ddev-setup.md @@ -15,6 +15,42 @@ I've recently set up a few Windows machines for DDEV maintenance and development Two recent Windows machines I set up were the new ARM64/Qualcomm/CoPilot variety. They were excellent and fast and had great battery life. There's very little I had to do differently with them, but I'll mention in the steps when there was something different. (I was surprised by the lack of a fingerprint sensor on both, but the Windows Hello facial recognition was quite fast. There is no ARM64 Discord app, and the AMD64 one had horrific performance.) - +1. Remove unwanted applications. I usually start by removing a bunch of bloatware. +2. Do all Windows updates. +3. Turn off the `System` -> `Notifications` -> `Additional settings` that cause the “Windows experience” prompts after upgrade. +4. Enable Windows Update->Advanced Options->Receive updates for other Microsoft Products. Amazingly, this is not on by default, and you might have an old WSL2 kernel! (See [Beware of Dirty Pipes](beware-of-dirty-pipes-and-docker-desktop-on-windows.md).) +5. Install important apps. I always start with these. Each of these except Discord had an ARM64 version. If on an ARM64 machine, make sure you get the right version! + - [ ] Notion + - [ ] Chrome + - [ ] 1Password + - [ ] PhpStorm (Although there are many ways to use PhpStorm on WSL2, I just open the project in `\\wsl.localhost\Ubuntu\home\rfay\workspace\` and it works great and performance is fine.) + - [ ] GoLand + - [ ] Discord + - [ ] Slack + - [ ] [Perforce P4V](https://www.perforce.com/downloads/helix-visual-client-p4v) is my favorite merge conflict resolver. +6. `wsl --install` and `wsl --update` +7. Windows Terminal is a fantastic terminal. I always set it up early with "Default Terminal Application: Windows Terminal" and "Interaction->Automatically Copy Selection to Clipboard", and set Ubuntu as default, and have it auto-start. +8. Once Ubuntu is installed: + - [ ] `sudo apt update && sudo apt install -y apt-transport-https autojump build-essential ca-certificates ccache clang curl dirmngr etckeeper expect git gnupg jq libcurl4-gnutls-dev libnss3-tools lsb-release mariadb-client nagios-plugins net-tools postgresql-client unzip vim xdg-utils zip` + - [ ] sudo snap install —classic go + - [ ] sudo snap install ngrok and ngrok config add-authtoken +9. In Windows Explorer, add my WSL2 home directory to favorites by copying it into the favorites area. +10. Run the [DDEV WSL2 install script](https://ddev.readthedocs.io/en/stable/users/install/ddev-installation/#wsl2-docker-ce-inside-install-script) + * On ARM64 this will fail the Chocolatey installation because Chocolatey doesn't plan to support ARM64. But you can just continue. + * On ARM64, consider `choco uninstall -y mkcert gsudo` so that DDEV can get the native versions of each of these. + * On ARM64, install the Windows-side DDEV from the installer in the [DDEV releases](https://github.com/ddev/ddev/releases). We'll probably discontinue documenting the Chocolatey install technique in the future.) +11. Install and test 1Password ssh agent +12. On Windows PowerShell `ssh [git@github.com](mailto:git@github.com)` to verify that the 1Password SSH agent is working. If it says "PTY Allocation Failed", just hit `` and ignore it. You should get the confirmation message from GitHub. +12. 1Password WSL2 adaptation: + - [ ] `sudo ln -s /mnt/c/WINDOWS/System32/OpenSSH//ssh.exe /usr/local/bin/ssh` (Makes ssh use `ssh.exe` on Windows and the 1Password SSH and Git integrations then work great. This assumes that `/usr/local/bin` in your PATH comes before `/usr/bin`) +13. If you have a `dotfiles` repository (containing your shared `.bash_profile`, `.zshrc`, etc) clone it into your projects directory on WSL2 your WSL2 home directory. +14. Check out DDEV. +15. `echo "capath=/etc/ssl/certs/" >>~/.curlrc` to make Curl work right. +16. GoLand setup: + - [ ] Set GOROOT to /snap/go + - [ ] For ARM64 you have to do `go install [github.com/go-delve/delve/cmd/dlv@latest](http://github.com/go-delve/delve/cmd/dlv@latest)` and put this in IDE properties (under help)`dlv.path=//wsl.localhost/Ubuntu/home/rfay/go/bin/dlv` +17. DDEV repository setup + - [ ] .githooks/linkallchecks.sh + - [ ] Install `golangci-lint` for `make staticrequired`: `go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest` ) Follow our [blog](https://ddev.com/blog/), [LinkedIn](https://www.linkedin.com/company/ddev-foundation), [Mastodon](https://fosstodon.org/@ddev), [X,](https://x.com/randyfay) and join us on [Discord](https://discord.gg/5wjP76mBJD). And we'd love to have you sign up for the [monthly newsletter](/newsletter). \ No newline at end of file From 32a9c85276cc200d74d59a3f6bf3bdaf8a24e57b Mon Sep 17 00:00:00 2001 From: Randy Fay Date: Sun, 3 Nov 2024 09:18:13 -0700 Subject: [PATCH 3/6] Add banner --- .../2024/11/windows-install-blog-logos.png | Bin 0 -> 100246 bytes src/content/blog/windows-ddev-setup.md | 66 +++++++++--------- 2 files changed, 34 insertions(+), 32 deletions(-) create mode 100644 public/img/blog/2024/11/windows-install-blog-logos.png diff --git a/public/img/blog/2024/11/windows-install-blog-logos.png b/public/img/blog/2024/11/windows-install-blog-logos.png new file mode 100644 index 0000000000000000000000000000000000000000..8cd9508c7c4afa51b9864555ebc184c9bbcfbe31 GIT binary patch literal 100246 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�_Zy-<@L zA2|Q}?A=M8E$;!}czygFUYT7t0Al%RfybpMIocQtWL@h>p>MTCul6@k(D!M16A6Cf zo+2P_d{>I+%eM2Ow0fYVp(y6a?36YE+Do^4+WK0og9H9hCd*zT2f~D4-%(a|`&5AO zfjAQs=%C7BL^pzTinfK|9anZ870NGJphK-l2M3Th_hbvDrlm*R&Nu@#4itfmGzb9t zYCQjyJ6G}(C@V<1hW=k6awkC~Ps!9-0$&ZjavKrGk6G^etg^U7{@tIg8v0DEvrb%w z052kgX0^R`{r=xQLVXwZwYj?UGr}_<^`D49oFP5M+0}Xst`YYNeMET;>1+w(TEdx= zVOu}eR|0VbxU45!7oFROWM^|4zPXH&$e@Qcf*(r0%bw*+viV!l=&LArN3op&;cnrt z;s~|i-a>UIZn;~4*+j6<8Q09d`ASsJsCz5&{V;VPLn&@!CEL4CKvOtzH?PFkigLiy zP9D>yj0yL4dn4QEKrx8L?k`Vh>{T(S6FKj_>z;Gk6#uSu5+Arp@Sk8N2$4u)*-ihn z)06KJchk&4TN;AaJf}|+j-Q7rol$3OX zbb~ZQw{&+(cX!?6=l%WNb=SK8p0#F9?X#b~U$LKzrT3LDA7E|f>~CfI%U&J9^;vc9 zzq<#TB*^~$B7olz#HK5^4-Q+@nO3V^@evSp;Qhj^xE2?O5Mqe7#i%sbj_PtqmVNLP z3Z^9iAOY~0KA}j^{m~YT3Dp$qM?d zfttD{Vl5VFT438PblgqY{!fln3YY(iJMv@NE9&K0f0Y&1O1x_fo|%j&d{feU zuT&URm8{74#Y9!tdfO#lf5({<_D>VkmSy z!;HQ4dxT0FTc8|lY8%?1+JftpV`_kxq@7JQQMt(Rxt!vDT$4r$44zTGH0NtW zuljShr`zV3sS}ou*)ZD*gNMr8rDef-F)XO($DJsX&i%b=%gyES{7W98BHPWhGv@}b z++42{9=s?q;lEo4rAr8{YOJh3OnvOlXt_b*fhjXNSD--SFV&ue+h+O)Ai4k`n2F~+ zfft7ZlIyifvfdN-WQYh%z1lMVH@1O-eWp-8FI0B$Iro6soD4kFmGZ{yjlLDigWC(n z)paGPDb_RoD3EbVsX+vEt67ER1AoE;%7-z|ArBHaXv8O##i^BEZ;ac0m~yG9sn6;2 zjt=;?QFci6|8D<+v=dCQCTvTWR)<+4bm3@Ay2kO#f@h|(Fksn;Oj~cEXzat;gwz<< zNqoyF(Eq0m9a7^=c#hScHcXz3HBi5HA3MKHNqtK~11g142P!-!1W{tf|J}O<`NDDG z(!4HAeunlMvDsV24Ws=K9;L<>E#2GMKA3FQ8#n<^G4KiDtt+n7Z58~kQ(aQ zLz|c}deHW<9I#>HogH1h5axZF<+oG9&=|*W0K19=w0uTHt=D%kpb@%y+j0V3BD=}FZ2C$CmPAJybQj+6@P!+(3|0QvaJ64UQwoh_m&jY zQm{-WY4EWtWvX~Is6OQOls||z6~v*aR4(( zOFS@7GQgfy+nSC=dACN-ER-tXxwk7ERy`0aSYVXFXdyWvI^D4$EFBj3iy4IkB_dklivR}rzosM( zj~=yx;A+_GYx}*_pVD&cUX`WUFOjpPvzg<%aV}!=2R#^rraf1W8R^g6>DRhjy%6jm zoSgsx3%jHiy4N}B^4_eOzu7iT`X8-A-t~BWMgkERAKShYcTCrhGu{NzoY?Vq6Q_5AC)sL!8aXbmn zyKWzA%lMVjRERY@j>jZ9%MKx0ZE=6+*G3a-v0&LdgO&?+&UxY`8|R{?gk1B&u37iQ z_d?UvS6NwuZq;T)tAW5PKpqt=+Zw{F)90n=6n;V(&du`6^4_5+);z^A3w8>o|5R(@ zU$mKCs~JdZ=PyWU`GAQXHSJD`jSo~BFuc4S5$%Y)v&*}~ju@>VG~W6lb_y3aMsu5; zaT{m-Df~R{y(7%b|EuZ#5TiNYkL`46h^y1HajA5>P)YdjCQn3;1)W8KTLC|Tr|lLQJ$3EaO}2j znzPN(IZSme$4!05r7zp7{cMO>ZAMU}1S78<(sqM6JzXCAL&(ZaHP+|uHTeDssj7~E z7g8E1#9vVg^WCf-+V*ouC9U`bEzv3?(7wHbgm5&*FV(Dcnt{htJjJ{+Q>A8b{8F3HR&^2Q z5_On0^Qm$$qxxXS;mt?Ff2mTGk6<_-V%&7ad~tVx*M#N3sYc&G0di26y^`Oc)nL2E zh3V@|U6;7x#PjPz?PG#zg}PWJLf-B^?;}(i&yS?`h8po9l}_|36(igV5Tfr_5zVk4>5U%XbSGWRt? z-{)zka~UZ~PBvOD^_q~9i8-dFD6OW6r;AWzloU8BE#hG9Z4O{C^rG68EU zEDEtj8D+|@QesUmq+fviMAr=>9J`uwkjEuT2-EglCz!o!p>kQ`F{5-MIK7U$x8^&n@k9Y#zrb#}5GB7zMCg^3 zK3#+)(^wLoDD8Pub%BjhYkuL$JF_MhpnDyHJAICwcLO5FU&G^byd zkWZ~k>|tpgsDt@U{G$h>}m#Mink*etKT@*L2>9WDLo#Fg;%8h`D=`K}my9H?oFz zR#Qg~O(bitT1N(iKe{`o*IL7%IVWG znI%z=;F&t}4?u2l`_^0_) z?5uqsEXa*UCBN0r@_}`Fr8FS&#aPvKtyrMS>UB<%-rFt=l+H9f$D zpjvJWW!rNh!VHXwkF=rKmH|}V`XVmks3Wz586}L_B5t9B{$Z&{No9R(-?@gZ%Ks6z zdGyp@$LW_@Jm-$N%CLMaQ$!xCC`QUjI45egKggc;eJ8(?P_)L%u&*!> z*sNus^Sn6o%)fN++aDcnzN8t@&Z4j(!En7P`BNEDP!{~cI}+t&zEJU!EXxkuOVQ`WkxT>mxG9% z3q>mn<$q5m{GD=utNfB_xvUJiI(u19mJlo~Gn~Z{?t1|8O!a_^uf&8JLe z%|w#Y6y0JQxi+}C27vpYvt)QWTCgS`r@#Zrs4BLW3A@A0rQ?eb!wlC+E zitv`{Jp~Ti$OOR+5vwlLzj_m!u$+5jn2;-BwIUj)Hg8lz8#N5A>fD*4yPF@u1L7ks zFx*~a{3_DHd1!#T#C2bMzHY1&5aKA==llYNn!Dnxubk;xz}l8|R`_5-uih51BMRNt z<1I`3Yol1+P&C%VLeG)SZA81wT8OP+&^B}C=$)X1R3}#*vjL-0E+TOLs-!sos1afl zTf&y6*Xt3nJLxHdX9IA#_bgW_<;>fzXK_*wTOw^5 z+AlkedIJ{kQT|rYJMnX0pV|@KnaV`OsbcGrnkMs!RW8)5WTe+CM;Ro<64$bIydkEA zY!78O@ru^i@xwSvtl#hq@2-V3y?Wbwk>#~8SI7S_(PjR9DTyjU(O83Vd5@*dym;~B z6EP2LOqSbi#|`IrE@d~S)JQ%KKe}m$9}L2Ub$kT)x@B%*|9~rM0L#e?r$z1mK+xU+ ztHCw;y{E{4HrK+u2HTyf!ppZar-`jI2~i80(Lc4Bq5_eN=j7#LG)rMRRE#g$!i7u^ z8Gft8-H)b8Rz8~cs<}lpf2%x_Ut{&;{od-Elo9JT`2mhrGSB&LK4{LPRJwt2)f6#x?# zo#E%b6SSTW*klDT(D`00gDh{YF9v^6y5s^0!Vsom*ke1fCUTN^SO1!_3q_;gPB+=sVzbsXSi*vzjihKe;qz@VYu`eV;iH|H}cfUyYip9OHnp>pgy>-nPZ0wm*qM3_&~4D zN=-B=Q(89icz(f4*F7s&1i(Y1Zxl9r>aAFuEoWTzgiVvIE(4JAD9NJ02@@`AnOy8i~ukSc2LBq zaZz7s8zY=wp|QRjJ`MmG;xw@R(9){va)nDg_a6;wMcvwe2&gFE zPlz%${m0>69I5|B0zKWaswG`ITyfU3xjI|K!g>H@_F?dSd6CMGNTE2Q52AdDTngi> zQ4#? zqQw~e>Y5QiLpAQW{N4LOYkpfV&~4T)Z?{cJ6Mk_Bexd?7&AIdXD{#D9_?d;z7OTM) zG%$87Fyv&yZo#+PRLc<3IqZipPdesW@3c3~qTxh4HD!Dy|F3F>-@rYirn4DaBxjPW z5_f(V9;eC|6sVx7cP;$zD`D7HN>CUV(;lRcmfs=qD;v4nU*51$h0fU(l|78^djnAi zp`T;a0zl-?b1PZkj=xk{Azq~_Wb51$?;RPBkeY}%er6+x&rm}gU-1VHeo6hF+J>>k z*j=7>BbqN$RBgq|k8iU1aKeuiEJ!zzhn+~vC_MphDNwj29;?TeCH@O1J2;=7B7z%_8&kLK-H4Gn^CJS z!{Rj*n-RHyC>Q>nbV&t>+qYL4wVeDy6QRc;@IO?UO+<-lEz%ctyTzv&HLV1_7;NEI zZ>>N=w^>OYusjG)*d-q@xOuSfOS+@)Eh0Y=*8$eGOAdFl8Se`3fz6W-;wR)w_$@W4 z(0gLn$6_=#00;BZVZ_*CQcBRUw?M6LgUwUs(P!U!G=Z;1SGN*$){=}OrI1U{>~;MQ znFcgPLBJ)cqa#go@yAHeP+9gDd={QIdYlQ1Yc)SxZTOncwbPiF|+zQEwgRa zlKNCZ4CuGGw_n|9zd7+#s^L#e-ty2qQf>U#M!Ky4n%lrlg&^G_>1kHK^54Tm_C?fb zeIo8R#&E%2Gp4YJao><|B+bVz`s1@OKtFGC`YOfcS3wB9Q^hY<9WwB%?(n)$z+?>P zK!kkJO%xSe6O2rSL5$X;V{e23$gCO#kmS}7f`d0y$AQ5@X1` zs)2e9RBAoRcu=%YbCUk2jO{=C0N@_q0#U+CJK(!4N2Q*y=;mcY_1fhJ%!=M}V zKI|rJgy+UgHtNSz8&rTjUWU=&)aKwi>8kLBfj;n$+Za1I!h{KV5fE#~KpOrXGJhg< zcA+5t4MAh`16HT#5g^LmdDWwa7{Fk2S}4Ggxxn>g5YOgOPfbzcuCSr{J30(NReC$}6 zpft_mi3)5}Oix3}_%pWd97TWfD6>wV9%2!5lc5#uTwu`j#wZTR;nt{zY1`u$pfNY< z(n)*Pr9dRVjL=eXdr}}7!pp{G2j4=19hBMxYTt@P{li+jE7p+cgm{lLB+^?+tH5)M zZU(HgCxLyHqAL%G$Z_K3Bp&`wV^Jf4Pvp$R?_}~b0~b(gWnqNcW zQVG;eP&)ii=LvA9hFqd!yVpkzblrC^))yVW9vA2$uRK|*H4 zfoW+X4S32ZtwzG~ihxnnU8k(h0UFpC*VWUe3U4GO*dn?HvovP7gTOlMM+qy6Imia` z!Q9%dd8eV9*b$*qHu?@0Ahz5(Wagel!a8XY`CJUy28!R0@dKOmn4ve;q5Pu&HWVRB zN^`3S1pQ+RGHJ#883ISMM)Ql|cv%S{H3M_3KNuOIta$Us1mm+t*(ykVl_nf|A=AC* zuu2{P$?Wi!S78j=j2NuN*3Vyp`!H*WB;p&`QMu@?fzC& z@YM~)PCE)ZVa|sya*t}mMRW+|lNn~zw0 z-Fgw6ZCSwKSjRC7Hu5+{wgfu#13m0|ld;1wiyI4Osfh%?s6e`$Q$UYuzo=%m>5upVhUK`4JjTfYaUdo**mbj zpZ2#8t1cE@-hX?dZc|RNkeqMrW+Z;t5sWvWmcz)I{U=QcuK_aE0JtEs2hjoeIasm- z?SliO)uIh5Pngq~E7|%^A0#_}Bt)U8yb|`K5vmzKT*O@XX6C7r9+kpDdoaW^!v*f z!v^Og9Fb+nsRlh0gdbCnZ0rsN3sv#YD1_Fc|EoD-COGOJ&lN82rc8fdR#{Ba9Z%~W z(Qa2X5J+`sAM2);2M>06yfF0!B)?Jz=32^*0qCqkYyK@f=_Wu zPIh7|FCfbo9YE}xEjA;cb0ZeB3-~92oDq9rWJbgEZL#F4U{4717;`RJtmd8Z$Z!I+fwaewG+IBWd%ahskp z%eqJ;Y~%UmH~Npaq$a#vOV@2$m1VU)y{Y+)vos4}u4%|cpKrc!OygtPDIypoDJk>W zPu2q}kqM6Bf)vNn*m+l)jZsr$tt{TDoo-jlBye&2VqI^fuI34G5UTYb6Oeyh8G2j^ z{B)D@ncIo0+^#`C>&n2?!?#hUNQ4sh9hKrEBO12f7Hbw9=*{!S+IjTm{VV(;3K<1C}V5)O3V z)c=RSZ46Gz*&Gtp?QKN!Y-XI=NNt-Hi_C=o(gw?3>U1|{ZeTMaG>;7LRjJhu zE@KUUBz~EyNGX=oey&ZqX=}i7F}rL&-?pr}+pQ73i#$K;1DbB0^j7?!ZXCMf?d*hK z&k>qWXMkSfd`gp?)m5%8Hn}=8C)>;#TkEd6y6rfGW!`AraHuxczImBrs(o=*xii`m zq4!+9NWdEp$wNOqbZu z-q(w!n18o^OyH*TZerZTYZ3-%b_c&gMqJp_n1}tpYnMW=mUIKYE?ZeGS>Q%i=4}p~Nk~>m#**)U?gp}4=IWH^u_B{v%f~ce+$L%HO{`T{p=(gv0Q}fJ> z8ONCiUDs5FPVIVsWDuoK{sA}P#p?8zB0Bs(jkWCGfJk;Q@JnN8P;K7tD~xpBq)Ssi zEnJe>HcOjG8_8C8M7!Rs(e%4%5jhevL=8>u;wh$9hm!*D$}x3q)@$q&dum6I47wVE zc~Lzbc?t_*B|Do=j$qIOk>(1iv>lTpH;UpMm(S-5#8JO^APNYe*>+?b?5jVJ77b%Yp{{%}wcvxE8#v<42qwdB;{ zbslk@)g4`gBHYu4A=3cU1}Na@aG9_S3VI*@=)SIf7-UusDa3(Cn_%l!H-21 zn*6XdLVsruZE&*dUVG>+);?Za9iF;w$rM>?#e+BSt4rLB%5Oa6sPPn@S!36yL>Zap$-A7V>XrVLqZMWa(Q4{+PcEZHBQ}VkkN+hFJwR0IRmqP9kP|?!`;2N zvQCR|1bw2t=gd(xZ*14>Bo>Z8SBouQ$2kALo~hE$WM0$okn;51r?s`v`d3%()R(Hv z<%loXVhp?NpQu|F*A;I1oT;R2umoL4`@6Iw++akN%({Zuzl@pLbDa`}3^B36B%vVFxvk6hUw z>@-KO-wbb*W&yqI-o{37{zD4Ec{T}5h zA8hi(yLg}KH*2{9B3^Xmpw@mV0{#je z@!KN-!A%DUFEsL3?JmtRM;VC=Aa@9w+kH>DEbcYhzVltNeAVn5D3i%&{!OXc@=H}I z1}GED9b%b-fybOR7T2EQco-*jvGqtcaf8LP=@o7BB0vut&oA6|bl5@2PN;;cQ}h&9 zp)oJx`QGUMvMJ!F%>L}XmCe;}qJ|4zCbV_}*d$aN7CUMtCA2iPMm(P>*)Z4M`>n{ou3Fw?}k#}LWcDSfz4Ji{t=Hm|gYZ0;WA$W5+Cq85c z0C>mRNV^*pwp6kFl_Bi9P~IhBI5C^#jwZL8_x)_XGu5gN zq+an-@b!g@`+_e2^qJ31pJ@y--*_SfIpz9RD89ZAMqGaLRKR-{bT{pQ;mhl!8zJC=Zx(LYeWj9(=R%JT#4Y{f|csgjgmE;Y1YADH>qp#rj=8*y`VYFSh6?Q-}1`pTu#jj9XB)(KbvBVjs0#a75WqS z(DJw7uEQ4*>OG0)7_LI1XTa}S0gKe8*7G>GG$r(Q5yNxt)zhB%rczqA)g2t~ZLeRv z;`p%S)rS7L)+_(0n9l#M=~*amH19^QG|+~ktXn_U`pNRt)uGBqLqqP7r`|4Q<@i)9 z+Wb|+q$lc96IjU-=1Z0DDR0?EGwtVrn71^u?L@P6CAhM8{O{1(~=@29Lew;nzB)1KV) zZeuGb3BuqfzQseQ|C{Qa|6FO9Et~$W*s!Phu&JZ! zL6_X}gYVPA@S@O^6_U+7%HTkvLB0i39iB*e$}iPc#nn}>k zJN#M4FkajZVAPQ;5H(XpHo|gwf7g*-B5o9^GZQUhfvsV(W76@GCM#2QdIWd`D(2>Q zzOt)|y6{@1*5nAl=Lr6bxtLsT2U$FTh(0c$?Y}gIre#XiEV1XwSo zh3|0vAKBUhpAFsI6KKKo{U;P3KM%wEC8vCBx(*{|KUtZ>g*u{0=;w2t&Q8^Z^bnUd zK)p}KGEE2Jw~usEZ@FkHmX8Ma*?85H_?dXMvMk)vpxY)(bVqCrdK5PlL=CpC%r%Z~ zYv&|NgENxF)_F6Iv?ru=PFP$pu>LT;`qAt;DQiqcPb1WkArD7}()B7QPbCy04;!9< z0iDAs_D0N9{6yDX#zEC$uK3hV)0(GzzRkE`$|nHBD!<)lg9_q;t%2IEwb?KWE;q6A z*a!bJhHb4(27O9+HrmRl1%V=xamplJW&2rm|D34oI*$9gYQ%(NASto&H^Lj+Bo8iD z3wh&Pfzqom4xve5*i3H(ZS$vm8)m)NnI8UP6?E~^!E(R+gwi5+aj6kqCT)6^H=D#z~9~vxr0&>ogw4 z;%DbW5Ts(+Cx?16-I?LZ11GxiQz$iP&VN7$j|ZXQa9u%ffKt_)>kD>3_cz*c%SK*_ z(bcb8i^rSO7`c35f+n~K6zA^@`17eh$-b}3+?D`d-eHJ{yz7byQc%fDVMt?@pHM~h zt~0%G%W@muX?Da(wz$HZmOIQcHzhjodLmf;B=%5fcjwSIlZBseM0(ombq-0}Ii&U# zD!oZBc{+Y9==PMg^x8d?3n#nj)PJpH_BRvb3ZdJZ`tZaT=@H779&PpUBymQnmu?Ll ze6&Y8ZX}GLS8~8Df%8$L(2xVJ3eNxH<89u-sjnVAIdbx|<>`{a=M?){BJ{^KGuW(2 zxVIB5c8>wOFa{s+@Dl{81S#**FsJFjtEi7jDr0Ch^J>DB^KB{z*~?m6nb)qtviV$i zR!3}errQVJLrlF$^@r5Yr?yEMkh|skb^q+54;irCfXZ&lWM$$3Icb#VSpXZ)uONgsTtAP|$IXRos~7s%eL`a zp!%^+)=d)HF3S5w0&^G_eQ2%Q^NJ%(zP5*KaT`SzOC{Dx^kXKmQqZsOB6vlE5*-9t z_NJXtuDDANGAyh27Tu~mh7=7-sO)?xe4qRVgEWj{0{6EEr2HKXP^hf}k&!)z`R8Ic z;+h{d^LgA-D@ejuX%nAU0 z)(ODTnrZWE^$bJ@RPy>(OxfjDlF|=wXP)vgrmpGsvp^GtYTUAN;>~t$Axhg78Mm9Z^b@V*oZheba`j$Jl1N zBKs%G7o=b+Ly&1z`scwDA7OQy+e`m(yuu3n{1&Y_=uog&o|leTg_<@5QUPP?N=FDmuo=WPo7QN&U4BR!up?SrHmUodpE z7jEg;ckQ*M-Pe1=B|6T*mw)*cykzYQMQSj*W#Pr9T@YhvRf7yCE>-R}YpgJ2a}mN) zx}kCtKF(53e|mF%Z+jn-=;nMsuT~j&-RXaPM1-29 zr(hE9WBRcCoO$ar=5^SFMLKO9UF2(j;(K##%i?}&_ITI|#lDH+ee+xUW-V}O1&Si9 zMDZc#y6AV5rrE8aP(yUfZO!gYQfBE|j?3yLZ>ESVTql87^hT%mLW77cc!5MkpMd^C zC}7tl%zHFI(=ZKa08!hmAKjJ+5$5l<0zU6lK$4M~S%!D39XJc?cP^UYK&7!PWzJL8 zy@{=aRwDLOuSaJY!CfTc3lVB$Hc}hVrKg=KKu*ocGqjfSr&o^*YZaLFz~BAt>c`Ka zzM-RnNk|NwT!5h5t?3^vZ|ITDk9)>_5>?<&zpZjzjy3NyKUt?Uht;$VqX{Su`-M%= zBs|vct}xF2+R7RY2H%FKW_hWi1e|#i8~q`bOyvHpHg{=tOdoMg2%V3Q@>?N3Jy2Wa(Bv9GEptIykVp<6-$1jl+WepMd! zuWkrqFAlllLkpY4f>Z<7NkF&mkDXZV2Eit0UaQ0^?LMeu0#PWR*goGRK$*_o;9p!( zbUL1%3pDC2V8HF1Lw0waxNzv<54erA9%S!1{WI=XP|BeUhUM|U{8{UnumebB86@{k zc})V$ZaUWm$c}Dv*6=tP@(~xeD*&5x)y(SHZcJmI8pP!Cct2M0~h`^@1%1jw0Dov>2AhI{@^3-%(THWuZyk>LD ztu{+uM%Bj~6VyyuPdz|qWoff&&ALX_*1U;J7S|fabgs-vG&|VN>SdN2lQAe?RFN!K zJXJW_wT>TQ(%vo@zEl| zk~2V%sm#!@!5-B_6|W5z9@FVOA6d{*EQJ?qhLmd_mlC0#E--@*5lX_cukvOxp2|`L z+q5n+M|Q5hWRJ31M^b6?TU+X@I6BOJhk>I-Xu-BTsQ-kTNZCCA7OO)lkpooZVqbUl zFQY+tO`^RoS2p=8_?JZh^iW&xSA-E{f^JIC!bpqoH|o)Vi9;xOcRvmK7qf8*}=68OEkF#9_i%Rv@)uYHr!Mc3`{ThDb-l)xntHot14#8V!j$el6W zeh(pqHCtM<7py}feg|R>V5}xMJ%2q=^*Ibg@%_d)jfNoK1Zgre1BfDKI-TxwJJ+9) z?YjFjKEDZ8zAbKOY~GVveE4RTWB*-gC+|4hEcS7tzUj6$u1v(d;LukvZt0!~?Y=Tm zh!F#tSomiEY=IE+*^kIDwYkpMOX&9gR1smL{HI>IXEK8)<0(!pg0(Tzy=b)AAPx-fn$mfc-+XbqY&0 zN2>cefdHL5J5^v6Xm}aU^aOS_=JQB9a~`DEVf@YoP-JQAIlz`B4Z%+x>8HZ))d5(h zy%pZpwt{GOWTyjC`VD)i2h*vB80BYB6Sf4;NxZD0Ptnij8 zd$PYgxP**nVGs40tAApriv+uTP|(TtE-X9AbWQ1^w@*hqsh#yw_ULcAR(LIzmdJxS zE-1~+wjE;;lYa7u|NQdv(capFO)Z^Do7Si4O#?;!kCS{JKY9DVjgg=}@2|dvB`;)bnm#;*{ml%*mmSfs6CYF~QxsB!gx?7U*@q3J*Om#ERExCf*hRUZ z!y+c`qCRv&P3(YiJzY(JV;;+&`@AKJ=S5%Ob&GAsv3D&EeYFg+#B9xK_YO@ zD%QhYM7Hv{syt8DYwZ2w3L0k&?H+7XwCm6F;DCnvYlo#2)cAj;ho!n{9KFvff+Hq+ zIt4^MAhi*byN$i8+6?P0vwt5E;561xJ+##)Ae<))8_=ZM@2andl-ukLGW#tb+VDnZ zkbQ_;S<5})BOJ|YD;0>;Co5%-_Cd6?Z5)T~#x@u204&C>tx$_FP3L#$wDS@fu0L49 zUjA8$v}J`W`a3P70fyu49iQ9Ustg(8t?bLx>&lAbCU|OttcIW4W4WFdj{BvO@WO6| z{vf|%BcF2SXLjP5dPyyku)%ldjR3I!Yu_n3?H4ERg{ynE0t{5i6 zL9T|^=ZwG4?a63#tE?V#vTXu44_>8z*U$wo2qp&Ic;iMz-d)Y|JaOcOfeS+nNc=?m zQ=bA6$3)8Rz_G!@VfaBRLFIr=U%!mv9VdSl%c+3KGl)?S=Bp_rpCQK0v`I(t%?0fE zykL<4mgfV*{LQV^*awMqE|>;OKwrrxFIs7YYl@iG6IN63D)%nbNs4$pT1F0j9=@e6 z^eX9hw zooWQpIgT+##>jK&o$>gXQ7=EV{#k#>`02L!Zs~&H{*piSy3hO6jjnsmTKeg#JH8un z{{wo2zRSV}vsBjPp4cvB{og~0u&)wKfGTekf!f?Kj&2GtN|ZluIIG{^NSuwzY<4CJ zGPZrau$7uJz$Jm+EMOii;q*o6#Ik(;yqcJEo>0NSg}Y>uIo<8;hH+A7=dYT&wLAxdmg{OVrWwI6lWT z%;(+%A;JJiMa(c6AQoE&o^H>^+lP2BHvnI@fu}pTv%_?;#^}XMYC-%w;`zmQJgUs3 zXyqdd(wN!Kg))UTc1Z^PpBd^U8FYYel`sgfmu1&S(TCOQ@<34dYn@s*N!1P-Ob|8L zFbt~!ee}rwHWN0a3tCd#t9CnW#ZjfUUtZdHh>eH;PkiJTJ?K3OfJ? z>&ZIte6JSFx-8_AY5%Hc3d=CKX!?KVA3n{qa9hh!88LJ||J<$O6ScmlE2gi$ZCk}% zL$;h>7~P?N^}H5qj!P;9K7ClY4ety@p8#Gi-Eq?|d`HH}ldY;}g$b4WWhQ@MCweMc)nPAm$sJeu)iN>w55asHUjZueT-{L_tGv9B|)J z5~D|Tyj9f?gCs?e;DaOL$gSCA;S468-KAwH86(7(;C`Nb+Ggg%w*p3Kf?DZox;U_# z@(gJFwJYhmK6J8Y)ED_M=>Df(<1gzB+ib_>_ZL_B#!~qd9FU25JtR$aiQmGZ_qB5O zYcc8G3Dr%q98R;Q;Avj#xv%fE<3*s_(x}NlD zpbLVhY6wxde+d(w#t?I0jvA)JWO&?7`r81+1BmQFr6HAHN&mlyKzLWjUN~bZs_LFiGB@aa{;Sq!&>WFvMs{97BFbq?) zt5F7u8t(tj%>3tf`7L@##4%UHw1QXlwwi*nISiDfQ}483vs#orRMO*T$$FlT7BKoQ zc>P1L7VLcFO{Ny!;;A@>VU3hulV48$LO>jH`V}bcBz!n;9e%oOhO}o8{M9%`gpry!Dp89{=4Wx%p_YJyEL9C-t>?)FjFqqfEt1)KEY6s!~a$m zMxSaQ#$hh3Hn2yN2;R!C=-6j67vA*nW@Ze==jGby_$H%Kwo_FP{}i4YPpa*Syk$uYOJ8yrZM^d z^{a5eiqRkIriMIIJ8I~osY|JqE_YAs71{Q;_C_tV>3q5LD8Ha%p{*zPos}cX zbOts?K_dOAn8+1^Ea6uP@eionb42Gs?m~w68Tt|D&CApSydW-r&QFqbXJGUtpDlEE zzBm|$&uhK_a9TF1AQf^Hy)Kh9uFqe?$OHyZ(=)fNzTm(N!qx8jFmapbPVgS1b_o-& zN7`5=6RweeY=V+bT`*`bS1HB<;iR9EQ2OiCBWsHjzDR&l3x$ z9!I3aBzHC73+d7=fGd&A&Zba)Pm3Bw5LhNEflTRkbd7a*KFU_VIa5*@t^y-}7yh(a z-w-$7XGgaG7mLT}(x6-0ifl9j!gM5^UJF3(G|2|p&Jix>2AnDP`>s#>?hvdsW)C!@ zwi1dt#S_vKVcRsbwY5E)C;KIQ9%>5k!cm}(SbkhJ-2jmPYCB?w0O`p`@g{8w4Z-q`SKt zX80b@Iq$a?|FG6Dvv_9jeaF79-^CMXM-j0suHC^88!Ov8uHfK|_i4MZ5q}rv@%yt% zHB&-7tV<2cbmqhDC>|T*@AmwUP6Sih1f!DztLGi<(u=mh-1>?wtSnLRh4j`B5%Oum zBH|)xUGS=GOYJjJq1d2onN1bwK2-O<6|KCUrRNS|HP}0YK5SLrzQ(7iR79DLqLv)f z&i~cv-;>(iFre37R{Y$RRn$t%?2tbci!1*uLW5ut!$|S|dY#=p>oi2{bsnv?dEd!v zPimP9{d&{w<>0lM&=&CL?6_ztsgg>SbVNZ7r&as{@ShOoKq^G8O}np_ts<-6XU1Rm zyl@Q3?yqT79tt$l1kG-N>&j98?iG^PqGLn*A9}D`60c96o;uB~Ri*$cMVt0rY0+OP z6?=H&2Abl?WRtm3YMQfdyuAL@RfsJ~w)BPp+{yx|xmnx*=p8*`Vvd`a-rYNsdAeD)oAy} zJCr_WV8l4P!CXA`cga{bAgEYppiTbZUzoeFRvE-+a90LKDfibeMxRk^ZO2*M3%~vL z>`f-}Ixn=RNcT2bqIS&7PwzeqpF4Uaqm(ZT>&sVBg`96gfz-&1QaG0D(;KXh!iU{m zIsh=Jk~O#~Pm+jnmHQwHm~ENQ`^SCaRj?Gkx6nYnxK;+{?5Fv`iuowlusvw2=S68K zc0?a$2`5mjVJboFA?3dT!U>4`wd&c27?u^s!xCK^ioD>n(H~KPhVcCBjTFE&2^@T3ok!B@n=-b?4x4rW^oeUuGbcI{>*+ppXW}=;^Dkkyzc=O=wfF zR~gi`#=P4yZYjgo&RzuTRbf$)W819v+TUGry(Oc>Q>oXRB4Lh8ckEmJFA16E#9{u= zn5ehD9uA$9`#Yixv%@OOA~ok7-mBAVr()e}IDNja&-?JN!RzvBZ0LFHS|T2(orZQY zIMIl|$k*qM(TJt37Ilx8%FZiYo%8s%mOAUYZ-uruXRJMUJ>jn+KH*tZnr|7-t3jlM zSlOFr_^eQv_4_>+DBm;$I=uT&QexT123L?=2Y*~HPOf%obxyQcBY>^CC z{2@pcwRDgd(qRekP*{a6>F4LZMmMVI2H2WAn#bXpqfp0?7k3IF+};?--aCCk*srY! zaxhgcioj2rLu8s56U~y)DKQA#X7hl+0MmUQcdS!VQ|607LdzRVTps2GHB1|iib|Uz zB*%?dJ8}Sfxs-bs>Zk7lLPe!!NBUv5mmU(K9~4|Ek18#y9`8PJ3dr8&c#Y$bUbEra z=Oonp5vRSlaZ_X7F6NtPeoIkBhqUP++&dq^p2k^^c>m<-#o9EP(RR1RSX0A#8;``^ z(KXd*D6?wnkWc>NYXk{iH(xI4MatMHt~KPJ;9YsGRA*SZ(>f61dk#9Pa>%NjH{1wF zYGQxEgkL{tZhU?{OAGJa*AXy#y@%YY8*(&0-&b@~WSxeep$$G`{VcF~MU*_>IJfcS z^ZKB}kqo{28~9Wnyc>jhLZn@``c=snM!W1Y@jAh5%Cs;))i*3wB?@9G2H1_Qh3!t& zr54?yq1%qkL2ILQg?Vr@$>QlCn>~-}0IINq;rTL@)ASS|ANx+UKj%P1ndh#cyNaXN zTQ|^WyJlg*mRU#G)2J@dKyjg#bpznHt*33xQ)CMmv+SF?SC*jvyuX>u^J&zMG9hPL2GaU@*8XIasKwQn_X)A=>{vs6p zIXs`%?nY_gk67!<4l|7gNGb;ZlZW+6Rxmskn~|ncp3d6a$QB433KGZ65%!#;u{!RyM-M);q6XYNVa|bGqlrzA0MRz&wp2-mc}_I2hjv7>nol zsKU&THCb`u$9!NxS3m>Audl!5!pYRqiLmCiwNjr$!8l=sG2dl6X{ZWJEHEpAie-rm z@3|AfmRQKBXW{C5sXh>sQ2CI?vn6Cyun)p7jhbgR&NmJF17BI*gACzeK94Hp3p2R3 zT^cAtLiv>=)D%UM65U8MeR(cl2PkgfC_cFk1k=u3KY$BsUhjMVVjc`PREVEEzZi)` z&O)&e*Uee(LQM+#)5vU;sGda1;C8dDcU0 zth(sor!k{5CF4_k)D!<#7GRcVRsZ$dytg4(lxditU3abb32WjN$NFxVCRUJrc=mle zWs3Vp45a&!s4;;$FUaj}?QS==AcO2#?J<=uG^%nQ=|eQRE7eJ=d$zdutlOOs1wu@%O{|&BoVRzy43$o~^vhsat31#(4OMeT?b5onEB@WIrA8#(sps6I zGn~T;3g%tzvv1m7&SO$cRwevR9q@I`k3|YcoWaUr&LE1Pr33!IXHrtA5J)!w8Eg5l zPj2|L_ZO1EDyk$7@0{do96I=7@1+jBCc}>b`*g!9H@mgq`&~}|@|}vUjI%UqJ)Q>5 zpADu`VIa-w_dFNH#{0ata75j%&NzCVSav^QllZteExDhCvR#Y;VSoEetvt3FE|Fb8 zviJE(l(HYDdM3QazIbTlyb^Y*#Fr1davORmsV-)thv5S8<|}_0$f%7F6JSH7l$Cuf z>E_CkZUPMOvOgMq%}$W*+ zHt5WT8#}-B&H45`$?6{R;qvj^uw!9_kbkG0j!10JgQD%h7>!D0LUxQoIPak6JZaYa zoT{B_)&!q6imiKZW>TA%qW_QF{E*o4W;<4y2VCXDUoJ<=v~Sx38ond?f_ryl{9SRl z7JpTOmU}oo5AJ^l@A!vTcOU-}{_zqFhlJE6rdT69&6NoeW#b-Hd7d2hSvP#u4!lPu zFyW|jHrm)re|{`IJ)OILi*zax?%U)dCQx{)yA;;~jwL@3XrVBJn=TuEG7Fza%}m>a zb2-y_!~W%5qwJ~NNu-)_trA{|(!D*4#~NTqdomIRJT1z@Xczy*>_7!$u4thvXS&`P zPOos?d`|-E* zR-Q_jL^fm2}|hF>*WEA?82IK5KsE zCmNCloySczbYD&uuvk6Uqm0}ypz1cOJ!4IXa6_n~3qAVEKf35UCtN~x=KhV6@514w zX8?%ydoa#=Ws_NzhEc(itmeikajs94&5*C5_uEIeCKA^Iu{KI^0^nfL&CM|i#-cnA zAx4t$3t@*1wItiFoVxFlNZCJfcxOy_}{Fs*GRgjx1|npcT7Jvw#055Q|7eNqK1CtF7IU{ z4Ca)@WNA=lpm2fI#2Or zTdOKAFotfS6s^e7jP!!z(+wR++`o^v=X-u|a^oa;hQJHB4-laaCV$!B86!hbY?Y*I z_GceMKIwr8oO7=It5``tV)v1B^H zqF>zq7=L4btiC9itR{9k;i#KJq#rxIXIV>H&q6H>?Z`#PkMsrt7+Ep0piwC`eet_6 z{76D&wldk-FaXvA*d=t{(Z6MfM+p5x;-J`8Ll$QY%uNFDgq0Nsw)M^}t@ZJ8VK4_G zk2jXpQ7oRL651{dAQxXCTH6s|AP>>k+u4Fw7VNwrtqy4vUvb1-;`V#g;n6}@9Zf`4 zo#(AkvwaEkAV5wFR`DR7>7p_>JBAbGx}2-6asGoFL5z+zuWcGRV^H_j_zg+u@ja}A zRX9`Bc&3+fY9*pJM#qu)2gQn&O4@OM>%{H2qfIY!I!wxvmbvSf?5IhPTs}r2_treP z0=6F?W=Ffuv}^S z1vv9siw`}d4z?(6W$^Fs@x;BSuI=MK1DdgUBhg1gBhhEdmfBR`wqp?GKrTIOAF727 zr4^8e?kL3jdp(OAY?v&Yv2Cv&tX&D?A->nicL6ag1%6MWw)epN(u7Ff+@nHfvn?U% z?y0pFn(zn{sb}&`9laS&Ex2kE3Ghn#WDk^J$UEMS_TM^D?_Yk*UNSaeQ^t|4SUpd%<>#2h zx1Y_%Hm>2etz!=Jhn|XA^so)#Q%e>G?tIV@b-Tm+AAN_-qtMgqvH)s5iBCA5H2qk( zZ?`rDEKsPi#9;?0F7CKa`l*5&uu#!}(HEupz^A$e{FNoQiA5Q)K;I`$emnD-hI?V= z#Wo*WV-#*jIIA<;sf8eCm^_BjaAt)7c{L7+H4K|pRPm416^eJiHAw-{dofdKzK{jR zlr?N;m^=q_2XXPc4(d=Mu1|m@#6h^kC2MN&SmqxN)ih4dUogvCo@K>3^$dFH;_xaoV|;b%=oHxE1k54W&gIRI=k^5M57!w+TLz2WZcSu_AuO@e--Co5qh|mDT>%^t$1toWztfyOx2T2R-~8?`O`?ajCi3?u<%?s~AXzP~Az9fd%uE zL$?t>LkDQ^hygm~nq$uLn|EF!{oOanW1FdRM1|kn!dqe49p)oNf)_y$;#WDk8d>3L zFEW2_5>e>&qS00sUaziz)Q5)OD192@Oz;9hhM)3hFW^3yah4k6UQ95jbK95>@rW=W z#Eb{`O+V`B0qz%_80}YN>68AT=ZF1`p)fRr!k2fBz>r+P2&Q4Ydp?F;2NusOCN`l` zw}Bj-#GgSht9l?9v@meXG|M@X96A=$c(zCy20XRc_T#VV^PviXimQ-x^>l8 z@;EyO4Kl^R6;=q|<@bzO09wgZwL5#`-=YS#S460Itsa~RKChPHJ9B^Fy+WXlT`9e+ z7|0MsPH-M)#+ssJXwiL5n>o5Z|C}=0%&yy+zFkx&FP%wRl&Q#@i)|^AoxoeeQ3~)zKQS<$RP3H;PsrPWwOLQ1cRJ zcasfJ7)F!BPq~ybu;dzkXDuOJK+IYfRV+LtE&fZGRS?zu>G|tk-p2-t7E=qp>_FKB z^O;IqKE?)1=-D^uqTxg+9#!zYksJT zCh>Rm=ocunJFL`NZngTiOmdhuz^K9juaW!QKWW1C;(Gr-ahzStLx#kfZN1pWM8|Ro zOSHtQ2NfV1sfv|=-W<7M(^9_+Dz68+6~H8m%`k?~$oA9sMEWu{gn#<$99PUUVyzUoRkHaH%dk zu=uC={{yZBou`L@tXeu&yllgIdvkSB+1}6do%ZX9o71bk*34pD)A;JbHJnEm9+OQs zL{NgZ)=x-!6opIz)8cf)Ohx2*b>!kOZ!+x2dK>z38^niqv?*vl=+2#-^);|Msx^LD!yQ6GqiA3T`yRmB@I&{bH`r%)_Q(}~Cmeiv40y&U+v3=$ z_MlPMid54sZj{ODJ9Pq1pbM_?VlN|aZA={8kyfk&7Tcz%-^?FKJlV2;(82t!8A`A8 zKeb^dwm7g(d6H(-&^$G=P-cpQwoY3+<~?WS%3bjY1bN3@jr$__KVf(lVeVYf2Ba^- zk>thiG{j!lsPJ3}I)~PHR+kC_;kdIqeXR36#nDLq=}!j}d_csl1B^HPl7KINQZLhl zjD9wVi+Q{WS*RKhDZl;sm04&Ge`#n>h@Kl+jy|bJ$Wd-!F{&`>D3@}OXQ+@KJ43Z20PlZv^AlXu>25A0s z%25C>2OORREbDHRV%XVQh+VO!M->0#&EDD zxm#r1DE|NYEd7JfK<7C#(_(RLM1{2wz@VWN;NdXX=S^N-N|r{FZA6mQK&z>P z(m)&=`vA)aI6nB>vB?;#Vi5{3ZAvhgt<4-0i^(1(8_eIn=YxSbWt+TT;=hh{V(%)IY45*iGBgM6bUmGsF=>8wPkl zdQO9HB@g85JZWJrlf$8`B7NMdc ze%F#lnyF6olFG>cqXU;j$n0qNmaF?}v}(Ywm3y4-#_GHlfO)A1UCdjzT}jI{GJCw+ znb9S|kz=`AWdR4$f5ujs4r}?wpfN!|`lj4IdDsG%qzB3>fMqF_RNyY}l7R!;?tA~oHvNbW2?f-}o5_hIB z^F~nDMT`?cv|WRZF?8nCi2~So4P@+u87)?L4%2W2sdzD&$L+AEa|KcF$r^J&$NSm* z^1gv-_b)vPe7`gTM$uIs)Q7Nw#D3Ft31JCVrY~S|WK@Aq=s>#xwl8wu-P>NY;tY50n zdOdX9kLvcE%kd%1U~))SFeMC;kDewq=8OZEVmvbGBI02=!Nd|~qcp;RUjnHIa|CUw zF>FL&Ub5xM_x7`$r?6J*idLR@VHk1ZZvtA-6x+^TWq0~0ZbEh9@%WM0x&cmZJ=_OD zc!kwazw^ob^#|VB7vRp4-_RTk^hQDDzyGmq24%tR+lghpNXZ=y1}HzHM9|nlyA@|& zN`C{P-=QBR9jFfwo0|e!PPcfh4Oi;J#o;+P7huC)X3?U)gboVN9+ofukLE~;pD=2@ zBV|GGZ+USG2Weeuv~Cp&pR{EY`tG0H^A<9`UR#-O?cd&v|60IKHc>}({4-Tdrjj0DYOa18E1|H8XfGP5e+qIOK8+I2 ztwz@Qg`ppksT}|yg7JsL&eavZ5=j@;Vh*gTkl&J!JS8^PqFabbDNixK!xzWh6333+ z<=#rd!MW|PAE8bJE?fUfWj6$I2tQ3MzIrykzm%oxq|`yp_*dt*;9@huKMMC1#BoqD z68;3K>U@t*m{WWEEc2{$#YW^8;4$g`8^q|XX`;Ly+OE}3I~uYMO&;lY%g&~@p;hie z=kX=7+SCUm{cPEN*!f@(&wVP|d`%;~oo!poMj>k>T8X4vP8R&mKGteeWQ0q(Q!c8o{7y>F9e4Yj6-NLngWY?<%#=W0yq5T3*gg0oh^oxQ!iFo zY%e2@TpT9$mKJ#*0VlAbBuEk*WHK-sm7xI6IFwvL@Rev}{}ps!I;zv5-M+slyRhA( z;VpW??hpGE#e{GLOLXnLpg2g4#p8_C0m0wEz3XVtT&p~UT##k zu+21a6ZALzn*8==m@cs+J_ydF(B)^pPc%55Za1eb_dk(kku3f{m~aCsU?=rGI!+0Y zy+@#KdA2FC4F;qefEUrO94n@r?SO((ua!xc(bd`-e5miiV}Ad>!KPwc+R5k~04u0j z9s^g>m$r!9G)rE6Fgn64?Lsa89n_p_G?kkW^m)Fch(kz=4+i-P;MQ0Goq<^jcLnrz zFU!eRbNAdp+b!HXCdWz2k2v56Bk<2FdE1?GPK3}=9UJ-o5?rxE@Bmyqpw^Cco%qhr zq9@hSQ>aJ3>r+-at*BD_x8*`b)MCAQMxxaLb*P7zSNzso+naU{s_q29GP5l}|4{5*hCtXcf`sD@Ide#x2$JWlm@?AO)T- z8&6ween)c9BNlb~Z%$FB7ZmsjG5#N|sS{}KVNYN>PN4Q($L~L9S7?uF2)3!oj}+z8 zh8ZW^-AU{uCh4G^@%B`*-Y2<8Ncbr&gwSYID~Gn-(K|R(+!@2ISn{iUwvMpAtdpn` zOZ^C3h*&{wOGDWMQTsn>x`UcFiU4D)AV7O>hd0~pJ}};iB`wB?BVo(e;iT2Al# zw21-wKmL^g>c4OAkZwXpf}eD{>qj54bN*6qY+m18n11n}&}4bx)SG}iUKKL^vGEndJhIP@V`>R_22ir0jw;6Kbu-~ zyB|eHH;U#)4Y*UoFW1)~hD&y52(0`EgB11N{+)LeFxeYk9L?~LVcq`k@c@Qaz~lMD zVW}|as4y5wX_-Uo8q0=rhe_iM!XO;!Et@0ibNA=>>&72C*WiVFBPt*o2#p;R-CfZX$K#Ap*5XxRNZej~}7hrK1FK z(ngAN7EYJh4f>`TX;2@w`A03ZM@fm9i&OHx6w{rY`i}u~pNt9MK6GV-vP4aHF)QG= z@UNL(O+$yLBL&gj?9@+#XOQ*0Vb{E16$=ss4Aiqj+OA<*=7S(F-WwBcso)VfHov=O zmI=EE3;;N}`an9HgC#yVVytBYVoYdfv{LG^gtrhwv*&=FT*3KjpVd1m-^y=R#$gaJ z{oe=#5RHqX88|nEbF@bn2WqO{ZW@kx4%R8P zb`*ej)Vj7RR1MS&R?>+6$dc(ZerJVaNfC$K<<#-<<;~CJ7tkQ><5l4no@dji-L8Jw znJE?0xmgO-zY+EN6ziG5z=~tkkwmTz(3^rEk`PRdM7yOC~m<+6ca&0mOt~i7$ z0u<_dVKUy{OTIHwk1y>DQ7w+djSL1>GziY7o^gpuc>b5;#)n@UKu{uz^|EpAviLD6 zx+dEsX8GnWs%fP9e%eH+Rt@FDd+}%y2~1>aY-FQ6qwihc&79Wm$fW*4Mzz7+oSTzt zEC}=0q>uS$3&@W7*$uWr>$2^wGN&%5apq2jF9005O=AkJzY^?_LhQN!6Hp@b$hRFT zP>6X~Z}CKB4u$KpZhkLlka?^{B^VMebdEGde2*n59os|k{tLkFf|&zg3ILn}7y%G= zCBshzxiW0hDWN|KlpeMNLb~UJ5^-lZV4RBE%}$yg_B3<=0IP^wgM|?QAK|B=XJCm- z_}MKq!Yu@NvpV<^bX=paQ~~{=(-9tbWJoPA_D$BKN__m1{_pdXMe$fQ{tveOCN*h1 z-Fi~+@Q$d`<+(mJMzmaJvn0mjDC$S+A2d{fv}9NrG}@16qs(&nw1 za@kyMAes_!O8YkpAHhSyZA*~vQQJit2h8l<_*pMUX2Lnz&m-fB03tz+1^@x`TeC$w zr~adL13C1a($L@0W=2?jjN~_ScwxanHkTjJr!8)rpH{<#UP$mw@+ILd0`azqO%p%| zr3(IG2h?R4`d|bmWo^I&4#D->7btlF8Y@_1?1;f`2n|J-acXZ&`TCsy{$z($S)1H# zoZJ#H1`1vEL2uw)?Zm<7(rR@eMg`$H_Khy-(MTG<6W0d7d$PC;$orVr$Q^Hy`(E=p zUtbcw$d3Q1k$zDCD~NXubC3~FxjAQAX6CYTqpvTzin}uJoCD# zShpqJiUn^?PFohm*ggJc7M2zC=5x`od>3=>uH6z|LXoL-D*o&OXA|^VUk%h|D4(d= z!OX}d0L)!O|9mSFD@P)dr5BxhGel@KlJTcDKMC0u-?TqBoS<&B#{ubM=;vWKDU zi)jV*1uKi4VT?Tpl#a-6oQcln7zTSk1Gd|rGxgor(D-sd+@B^$#hH{nQLUa(XZxO& zlZasaLo$1wY+GWE9d!BXZhjUu=E*Sy#C86HJ8~dT(9MKMQfeA`*%^kw_;Upv8 zGdHn8$NjvH#a2$ZUmf{!R?n8@=yq|_16#5%5DjmRK$Lp4c~`v-?ycKqnU>WTkA5A` z!I2h^-8%1FM1MY|(JB<;C<#c@vR{pQ91Q z(3Q#S1r6;>i*!_foU_2btM52^OzpKQF#t7LYC6^kAf53@@4FWxY9Qeef!SX{HB2j& zdBM8N;_C3i_S|=ITbB`a%rPx+%rPHW{g8bhk#x>&w28}}Kxe!gy!L&z0OJw=B1q!? z=gKhU5C|U!A7|lOEqRFaZLF?`@da~t_5Z%^0GKs}l{KRAo3p&?;dcM7KizebgE|h` z^njKvGCB>)_Nyzk9>jF>Y2OR6wed&RQ49ai&^4!{g)WUtq9Is~q&Jn6>`%HmaZ9rwhYFxLy(Yu z1e+?_H;@1JZ~2R2$DJhfdS>GI`21BuR5h_^+P?b3vq82oPRYbWE|0V@Dg2=%> zznmNjrD52{%VA%T)$_u?_)tAfpGyF~4ye-m7ilxVwsCE_tprC5quJLtEih*%H4}Y{;o>DUVCm#% zn8nhtK2z@t~0g;5A5}!d__;es+>!59Pu-4!a}z zbI>sZLT738T(d=(PKK2wE$}G5x-TYi0u1Y?zyjRaS^5LCb+{7WmMk%Z^J)ymI^B$c zI8w@NBSu()V`X_NNy7(9;6=*nf@hW9%G05`ucUUTEZ}*5eDrv)VDsK3C6(Md;Il$8 zU$h=OzlpN||9-YZg?{}lRa(1{f76=o%E2;c>5kw0$#Ea11AIEXP|e?0*G9gkB~EX9 zEl6jrxMym{Dv1c<8(92^cfpaw&Yl!$S(fJQ_D6(2CAeYxnSEGfpEc+*p0Sz*$MVh? z+^dqg|HAqHu$Q^CQExipJY|^knW=kem;M4RPxvkCq!~fCfe^^7q~6NinwOa86$|6Q z+fEi3{?}rwcUuG=sE|+P9XxScE>M&+h0kKVLA&Ks_AfLW;T)&73kG6rY37baVpFWb3YJbl%a> zi`_=yeIHHIkexyW*1=Xn^w$}#6=+?C9dyQx3#vgx1WNgfDSQt4=0P#Zk>9%*)wTa5 zcmm2Q*tUUQGZ5b6rWqb*on}_6j(xWK*jF$d;tNaU6Pgp^yPb@f^+$eyTyENq(Go(` zF6&Tj-fZW7qp5EvbBT^mocZhY2iwaJQ^vE~laDN}Qgfm)Lk@S}-T;%DDLE?wX9_rU zAr0rwRbPHgd;Bu4HK!0jWI<>JK}YbxzCAxSIyG9x$sD{Zlv7CJsZ6Dk3dOy_OYdg4 zo|Sdydl>?CyAfUPVN78(3+pS*3ECyz_QE_e&)%4pqOFI1@t{)A5&;$mcKf@S&SunR zPrQ!iOnvLu?ph0jq{Q){q2I{}Lt@x1Q=*2m(g-IHu?&x$KI>Y9L&hrd3pP&NUyN?zMPW z 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 bkJ%gLuNrP `Notifications` -> `Additional settings` that cause the “Windows experience” prompts after upgrade. 4. Enable Windows Update->Advanced Options->Receive updates for other Microsoft Products. Amazingly, this is not on by default, and you might have an old WSL2 kernel! (See [Beware of Dirty Pipes](beware-of-dirty-pipes-and-docker-desktop-on-windows.md).) 5. Install important apps. I always start with these. Each of these except Discord had an ARM64 version. If on an ARM64 machine, make sure you get the right version! - - [ ] Notion - - [ ] Chrome - - [ ] 1Password - - [ ] PhpStorm (Although there are many ways to use PhpStorm on WSL2, I just open the project in `\\wsl.localhost\Ubuntu\home\rfay\workspace\` and it works great and performance is fine.) - - [ ] GoLand - - [ ] Discord - - [ ] Slack - - [ ] [Perforce P4V](https://www.perforce.com/downloads/helix-visual-client-p4v) is my favorite merge conflict resolver. -6. `wsl --install` and `wsl --update` -7. Windows Terminal is a fantastic terminal. I always set it up early with "Default Terminal Application: Windows Terminal" and "Interaction->Automatically Copy Selection to Clipboard", and set Ubuntu as default, and have it auto-start. + - Notion + - Chrome + - 1Password + - PhpStorm (Although there are many ways to use PhpStorm on WSL2, I just open the project in `\\wsl.localhost\Ubuntu\home\rfay\workspace\` and it works great and performance is fine.) + - GoLand + - Discord + - Slack + - [Perforce P4V](https://www.perforce.com/downloads/helix-visual-client-p4v) is my favorite merge conflict resolver. +6. In PowerShell, `wsl --install` and `wsl --update` +7. Windows Terminal is a fantastic terminal and is installed by default these days. I always set it up early with "Default Terminal Application: Windows Terminal" and "Interaction->Automatically Copy Selection to Clipboard", and set Ubuntu as default, and have it auto-start on login. 8. Once Ubuntu is installed: - - [ ] `sudo apt update && sudo apt install -y apt-transport-https autojump build-essential ca-certificates ccache clang curl dirmngr etckeeper expect git gnupg jq libcurl4-gnutls-dev libnss3-tools lsb-release mariadb-client nagios-plugins net-tools postgresql-client unzip vim xdg-utils zip` - - [ ] sudo snap install —classic go - - [ ] sudo snap install ngrok and ngrok config add-authtoken + - `sudo apt update && sudo apt install -y apt-transport-https autojump build-essential ca-certificates ccache clang curl dirmngr etckeeper expect git gnupg jq libcurl4-gnutls-dev libnss3-tools lsb-release mariadb-client nagios-plugins net-tools postgresql-client unzip vim xdg-utils zip` + - sudo snap install —classic go + - sudo snap install ngrok and ngrok config add-authtoken 9. In Windows Explorer, add my WSL2 home directory to favorites by copying it into the favorites area. -10. Run the [DDEV WSL2 install script](https://ddev.readthedocs.io/en/stable/users/install/ddev-installation/#wsl2-docker-ce-inside-install-script) - * On ARM64 this will fail the Chocolatey installation because Chocolatey doesn't plan to support ARM64. But you can just continue. +10. Run the [DDEV WSL2 install script](https://ddev.readthedocs.io/en/stable/users/install/ddev-installation/#wsl2-docker-ce-inside-install-script). + * On ARM64 this will fail the Chocolatey installation because Chocolatey doesn't plan to support ARM64. But you can ignore the failure; the script continues on anyway. * On ARM64, consider `choco uninstall -y mkcert gsudo` so that DDEV can get the native versions of each of these. * On ARM64, install the Windows-side DDEV from the installer in the [DDEV releases](https://github.com/ddev/ddev/releases). We'll probably discontinue documenting the Chocolatey install technique in the future.) -11. Install and test 1Password ssh agent -12. On Windows PowerShell `ssh [git@github.com](mailto:git@github.com)` to verify that the 1Password SSH agent is working. If it says "PTY Allocation Failed", just hit `` and ignore it. You should get the confirmation message from GitHub. -12. 1Password WSL2 adaptation: - - [ ] `sudo ln -s /mnt/c/WINDOWS/System32/OpenSSH//ssh.exe /usr/local/bin/ssh` (Makes ssh use `ssh.exe` on Windows and the 1Password SSH and Git integrations then work great. This assumes that `/usr/local/bin` in your PATH comes before `/usr/bin`) -13. If you have a `dotfiles` repository (containing your shared `.bash_profile`, `.zshrc`, etc) clone it into your projects directory on WSL2 your WSL2 home directory. -14. Check out DDEV. -15. `echo "capath=/etc/ssl/certs/" >>~/.curlrc` to make Curl work right. -16. GoLand setup: - - [ ] Set GOROOT to /snap/go - - [ ] For ARM64 you have to do `go install [github.com/go-delve/delve/cmd/dlv@latest](http://github.com/go-delve/delve/cmd/dlv@latest)` and put this in IDE properties (under help)`dlv.path=//wsl.localhost/Ubuntu/home/rfay/go/bin/dlv` -17. DDEV repository setup - - [ ] .githooks/linkallchecks.sh - - [ ] Install `golangci-lint` for `make staticrequired`: `go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest` ) +11. Install and test the fantastic [1Password ssh agent](https://developer.1password.com/docs/ssh/agent/). +12. On Windows PowerShell `ssh git@github.com git@github.com` to verify that the 1Password SSH agent is working. If it says "PTY Allocation Failed", just hit `` and ignore it. You should get the confirmation message from GitHub. +13. 1Password WSL2 adaptation: + `sudo ln -s /mnt/c/WINDOWS/System32/OpenSSH//ssh.exe /usr/local/bin/ssh && sudo ln -s /mnt/c/WINDOWS/System32/OpenSSH//ssh-add.exe /usr/local/bin/ssh-add` (Makes ssh use `ssh.exe` on Windows and the 1Password SSH and Git integrations then work great. This assumes that `/usr/local/bin` in your PATH comes before `/usr/bin`) +14. If you have a `dotfiles` repository (containing your shared `.bash_profile`, `.zshrc`, etc.) clone it into your projects directory on WSL2 your WSL2 home directory. +15. Check out DDEV. +16. `echo "capath=/etc/ssl/certs/" >>~/.curlrc` to make Curl work right with `mkcert`. +17. GoLand setup: + - Set GOROOT to /snap/go + - For ARM64 you have to do `go install [github.com/go-delve/delve/cmd/dlv@latest](http://github.com/go-delve/delve/cmd/dlv@latest)` and put this in IDE properties (under help)`dlv.path=//wsl.localhost/Ubuntu/home/rfay/go/bin/dlv`. +18. DDEV repository setup + - Run `.githooks/linkallchecks.sh` + - Install `golangci-lint` for `make staticrequired`: `go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest` ) + +We'd love to hear your own hints and tips on how you set up a Windows machine (or any other computer!). You can contribute to this article with a [PR to the blog](https://github.com/ddev/ddev.com) or make your suggestions on [Discord](https://discord.com/invite/5wjP76mBJD). We welcome guest blogs too! Follow our [blog](https://ddev.com/blog/), [LinkedIn](https://www.linkedin.com/company/ddev-foundation), [Mastodon](https://fosstodon.org/@ddev), [X,](https://x.com/randyfay) and join us on [Discord](https://discord.gg/5wjP76mBJD). And we'd love to have you sign up for the [monthly newsletter](/newsletter). \ No newline at end of file From d4e4a2748f0c78d3fe0f172ad3bd5f3b8cb1054f Mon Sep 17 00:00:00 2001 From: Randy Fay Date: Sun, 3 Nov 2024 10:11:46 -0700 Subject: [PATCH 4/6] @rpkoller suggestions, thanks. --- src/content/blog/windows-ddev-setup.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/content/blog/windows-ddev-setup.md b/src/content/blog/windows-ddev-setup.md index a30ee663..89e2dd91 100644 --- a/src/content/blog/windows-ddev-setup.md +++ b/src/content/blog/windows-ddev-setup.md @@ -13,9 +13,9 @@ categories: I've recently set up a few Windows machines for DDEV maintenance and development, and wanted to share how I do it. It's surprisingly easy. My approach here is opinionated, but it works for me. You'll do things a little differently I'm sure. -Two recent Windows machines I set up were the new ARM64/Qualcomm/CoPilot variety. They were excellent and fast and had great battery life. There's very little I had to do differently with them, but I'll mention in the steps when there was something different. (I was surprised by the lack of a fingerprint sensor on both, but the Windows Hello facial recognition was quite fast. There is no ARM64 Discord app, and the AMD64 one had horrific performance.) +Two recent Windows machines I set up were the new ARM64/Qualcomm/CoPilot variety. They were excellent and fast and had great battery life. There's very little I had to do differently with them, but I'll mention in the steps when there was something different. (I was surprised by the lack of a fingerprint sensor on both, but the "Windows Hello" facial recognition was quite fast. There is no ARM64 Discord app, and the AMD64 one had horrific performance.) -1. Remove unwanted applications. I usually start by removing a bunch of bloatware. +1. Remove unwanted applications like Solitaire and MS Office. I usually start by removing a bunch of bloatware. 2. Do all Windows updates. 3. Turn off the `System` -> `Notifications` -> `Additional settings` that cause the “Windows experience” prompts after upgrade. 4. Enable Windows Update->Advanced Options->Receive updates for other Microsoft Products. Amazingly, this is not on by default, and you might have an old WSL2 kernel! (See [Beware of Dirty Pipes](beware-of-dirty-pipes-and-docker-desktop-on-windows.md).) @@ -37,14 +37,14 @@ Two recent Windows machines I set up were the new ARM64/Qualcomm/CoPilot variety 9. In Windows Explorer, add my WSL2 home directory to favorites by copying it into the favorites area. 10. Run the [DDEV WSL2 install script](https://ddev.readthedocs.io/en/stable/users/install/ddev-installation/#wsl2-docker-ce-inside-install-script). * On ARM64 this will fail the Chocolatey installation because Chocolatey doesn't plan to support ARM64. But you can ignore the failure; the script continues on anyway. - * On ARM64, consider `choco uninstall -y mkcert gsudo` so that DDEV can get the native versions of each of these. + * On ARM64, `choco uninstall -y mkcert gsudo` so that the DDEV installer can get the native versions of each of these. * On ARM64, install the Windows-side DDEV from the installer in the [DDEV releases](https://github.com/ddev/ddev/releases). We'll probably discontinue documenting the Chocolatey install technique in the future.) 11. Install and test the fantastic [1Password ssh agent](https://developer.1password.com/docs/ssh/agent/). 12. On Windows PowerShell `ssh git@github.com git@github.com` to verify that the 1Password SSH agent is working. If it says "PTY Allocation Failed", just hit `` and ignore it. You should get the confirmation message from GitHub. 13. 1Password WSL2 adaptation: `sudo ln -s /mnt/c/WINDOWS/System32/OpenSSH//ssh.exe /usr/local/bin/ssh && sudo ln -s /mnt/c/WINDOWS/System32/OpenSSH//ssh-add.exe /usr/local/bin/ssh-add` (Makes ssh use `ssh.exe` on Windows and the 1Password SSH and Git integrations then work great. This assumes that `/usr/local/bin` in your PATH comes before `/usr/bin`) 14. If you have a `dotfiles` repository (containing your shared `.bash_profile`, `.zshrc`, etc.) clone it into your projects directory on WSL2 your WSL2 home directory. -15. Check out DDEV. +15. Check out DDEV's code. `mkdir -p ~/workspace && cd ~/workspace && git clone -o upstream git@github.com:ddev/ddev` 16. `echo "capath=/etc/ssl/certs/" >>~/.curlrc` to make Curl work right with `mkcert`. 17. GoLand setup: - Set GOROOT to /snap/go From 74037f38f117d674552c9f4ce86a6390245a9883 Mon Sep 17 00:00:00 2001 From: Randy Fay Date: Mon, 4 Nov 2024 06:58:49 -0700 Subject: [PATCH 5/6] @stasadev suggestions, thanks! Co-authored-by: Stanislav Zhuk --- src/content/blog/windows-ddev-setup.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/content/blog/windows-ddev-setup.md b/src/content/blog/windows-ddev-setup.md index 89e2dd91..1f047440 100644 --- a/src/content/blog/windows-ddev-setup.md +++ b/src/content/blog/windows-ddev-setup.md @@ -31,9 +31,9 @@ Two recent Windows machines I set up were the new ARM64/Qualcomm/CoPilot variety 6. In PowerShell, `wsl --install` and `wsl --update` 7. Windows Terminal is a fantastic terminal and is installed by default these days. I always set it up early with "Default Terminal Application: Windows Terminal" and "Interaction->Automatically Copy Selection to Clipboard", and set Ubuntu as default, and have it auto-start on login. 8. Once Ubuntu is installed: - - `sudo apt update && sudo apt install -y apt-transport-https autojump build-essential ca-certificates ccache clang curl dirmngr etckeeper expect git gnupg jq libcurl4-gnutls-dev libnss3-tools lsb-release mariadb-client nagios-plugins net-tools postgresql-client unzip vim xdg-utils zip` - - sudo snap install —classic go - - sudo snap install ngrok and ngrok config add-authtoken + - `sudo apt update && sudo apt install -y apt-transport-https autojump build-essential ca-certificates ccache clang curl dirmngr etckeeper expect git gnupg jq libcurl4-gnutls-dev libnss3-tools lsb-release mariadb-client nagios-plugins net-tools postgresql-client unzip vim xdg-utils zip && sudo apt upgrade -y` + - `sudo snap install --classic go` + - `sudo snap install ngrok and ngrok config add-authtoken ` 9. In Windows Explorer, add my WSL2 home directory to favorites by copying it into the favorites area. 10. Run the [DDEV WSL2 install script](https://ddev.readthedocs.io/en/stable/users/install/ddev-installation/#wsl2-docker-ce-inside-install-script). * On ARM64 this will fail the Chocolatey installation because Chocolatey doesn't plan to support ARM64. But you can ignore the failure; the script continues on anyway. @@ -42,16 +42,16 @@ Two recent Windows machines I set up were the new ARM64/Qualcomm/CoPilot variety 11. Install and test the fantastic [1Password ssh agent](https://developer.1password.com/docs/ssh/agent/). 12. On Windows PowerShell `ssh git@github.com git@github.com` to verify that the 1Password SSH agent is working. If it says "PTY Allocation Failed", just hit `` and ignore it. You should get the confirmation message from GitHub. 13. 1Password WSL2 adaptation: - `sudo ln -s /mnt/c/WINDOWS/System32/OpenSSH//ssh.exe /usr/local/bin/ssh && sudo ln -s /mnt/c/WINDOWS/System32/OpenSSH//ssh-add.exe /usr/local/bin/ssh-add` (Makes ssh use `ssh.exe` on Windows and the 1Password SSH and Git integrations then work great. This assumes that `/usr/local/bin` in your PATH comes before `/usr/bin`) -14. If you have a `dotfiles` repository (containing your shared `.bash_profile`, `.zshrc`, etc.) clone it into your projects directory on WSL2 your WSL2 home directory. + `sudo ln -s /mnt/c/WINDOWS/System32/OpenSSH/ssh.exe /usr/local/bin/ssh && sudo ln -s /mnt/c/WINDOWS/System32/OpenSSH/ssh-add.exe /usr/local/bin/ssh-add` (Makes ssh use `ssh.exe` on Windows and the 1Password SSH and Git integrations then work great. This assumes that `/usr/local/bin` in your PATH comes before `/usr/bin`) +14. If you have a `dotfiles` repository (containing your shared `.bash_profile`, `.zshrc`, etc.) clone it in WSL2 . 15. Check out DDEV's code. `mkdir -p ~/workspace && cd ~/workspace && git clone -o upstream git@github.com:ddev/ddev` 16. `echo "capath=/etc/ssl/certs/" >>~/.curlrc` to make Curl work right with `mkcert`. 17. GoLand setup: - - Set GOROOT to /snap/go - - For ARM64 you have to do `go install [github.com/go-delve/delve/cmd/dlv@latest](http://github.com/go-delve/delve/cmd/dlv@latest)` and put this in IDE properties (under help)`dlv.path=//wsl.localhost/Ubuntu/home/rfay/go/bin/dlv`. + - Set `GOROOT` to `/snap/go` + - For ARM64 you have to do `go install github.com/go-delve/delve/cmd/dlv@latest` and put this in IDE properties (under help) `dlv.path=//wsl.localhost/Ubuntu/home/rfay/go/bin/dlv`. 18. DDEV repository setup - Run `.githooks/linkallchecks.sh` - - Install `golangci-lint` for `make staticrequired`: `go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest` ) + - Install `golangci-lint` for `make staticrequired`: `go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest` We'd love to hear your own hints and tips on how you set up a Windows machine (or any other computer!). You can contribute to this article with a [PR to the blog](https://github.com/ddev/ddev.com) or make your suggestions on [Discord](https://discord.com/invite/5wjP76mBJD). We welcome guest blogs too! From df861bb69df06c5170e12d656de3e4855a1994b0 Mon Sep 17 00:00:00 2001 From: Randy Fay Date: Mon, 4 Nov 2024 07:04:17 -0700 Subject: [PATCH 6/6] More @stasadev fixups, thanks! Co-authored-by: Stanislav Zhuk --- src/content/blog/windows-ddev-setup.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/content/blog/windows-ddev-setup.md b/src/content/blog/windows-ddev-setup.md index 1f047440..d869b663 100644 --- a/src/content/blog/windows-ddev-setup.md +++ b/src/content/blog/windows-ddev-setup.md @@ -32,8 +32,8 @@ Two recent Windows machines I set up were the new ARM64/Qualcomm/CoPilot variety 7. Windows Terminal is a fantastic terminal and is installed by default these days. I always set it up early with "Default Terminal Application: Windows Terminal" and "Interaction->Automatically Copy Selection to Clipboard", and set Ubuntu as default, and have it auto-start on login. 8. Once Ubuntu is installed: - `sudo apt update && sudo apt install -y apt-transport-https autojump build-essential ca-certificates ccache clang curl dirmngr etckeeper expect git gnupg jq libcurl4-gnutls-dev libnss3-tools lsb-release mariadb-client nagios-plugins net-tools postgresql-client unzip vim xdg-utils zip && sudo apt upgrade -y` - - `sudo snap install --classic go` - - `sudo snap install ngrok and ngrok config add-authtoken ` + - `sudo snap install --classic go` + - `sudo snap install ngrok and ngrok config add-authtoken ` 9. In Windows Explorer, add my WSL2 home directory to favorites by copying it into the favorites area. 10. Run the [DDEV WSL2 install script](https://ddev.readthedocs.io/en/stable/users/install/ddev-installation/#wsl2-docker-ce-inside-install-script). * On ARM64 this will fail the Chocolatey installation because Chocolatey doesn't plan to support ARM64. But you can ignore the failure; the script continues on anyway. @@ -43,7 +43,7 @@ Two recent Windows machines I set up were the new ARM64/Qualcomm/CoPilot variety 12. On Windows PowerShell `ssh git@github.com git@github.com` to verify that the 1Password SSH agent is working. If it says "PTY Allocation Failed", just hit `` and ignore it. You should get the confirmation message from GitHub. 13. 1Password WSL2 adaptation: `sudo ln -s /mnt/c/WINDOWS/System32/OpenSSH/ssh.exe /usr/local/bin/ssh && sudo ln -s /mnt/c/WINDOWS/System32/OpenSSH/ssh-add.exe /usr/local/bin/ssh-add` (Makes ssh use `ssh.exe` on Windows and the 1Password SSH and Git integrations then work great. This assumes that `/usr/local/bin` in your PATH comes before `/usr/bin`) -14. If you have a `dotfiles` repository (containing your shared `.bash_profile`, `.zshrc`, etc.) clone it in WSL2 . +14. If you have a `dotfiles` repository (containing your shared `.bash_profile`, `.zshrc`, etc.) clone it in WSL2. 15. Check out DDEV's code. `mkdir -p ~/workspace && cd ~/workspace && git clone -o upstream git@github.com:ddev/ddev` 16. `echo "capath=/etc/ssl/certs/" >>~/.curlrc` to make Curl work right with `mkcert`. 17. GoLand setup: