From 4c918d23c1d9db89b80a0c99b5b013864e7527f9 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 26 Dec 2023 19:41:44 +0000 Subject: [PATCH] Commit from GitHub Actions (Render and deploy Blog) --- docs/books.html | 16 +- docs/christianity.html | 8 +- docs/gratitude.html | 6 +- docs/index.html | 144 ++-- docs/listings.json | 39 +- docs/lists.html | 2 +- docs/posts/writing-is-enlivening/index.html | 712 +++++++++++++++++ docs/posts/writing-is-enlivening/photo.jpeg | Bin 0 -> 285251 bytes docs/search.json | 821 ++++++++++---------- docs/sitemap.xml | 220 +++--- 10 files changed, 1364 insertions(+), 604 deletions(-) create mode 100644 docs/posts/writing-is-enlivening/index.html create mode 100644 docs/posts/writing-is-enlivening/photo.jpeg diff --git a/docs/books.html b/docs/books.html index 9d2410329..ba34c7693 100644 --- a/docs/books.html +++ b/docs/books.html @@ -253,7 +253,7 @@

Book Reviews/Notes

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

diff --git a/docs/christianity.html b/docs/christianity.html index c9144c4ca..b3f9ebac2 100644 --- a/docs/christianity.html +++ b/docs/christianity.html @@ -255,7 +255,7 @@

Christianity

-
+
-
+
-
+
-
+

diff --git a/docs/gratitude.html b/docs/gratitude.html index ce5b4cacd..ea64c51e4 100644 --- a/docs/gratitude.html +++ b/docs/gratitude.html @@ -254,7 +254,7 @@

Gratitude

-
+ -
+ -
+
-
+
+ +
+

+Writing is truly enlivening +

+
+ +
+
+
+communication +
+
+writing +
+
+ +
+ +
+
-
+
-
+
-
+
-
+
@@ -447,7 +483,7 @@

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

 
diff --git a/docs/listings.json b/docs/listings.json index db1bd3820..df72156f1 100644 --- a/docs/listings.json +++ b/docs/listings.json @@ -8,28 +8,10 @@ "/christianity/2023-12-13-three-little-pigs/index.html" ] }, - { - "listing": "/lists.html", - "items": [ - "/lists/ai/index.html" - ] - }, - { - "listing": "/books.html", - "items": [ - "/book-reviews/2023-12-19-101-essays-to-change-the-way-you-think-by-briana-weist/index.html", - "/book-reviews/2023-12-23-dune/index.html", - "/book-reviews/2022-06-24-getting-things-done/index.html", - "/book-reviews/2023-12-18-hitchhiker's-guide-to-the-galaxy/index.html", - "/book-reviews/2023-12-12-scientific-freedom/index.html", - "/book-reviews/2023-12-23-the-best-of-edgar-allen-poe/index.html", - "/book-reviews/2023-12-22-the-killers-of-the-flower-moon/index.html", - "/book-reviews/2023-12-20-the-little-red-hen/index.html" - ] - }, { "listing": "/index.html", "items": [ + "/posts/writing-is-enlivening/index.html", "/posts/write-despite-ai/index.html", "/gratitude/2023-12-26-i'm-grateful-for-blankets/index.html", "/gratitude/2023-12-25-grateful-for-doctors/index.html", @@ -85,6 +67,25 @@ "/posts/2016-11-07-starting-with-jekyll/starting-with-jekyll.html" ] }, + { + "listing": "/books.html", + "items": [ + "/book-reviews/2023-12-19-101-essays-to-change-the-way-you-think-by-briana-weist/index.html", + "/book-reviews/2023-12-23-dune/index.html", + "/book-reviews/2022-06-24-getting-things-done/index.html", + "/book-reviews/2023-12-18-hitchhiker's-guide-to-the-galaxy/index.html", + "/book-reviews/2023-12-12-scientific-freedom/index.html", + "/book-reviews/2023-12-23-the-best-of-edgar-allen-poe/index.html", + "/book-reviews/2023-12-22-the-killers-of-the-flower-moon/index.html", + "/book-reviews/2023-12-20-the-little-red-hen/index.html" + ] + }, + { + "listing": "/lists.html", + "items": [ + "/lists/ai/index.html" + ] + }, { "listing": "/gratitude.html", "items": [ diff --git a/docs/lists.html b/docs/lists.html index 5aaca58c1..684e20120 100644 --- a/docs/lists.html +++ b/docs/lists.html @@ -252,7 +252,7 @@

Lists of Things

-
+

diff --git a/docs/posts/writing-is-enlivening/index.html b/docs/posts/writing-is-enlivening/index.html new file mode 100644 index 000000000..7181c6615 --- /dev/null +++ b/docs/posts/writing-is-enlivening/index.html @@ -0,0 +1,712 @@ + + + + + + + + + + + + +Bryan Whiting - Writing is truly enlivening + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+
+
+

Writing is truly enlivening

+
+
+

Write in public. Write daily. Write about nothing.

+
+
+
+
communication
+
writing
+
+
+
+ + +
+ +
+
Author
+ +
+ +
+
Published
+
+

December 26, 2023

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

+
Hamilton is running out of time
+
+
+

I’ve been writing for my whole life. I have at least 15-20 journals. I have 3000 notes in one app, 2200 notes in another, at least 1800 digital journal entries over 10 years, I’ve built and replaced probably 5 blogs. This blog has 57 entries so far. What have I learned?

+
    +
  1. Make writing daily as easy as possible. I set up some automation so I can write from my phone for daily blogging.
  2. +
  3. Writing makes things feel real for me. It helps connect the dots. It’s a far more productive way to read the news. Less stuff, more thinking. Because if I can’t write at least one useful note about something I read, I realize it wasn’t worth reading.
  4. +
  5. Perhaps reading is the more important daily duty. Well, to write I need something to inspire me. Usually that comes from the news. Sometimes inspiration comes from yesterday’s post. This inspiration came from editing my prior post.
  6. +
+

I’m not gonna worry about who reads this. But instead focus on writing every day because…

+
    +
  • I think it helps me practice storytelling
  • +
  • helps me practice communication
  • +
+

Hamilton wrote like he was “running out of time”. I’m writing because I want to use my time how I enjoy it.

+
+ + + +

_________________________
For coaching on data analytics or machine learning, reach out.

+ + + + +
+ + + + + + + \ No newline at end of file diff --git a/docs/posts/writing-is-enlivening/photo.jpeg b/docs/posts/writing-is-enlivening/photo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..91d602d5eddd12cab2436d9eae254635ed9adaa7 GIT binary patch literal 285251 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ĂF1qh! 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�uKs~C4v-;g>r2*+>%wrxgr-!K59K4 zVR*^(jc_VQK{vgsB6*pQC05`9VEo>A*kZs)Y&=B2YMOiIwNoF+)qhR>cV4CZHD9K^ z*p*=DwHK8Dn*B-uyH>(A@#`(kde3^iz9R|+_hXf$mqGC}Gwl8eD87mq+y~NyPgU#W z(Q(7K+c)BhEkdmc;YREPOQ|5AP z3zT12A zjq>O6N=wmj6`5UX!SciJ4%8JJol&Sm9poU_V#o}-QXT>%)5 zhbIX{5aETx+9psUWERTRnp|C2%u4UBlKFvDf)-voAthNV=Cu#=iU!57E81A?n?jz! z#7efVPQd8`ehQyQe7<9Q11$Vcoxu~*B6twO!CU7q6K7w`tT;Rdh;yxRUY?M(Ot8V9 zQ|_ZBdSbxR*Xg5UgP-${Oawj%Yotaaa(kcdc!s!so%DqZ#W8x^>oCLS`6{#e@nEKh zkhdrveZdSG!KQikhQ zPUCoskokWFwTL?@povFUAK-oytJ<@Aa|D>AYxy`X8z{= z!G^$XMP|yfKw#ulj{(6B93$^|q;z)WFU)Vs>`w7iK21`F1dL>yTal@u*wGu#OVvlA zij$?|t=eUaOQ@QlCFSmeE}?g(-oK|`+6BE%o=S%1KtOeYFpF|xjYX5gNxYFEs#ShF zonKgE&9>h6qp_3vqXk7WRq+>NUm@KgO`#AV1(3T9<*pOLuIyhYPVD;CR~6FU-#m|M ztW$Y??IOj#t_0s;9uLzAE|SCw{A~}0P#w995pp5~x)I?lGNzCNmI=&gE$@EFugUc% zkR@mup&|=LwIUw)K95*Gb=N9_M#5izW> z$?s1Zhrz2txN#b!o9wHtaNG>ge~q88{}c6sAcK@-9Al&Wl}rq`A->STG1_|ICHjKL zQ<`&3R$?=eEF?pMTW7<$dKHdVO%;s2;b+r#IRzjO4g`8U7=a$NV4g{Xg7G60D-PD= zFXLV9b5y6F2UJpy`g-Pp#7Yz<6f(_C_0jw1g5|8_ZHDttkviKsjh_MB&LyR0!}!t9 z`wyADKIA)0HLV_=n_<>O)VUYV#isDyF`*L`l~y9qe_kiHOsQ)(wF&b=|wG7v6f}1GS3kSgl@M{%xd}xQ&TW)1J3c*Uxu>eF;(x z;t#6csRTT+pxA3#Cf{g2Yjq$9V%me$D~bYsY#5I3W)3hmEXEJ1mq% zY$b<%x4#T<^>Z5)(<1j)kQ0p{itS1#fBzHqQW3F8-?uW8Esr{rvlBo+IWzY2M1$O< zgF`itrrx*@$H{pxS$0T=RtV=uplpP`NOgs7PJ@6xKS&7OQIsv2q2U{ngGK4GK z-$stygVu5lePxijtAUQA?Fo~=j}jdxNw}c|{@JpkeRF0))CZ-%fK#oU-##e^rsdJWERQk_}v^S%FQk&aM%ZmT!u+v9fpg5yA}i91EQ7_LH~XJ?imQd=c@Q~g+;=gxcEv*i&hpr9%P zd=t1*Q{XHwU4Cb?`4jzo{m!yL_jhbT>G zytinsK%kuvbi`Ef4WeUDhDQ8x^oI89281q~1?vjK0QGZIPFQYi(1)1VEC_}RqFhfDKE1F_ii(l9LdvEiLP5QS>^V=sCZ|cD8WWJwirm0J+RRZZ1?heLK z--b^~dKWz!ZJ|K}*!?*&Rc&k!`5}-+VgAl<`gN?lKF6LwRVnp84U4)eZH z4KTvJ1faYF^El;&k)$nJB|jm~`th2tU4s2zQuut|ITZLAu16Vlc4K)>yr1TsM0Kf9 z;z1u5MQm|KxH5Nemd#%`@n;&Q(ej#v%RQ^hQnOFQ$(5yOKro5iz>e-5zs(WGEI&|e z)328jVNtfly-!IsS^b>MmpJm?_BK&~ppBCb%RGrEI5?Bp#LJg%J0<1Q2+}8sm47#x z0}(Vh7`HA<{_#&sL2eUmA=I#kHC6bfNGZA5jg&j8MRQ$uh9uDzR+J(iwYGG8ysgh% zVpC1qX3xqlOt+d@b~^AtZ=A}9AhHCpg`lKi_lp?w&wgFA;9d^RYqo>36i=l(9xH*aUe+9vJjx%E!)K=q8>*@b)Uu8)|xVS-UC~nzj~Dw zAo>^+M}<58&>VSNcvjhGceke&(4E708bEtY9&gkEB}p@} zRU=WI-WL-KLuA(WDJ5mD&h%2U1;s^M0;DX&<3g0As-yj~jVO}?z~Qf6{E30y@VV=qRwFsz@bh5(71de{R)u*n zo^d7Zs64}{OY~%hP#rP@@FY;S* z7?q*kn76GY*7fiwF&v6PrW_g$GLnaRMG!>#Qh+Qh*)m23L#;M%tCy6fOqOg?f#rJ-GXk72vG}=fhf*H2?i01w+>O6Q&hkGA_)RCdwK0K8X8vfw zja%Idq;@!#UWe1vZiA_bMtb;!Z(&xOWBG4&b6$tN1#Zm;c?a8Yej*#iG;VD~S;mrA znnN+AE|!%xZ%3bQ<{iQSsu(cQ;o);4cw_JQh&dOy=?wmj0{f|I#~X2&1eecz&&uWQ z*L5n2BXe?Os{WLJ3K;-lM|_rQKs}q}tFRz^MR#gq-UKjfINRJD9^p#URh1qEe{|9h zStvm=?k0(-n@>3ed)xB9FBDl%^QXL=y<&O6$>q<&#+yn1O#0R4(A!Wz674WX(OSV? zTxOf$LStEz&G4KhA)Mm}qjsJqqIVx}eP>E0Q|?3KY-ySjwmTKnx;c3oo|E+5AcJTa z`prJGC3y^9xtQr%(J;4>{JdqXj$+|uePUgcfbw7j&^VP-ruc*~+UY^}uNfUD%o!li z?a$(OZd-^}a#k)Kx%;JGRWK=Iv_^%peXQ*6+f(o-B#0Q%4tmrOP(qF!^yu2HUWt0PQGhUbJDj*mWF)l;B;Nm&VdYmMVwRv><^gI9J{7_u> z?>7)H`g<3{)L#-*Y{f4U9SN!@*K5awTV?HVqqnS_O~r+o@qzeH&!2|f*x$%X9$0Uw z3J~=jDIl+`rOG5Qz$%NxF8oda7ylqfasR`}V;~;w-`m{x;jL1sLY&cTSMvP&p&Jme zxz*;62TEuOQrC|zpOQ@5>fj z23P*0fJrhzQUaD@AQ(~ z{aUJviuY_@-!YR4`|aR45A2L?da+g`n_gSf!M4%FOm*QQzxa@8Vaa_%)a&lIogCgWt`*9+o=bLbrXR^ zhA+zgzU4vbunK2shvClG#3-Y*q|ugH@P9J|Z5@u2C*$Qg7Ike*UnnSG=M1TX9F`TW4L$JcDGvLw_#wiAIg$H zf%^)JN%ufI@4h-?#sq;r+IfKVP;g1ig*}=e$zMH6w#4wnhRHvWqDEY7 zHO0%GydYi>=$Ti5-6DbiuK-oZ!p4b7mCv6`)bRw(G+DC7f>J)CCM6Af0 zn)8CsZ-paz+lF2c1A(Xgc?54mb<|BSiAJ{L4dhI-!*OI87t60p`jx5Q5_4XyPKOY^ zLkKlg@A4-pm_r?j&vq#hU#sw)srelAR_+Odu*?cy;B$=9DJnACHJ%@F?Ct1WO7TF`*5quSXlN)l7yBl;=%g6H&Q$sc>06!+&H zPK+iSGjZuPkKqwu z4kbn=WDIVdIzQ2H?nJ_~T7&00*x$Z!^cm%AGZQzrVvBn<bYlL= z?iLY-PK+;eQCv1e_|vI%OsiEvm++kSobxHSy*2%}lVOvqk6y`oe^fZB_yiLx2*}v) zs+Y}?m|E;yH@`E)nat$rDeJ+eU!>er!6BXhH4_nnHV&!Rjx8~avvHa|H;>_faJmUg zjVQkCGxcOekb=*Rkq($!Y16GnT(z#J5!JsUD97SVqIXdovkU-`QaXr(Bog3~a4GS<5alpRAv0)Fr3?)2n=oYtTB=LJozXCFrfW2lp-+vTF`T@a)_?PT3{Vj!Sn6&W?vV|lScVj=(jB17D{goH^ z``%+icU?&xQfjqs%w8u7RN+#yS855nBdPMk3{8}H1Dm9Px}yL>Az)GnP{4k;YNUXs zsuN9fF-pKF9)D3}?S-_mtVUL-R?J5?z25Q0i#Ln$Z&+80H4j26)m_#M+C(j*wL72; zqDspC@FG>XYY6RX86-3C-I#`OdFZPO?yF#ZUFr>{Z3ZjnpabFa{ZDV7e|;|!Kg{CP zeyUk$^7foJ+4kvjh*$4n&mvDffi|B76v*D^{!-J1_a$TXLWjCx@Q0SaW+5KSArk6- z__w90lkNizS{ePx|J+s`7~$;}I!+Uo%nLb@@2b2?;o!E2K(lKPwn)GMn=&>#< zcZh@#)JiYj@-_G^0UGs=Wc5lRofj&F&?l@qlCKJ-PtoPQ<*g;W&Gy*_>(xFNy$?Of z^A!Yi&?}DTGm8jZ%e+M@rt7@!xUeIcU2e)wXx~j`c8czTF0}6J*Jk!&Xm00b^Lk3r zV&i!JG)ZdhQyRPQ!CxBJFA6(J^lfxk^Q^1M z&t~J0$%D*HdwJQUW2IF~xIYiWg~;ut%5cq5T{Tu|l-^<2=-dBLZwUjjeDtN3zM3~2 z88GqCpwC)cXgThv6Io#Qa8M5`*==l~bzps1M8NFw;$F*S_#T%>mNz=p23x$&q^e9@ z2vb?Ur461eXntF}7U!k|dR5?ko4t6ZCW2)*0VtMDz~Eh3LZL+1af& zP5s`_5Ah`ESgE-Vn1d87%tjIxKJ!o@YQ=lKg#NU0Tqwab8XH;W>YJD|vsiMpAHGTE z^0LJb_HD=H5%&LYE%YWjmX8v2mwJm-jieSCruLuvrCsQHGnfYk^I5;~7ZTNwD_|Ac z^P28^K^`=b&)oIFES%SD?o*N;;#s=h2Q1zk$4=7yFerSSZm#)@uH&K)_Hdw`)7$pV zg*nl1sT*E{i8J-FQ%QLzt>|nN6^R@8R5kd?>((-v=}05;*cIq)3DzRqNVS*Ah$xlp zSsmC=XBy)w5g=T@XgVoHM_aOx_`tL#TKwj6+h{Y!j zN|uW}9Z3`GT$x{vJkmqoRG`Q#BqKN{|7cXJQ6VG}=A3`qMd9U0uKHBg0e75b=g zf62heeZKEPLhALU9Q}u2A7N^euL_ec1?ko663+-kTAnVsXueTRF@#BKF;8 zqm;tBtulC7b-nT#itw45<1$;CrH_{7=+}RMjq}H0>k3GZPYfSe-~X!6nzP32pqmeR zH7Erge9L`)HdI!H_A-H<%tCCy>FunP{{CS@w*|SgIicBcEh9AdmQ;Ll`^{&`#Ef;7 z`y?14YFDJf6-@~++_xK#MyWQdltRS_t;=O~*+nWYmMTx|2U)Mm!?B%fC0UnsC>mE4 z;mcwa6Vdw#fg`|h5*PZZStU2uRok*ck<#FZO)Z{I9m z0kBc34G1L@0_77U2`vTaLLaMqu;MfWf9HqAN3xM8qXhxe1jApuvZ%gEJ1^pR$)hf3 z{!<|J!M-Kl0~EEtcKcRtAewv54O)Zp0`lYl5lT?OxtfRv1oupEv^bFNKoQ5|4)rUC zActKWV8WRD%$w(3V5K8r5Cb8o-;{>3S`!@&Q_7ZS zgiY6f`&^7$&knS)g|s^m&9YqBdrL|K;D&hHI<^{uOvK|v`bN9=?`E%ud`rliX(02v z>J!7;7nzCCum2!lq>6jy?F+t;c~LY;6?5t|zV;P7bgXwI|LgZ=p}p!4075fcUY@?P z&%~uZ`n2)7_to3|>Q}BjTV0vTI1dtwMAIpWUA3Bb7GGT8IV%^{$}n?Z-B<%Zp{Te= z1bap9+qQroyY}z`xo$sk()Qeg7TI@`Rll{sDY}BS75&*sySYO*1@_q_=V#U5yLsH@ z@u6l9gS=QJsX2I*IGtMB4AA%7zhl09jW_!*p`)Xa*wDMkg->b7EM54NNKCkUR`@07 zgTA*7IEqY3ME9Lrt0)oo`A563Kk`Pftn-WO-JHUyLq9@HE*8DRw|bOC`?A6RQ6w(!e)_Ur5_O>%CRg#7R@`@WI_w0Xe z6;cY4jTBZN@Ey<>_o7=8(~F4YhY{B69k{~jKg^PNE;B?nYMKbs3#~Jz65WRbKcVuC zQ~N1*zgSwRyaK(t+6#$r-QM-@tOp7#NZNK-At%%MjvUrUe1z`Y`;F;0cpIL4r-+`e znol_1gfQ%vNr9s*7gl~I%*~BQPA^~Yl|ksrRlJZ&`in1dOyPIxQwI_{WXHAgmfXbv zj41@<6Wml=_CU%)dgK{peMk~)z`;WRFPXa_mG|}K!!8+B_!|$(*?bo+sjS}2X*TUG8w-3WlGTg+L5xdZWfZ`nic8@rc z)QKPd&y&~Q{%?FZhT<7HcfZKKlH7zAGxRsZQ7ak2lX_&cNhbRLf<$fGa8; z)q|j&KbymJUOrQHdlrt;<_t8ex_#Bt;ofMq$&hhCpeer~!D#lMH~CsPZX-5F-lJB? zm4@>wqTD(*{`~9FRRf&y~%j=aPrXSEgv!TW}4~U6$zQTGzkG zz2ep7jmN7?XsNx+ab2wQNH~`bLpzqhV=SXm>knr0zo=d7GDmqPtOV zoVszX&Ta)x`kP2vm}Kpy3MXPn7_wFh*t>mPr;NmPlx8i_9Z4Um=t5=|TWxv%Ccgjg zkLS0HAMb&9Fq2-r&-c35UnZF!XdSONfy0>pqwpY(;Lr@e_N?9}NUIPBHt-dQc6)x^ zY|FH15z<~rjv|OXspv*6`rqjHR^=P%4%k(q7C}`ta$7I^alKKN)o>%u>QU1{0ayJ2 zNZ)k;rgQON%a$e;&P8H~0xluaUgz|jY1QH4ZRfoq`+H=R^e&(L%CDFU+pRvenRjdW zrRW`pDdDeCYRPLpw50cPXNghz8U>yQ0j_;$&@@bM*{Y<1*=golP2jb@vdu7fi2k}$ z-|1wQFVotq8m*_O;=N`L9A3~gX}m1`02)c+#|z+4*+K!Kvq$qsqnWOpkwPVY;NY8G zbl)$`cyVI0nC@mn<)sMG6^uw4pSnh}7ggbeU(-3b6V*bXib64v;Pk}IU2Uu$M;E!G zyZNQPBwu)a-rG#3(YGm&$+;zwjnl1f@JojEcucQVz|ol)-GXAbOwkCy`|-K2e>E>> z>(8s854Kt2bhgJVZ~-)lF+*_9*cAQ&PZbH%t{^cI{t$H2C<{=qZ1vtJ`nB&u-@K8V z^BzQEJzOqayZwS>Ki8V8+z${nX&D!r(h(gGXQVu2KzEJOK_Z$i^36Kx~dh(Y1H#G8lEAl*MQHzU`M;#1px5oj+rxYkWE$%}aw7YU%_QWxD`=m_I8uFAvA4nLdMO? z=DIh@9ycnAxXGS3d*3TtHreyq+r8%Hj_>dD`w#ATJkB}q_iH?Zk?b?|x*1)n07CD< zVJXN?#@_6^)x)Yi@8NXkza?5`A+#-!Yrx!Ti6WBiF)R0TZ??sk=1B2MnuwvB)@~r+ z|B?#=Q0pAXuU_-lq?2XXT!Ok(xy=R}?rkT1h&;O0_#d6k=pVWHtBZYFG>kvMH5mAt{n$F$56D`2^F4Q0wDV83Ti^{EXQ20fC#mrI zxII2Nkvq|aPvy~|)1Y_)QrlLUFh|9>9pQNTXbo+aar*_D@F=zv-hn)Zm>0z>GFwkP zo^K1Xu60+soTCX zr5`r%MN#VEVF&`i4D1y9d-0w&giI}!9;UxO8`v>Dew&=nd|Ga&4SmA2VFRF0eaB0| zHHz2fU6}5kSDyVEIrm2JpAg+H;wxLb2YYTb-UV-Z9+p`KF=hkx7si|vJBfZS2PA9=Xb(hlyXF8@dO z$_?3!76Q;H+SD&v;uGx!E)@e_MH6}y)tdV6jbqXE#lIix6tM!A)#LFvS|3dj8UZb@ z>5%eFPtm&RS6zMN#2!e8B5%`P5;5EV(Gm6b7VHI_PV<7ag?}|c(wSsxRkRL5t4mBulCQb#6J%tZtQp1GKmNM8WHr%`>Rx$@ zz#rf6Y^`9}u`q+J^|9o=aqBy@B!8w|F3S=PBkti%+5-RTM*H#o_xRer6g<&UI88S&#qjP@omab`he%HG`%|kBg zUVp?lAgJPPFs|u(6nJC#>%eR3SEK{(I$}iaAC!ag{8tDHKbPEhtRmV5nlc$+9{PTc zysHBCHF>5rNtD@sTCkqn2Wo97fwXjepMG1`Ua+yYb!D^noJKmvW-T1BLgz!vsX5td z7lK3^e(L7w{VpjEGMAn12y@LhH{W@p(jhS-iCg%E23qjbBI86yL_9sE54W-}hXD3d z)EI`xAZNTn>*ks{sgJg2vQ>6kv$*fTXvz z3$$OD<=)gKLRv7_0(8f7I#7X<`PkFYYT|SZ6%l#7PEB+FkTc%K!ay_;m|XdYE;Qt$ zKPZtvqCn+l@d+J7P{gYLR$7`TlD^KeR?r0#BSVA|*eo-=Y%p_AN4hBA2L^tL9x$ti*;=Czr8_-%ay)c9GaUY~)@bYEl&nI53I zizYBkk+6{^Tj(oCH~V|OI{l&L8+9tgM&aN+hFCu)f)@3QF9$;pj`tDJB8)i7Q~rWbWpdWlWagpY@4v9*vCvL zM`%EPQVfA)&DxJu*>`4x8V*W`DpWp2o6uKSg>DDYZz8z;@GH?;lg_~o3r?WW;yq4h zp^NG5t3`w8{<~s*znFLWn1jfAHV9CPjzp5aVFXV@Vb%3hUuYB&7W^2`M^W+0uUhZ=)a%1)lZ8xGWc0+Y2nkKLCS`!s z|IDBN728WL->M%-)eEk4j1THx&OEzt7|g0Rx>iJp~l~abM&$<24!4 zg1}qtXonu;^2miIenZ|U>WLkqE2si6q|fY*vi zXLp1zGr(&<-RUgCu2NwQ{~9%cot6a3Keq8{mP^DalWGKP9}=*0LETfFqm zjMbK&#~+W{F$x>zrUXMbK347(}^i*5jZ zv^2`?csTB20LW$xs`9v9u)GGVZ;xt8eQsIPb5h~FT3d%aABLz$IDI6s(U@ifbM#QY z_*wO*^>1a&C*2bSkK{Wkr=!j|7a;h;7PIezqIVGziu)mx=H#!DF(3H8xbBWVZ9mIN z)AD;`>8U-)^etip`dc(_N#-M_AVB#kV4DJw+_LM+oOg!DcdDtj-N)=no{t^=qvK%= z>s&@hu(eplYl;yi-*mpLeiO0VzmqMm?Zr2JtJ2~8z2+mnoiS_%=`+~{F-Kz}B`UXi zaKP03BYba1Jx0GBv8zY`zEGu!%B$vM)edbzUHCqYAMldKY6-)j*R&*OCRN9Naacnw zCLs#%W(uA*bXT|R*(E_q4F@*06vaDFpEjkAvWb+$y>qYp@{5dYXoK;|DjGM6KiR}^OA0Dxf1APAapXf=Z zlvIy4Bd5KIM=?Q?Cv&!pjP8~Lh*BAx!+`l;1Zw0EPV%7!0o*AtC1xS@nG`6VO0OI zMEU(@J>jPjQ`gQ14sh+(543u)&p%AXrsTR~)Kt4EA46axK@@SJLGh`ulXpzg<%2UW@*14ttPKlx zD+b_37B{9m0bgC%P)4R(Q9xEJvFgY0%p_n+NU<^CWT!*=Y1fMat&FbJ<2pR*s^!BB z@u95Be{Mt(q)@-S#}mpMYBY_}Wl8LCSqn zr>SPjfg^ll_2KkB5xsY}dEFB>qJW8{F-IG2nEKbxd@74`OK>rJ_v54N zqinurnLUl+PD#U_y{8?=V?ht z{c>Ol3IT95ZUnIislKuDgj>4jCNtD|s}t&E@nuJ@?d|eCC8i&>?#>Sq)xoG^CN&Tf zT%s2DHF|$nF?M3-3;G#Ai2>WfD*wS{l{?%n3jhhqsm@3Zw#@qzR&H_^lMfj*P&I~$ zSMC1nk8jyd;5cb?Brd>M)~F8iD4drO();Y{vHDumMw{9`kRW|q1an_U4MJyEM3ii;x(wYxXp=l9#ajwxGMPRgxA z^21F=5b6OZe==04XaxVJrBGcSG_#J#*(q36c??j)<$0qmzAP1Sm|bA4s`z-D$*5b5 z0-X5(l;`(wx~+vSZm-It$@d7tP8N5`kRa*c`<#|KThuKm+T78_n`)4FxGMMK8tyV{ z`Sw8PtdjQnYQKfO#~4A_(cf_z*L)}H^7&;DJIJn0e@9AOtP~)%iVcvnKH7uRq4rj!`M6=NwJi2hZu6w zhJGIf#LR}PI_mImJf#29bWTbE)iq*nZ=6n~Nq}(`)9}ZLYN1c=-mRyglKLI;qFhaq zZ9sYr;Db|n98saZIMo73GjT{~$H3ESU&IDCGu}9Fl5%rvr3}2CjA0^tT~1AD|GQxGZ7pdWbM@0+q)i;d%@eq@>otVk(DboMq_$x#BKsaHp z=|y4~RNC1OJPGC6Jq$<(P;uKo8$QZ*TlL+-J2Y$RJBw-twvf$O?IMllST|v3l;|FD zEi=9%74`q<(5vtqU=R8BKmikuy8?&3?qlglDKzBh<`duiJT2JF-lbx2YQJE!i!SJf z`7*R|THerQyxdB^`t)#9{SB5vt!!(`+u)*d5O5ueaLQstDh#x@c^R z{GPs~c_9GO>94fQHsM>v!_M8$VI239ip&W{g;SpOC`VGXedZkehN|P?amtM0`ve}r z4nrBOs;ng$=2oIu%ZIV+x+NQtebx3I6yN7G0@cfw1s`wv$f04V%E4KKxZEocc0K=H zJnG2==3Ab$^W>pcc~DX6Jiiv>Ou(}x8Ye137j2Xnw{MOSoyjn~4|%cseE+Z*8VS9& zTpR22?Alj^#X|qRko#IyyZmgir4A!$`u{-Qt@~;@SK~_ zELuGoUr2$}SJWU$UjsfUy=qD_1Km5mS+wa=^>Ji{!Tz{J_$7*!_sZ2)M$LLZOss}Y zX5YfB|5HK+W#hzQcB9-WG~+?ot_nqSYyDmAL2Ke}HLVdP&m+dzTdf&^q{a`zoqo~MVK#GT8`BDWU zUa8Dk1Z4!CDCTNi{;F@(vAa13K^tTj=C`npW3iFm_;j9QZ_-8iO(?5E4Jmv{C2|jL zw)ljlsxb>KH#XZbsJ&tWJx;AH>VtO7^Hee8u5PNOH;?3or0|b+^;Ya`U5s<$6bSS#bLGnzAAD~W6w$stGuSHu&|!WF0{EhTsxjy}oa62|Wy zynlLo`cFaeyHq|DJ`^evkjNI!fv+MS>sAS*`Fl-!oK#E;!nSvwL(4}b*Z%qPnKB!i z_jGN0a=ma!ouz)lyx%7~cH;ihBla*KU!Z4ZB{*& zyDnugvO*SP^#bO`hL`42k7-=hzG&^iQXY`oZjJJt`Td^E zm%?kC2wPlz{Xaltu0%Z=KK`Td_g4Iqi|lzOUsxF!>HH`XuXlru#7v|g{JB_9SNQYJ zIlc4w>zZ_>&{lS%!dat5t7gdeFQF#7#vf^#^3Y#;mzf@jEq^6)lqj3#uIXoOm`*97 z1;Y#R&y!VFz8#5e**X%385&7Qr5{>5E2G)cnoo0{&Hu#MVWdcv&7^m{$mmk`ND3XN zrT!%EGmmunr8FBBxIb~Ad5*<*-Z87HGg`)sPryx<c^gsXZ|x0~y{%XFyiz#EC}-w}j=a5AB*|njp{m^Jd&M9PP6;7owPUZ4$a%D0 zA?1HRC}2W`%~mSsU%%oh>$bnzB9wjIg9nTRd;|Xs(YIO04$q-N}4B`M0N4lF~>Kmz6RK)%b{u(jGqzWQ<%a*v!tKDgta77^2BBi6>P zB{5ihl*V2qV?VQwIDDMPCJ@B+HVn$#MzSa@%o;^Nwtn12#apXGVFkL9*b&cGkTl;n z^5s>qqq>RmBO-U>JEP+)CAPw!m%%0eS~tJLH5bx7tickkE(-70$_toJ%dX8&E>JS{N5;Jar+gD~c-s=`ub?Am2mZbA zJ1aT<>dlJDF(w#)Jm1x>4|;0uck<^|(kQB1X1%q^)NnZFwR`&3pBLNyHonRL0Rzbt zKyxHs(S^$_+A6#Hm8~+R4WCWQHiAw!Ki=Ew^C}BKSrM93n$aAUQ8Jb3HlD}+=Jmrz zDxE@(l}*f{U5?WVA&(ZTG8+TZd?X?H+lZ>_lw`B1w^K?*&Z)U5AMK3(w>$GwkG{c& z9yPrjzrep9Zsjr9;`8F`_a%QM%Mp%o!#f~yp}}OyJvWfIUbQekkWqX)k9c`+tDXynRHIW<(EnTM&ISNw> zpXpuT=AGUyGEZ50WX?56W<}C&u$U5^-uvL9>!(P0_y0-3d6uF(7;>YRCtRQT8Lod` zHuE^$E@aa9afErM@~wYncK~+^c)Ytd{$8HWTA4LGHm*zp{M9^4!A#xab2Fr!$3Xsf;%&FY0RvQeKQe?-Lbq=T%L1 z-9J|*4^t=E>p!TT9oXz-;8+^pm(9El=~RaH=rlk0*srmWI}Otj98iR?VK1Gud4+ zI6M-0atqox|6!TxWt~t{5({OPWjlCFPt>@)uEl0BWay9aG@X*a_7H&SP?t^@%)Xnk zI7|-ahG+&anOD{%wHn1g``dHE?nKU)P23y9nv$xP_^Q}7w@dvnm+JaeZbFXE#;uB7 zKQQ~xiz=OOL)#u5ys7i@Uy^z=uRX$*p8Lt++~*ITS;V~XpBV3JZWIoJa6nC)9PBI= zz1?&tFi$uViHEiwSkHHsxEz5wtHOUv;y=2^PMoo|g+lFJ0sJ&0_Il}$w1=NW9fXT( zB*97JU0`OotT&Nuk>|Mo7xR=w*PD09$+aWV`n&&DzZ7bH9R50;V*i_z6!`~zk)pg{ zKEWhyZlrc75?Y(2*^P-%jMs8AFfwqK)9R&n@N*>BQec~y1gxkHvVFMI-O$RVwfnKZ z-FWC;yMqydSP6B>J>&s-pzpp$Pk3ZGrSC9rYZxYzZLNbpd4$Op zcsjEn9hA72@O2>D_BMehstOu`<|vu!X-8bItE z;%UGtSE1FRm}M&NHTfB?LfQjfS(AA!@1|X#R~lt7l{;9nS)*Z5?Bur}DA~52DjtoC zPnyogfq{lpL!4hMjpvEhU|aBD*s3lsY=C528?LpY@yU0WuN1TKw!?4Y(;sv$M#ioZ zG=vm}8ZYKO;Cu7Ww}~wFc1N}&s^rK2*Q~-#A)N&O4DE}eIMN%M|1=HEk_-EjT57q3W9$u3s9%cQJ!Egqr)`g|=5TY7POh zb)LUy3dv~wlOZ;A8zmOP z#X3Y6k+2EGBswYQB zfb;r3Fo6@NhBLHe0J#fOyIsW}^S5`E!bbK)4D&<2dK3=ekuhpWdf%pAKeJxkZrF#; zIkhwUR-iVjd7gWFSnIAcu-RnuSXK8boc`>vjcj;VXx9mD+(Kr_gKOOIULINL=n;us`k7p>!1@$92m~?)0~8SqK0Wk#Xlp#o_IHGkBg5bc9}Rup>E^$K0_S>bdG;g^Jqd3 z$|%N!c2t|uO|LZS0u3BZ! zq(|+kLFuw3Jk^o^4U!{ieA5d9Ej_pY!95nGgj+p32L_g#Rkp%p`6w4XQ&V=#03?7^ zUu3ugmbjbA-fW~aZ1rUZJbgHo~oS^1DtfOFpxf zCbU7+$U=y8*d`0laW%<)xdheX5m}${JIe2zV@@lKzgmq?0KtN=S9zf1Q{WwlBZ=*R zo);;T&q_|EcbbYx4 z4%by~1y2ohvfd>6w~G#O7+0V9mRsdB{yz6Hl6G1=Cs%V~zkylyFp+N6F*a#D#XT9K z-P{bqO=+nFG_=#iev8N}p@Wic3bJllTyYAcw#@4Q4nI+n5t);;xVBvniq2{nReo(K zWxQ-|BYdXut}Py&#lPJMEDSCjquRU!Gh~ROO-0Eo8G$P?a>1WeM6tF+)OIKy#6TNX z8)zwcKs#xzv7AFQ6yT*S86E9z*MF@GlhjWP6^NPzYLrX(g=TA>nRq;qt^0CE8^UrM zQN51HBUv4bkmN7^3u?kd9B!c9xu1I}EaX-5-aQ+y-9T1!zW0HqvPe9xvR+%MdQ9_3 zrLc}Ro+E(ppU z;9}JCC;#Azna)oP`^gc(C-igr*)PD>X4L=<@h$-!fmy02I>l;eeY$zN@bdS2(Ceo< zG$V9S-vc)Dr?jR=85}=+N@9_>@^*}fCp4x5AT@0&!wj2K&Jgs_n-~3DY~eEgS@TP$ z;G;;6hixof0h)TOEC?ip!+{iY*2r!y0876~sXglBhm>1Uu1hF3hPkgkt^E*2{mBv% zOg5)*kdzlN=emiJc#|jvMxy`6>V}Q79uEbzrnFl9TS+rr?b#^5!&ma}A-P)G1YF!9 zDk@bG6D32reLMR%1?8JL5WVv~;B>*L^rv5!u;AtaL`+X6d0rC*iQE|Zn8W`LXmQx$ z>|VlMnNzH)&a=<|d}24Yqg&j!Ef#z77WQU((Imm=`_CGnDE-#(&s3<)j#u}Z6-#S` z6gR?hwKDy=MKZWNz@t4GajRNG5NsVMvNRp+rdlc}?OUSUPMjU^1&2%REjy12Upf9H z7st@QSe#7=KEZr{ij6y4cMWmNbyXWHE>dh91AwdT?tGopLw!(=c0qt)8-Kw;N0qnh zB&g0*$e7W-QUaKwM^~bQ3pNG-3WZJ*{t<|%I3yz6OHZ2aUPC`%@vB#=!)v-vwpaD- z)~MR#GKoED9dwiY2+A)t{qC1EfdlwFOfKYvDlaDiwZd-PNrLzMNol9*TApZLWi??e z@4QQO;-=aU?!Hf!N(on&e%}5NwtY|6$R#fz;m(wiL<@H^ONY?Pc%UGPnF=$i+`B$2 ziJnH>i0R^Lf#kLD-#2+&v4--p06*6i8%@2sF?TyYTb9{~zmuK=y!U3o=fGe862YMNt~65=}6&k*>1PV^&;g{joF}z>w<(n zr-NGl8+yiEm_2^2&E%T%5Yj#%VbMs{Ev+Zm&5|*7+}|zfN{>*;yBB7|2rgI%OG9*ZZ z9IUq+CxR@S7Q%?q!we+vUt6CyOvi^Ce=!F>X7Ta*z^xrmzE3XHKH7M;phjFpHIUHG zt{ED{H!0Vg+7UN~HF(4C`-Wy5??QI%&G3+);%#OLF!WWdV4w1oSlK@~%n$9iWKkz; z8AfYkMs?jN3}XAk^5nzG6MT2i-@XIo0w>ki2#gK2CKL-Id0m(~E^^^yYitNZcYB|u z_K#_Fb$sy~A3O-4NdfSV_rvfz(Ri}|f_9e0#dm7wR`0!`=!x&f6QCVhGB}=~_DHnX z&6$xcW%o6qT!q`XD>27SpmrMQV=VMs0MJj`CK)j6!DQ}z^l}>YPS>wxekr4fDWH-n z(_)(S=_KXus{M@EH^{2^+xhzi(N9RvP^JITt-=Ci7E1GeTE5S?t>!5aVIr&Dk)n`pxmR{q@^U+JDv1#wVOplzt#Zr}kdujT!&L~_FZ^DEav}O8Q z+~~C+XgVeloUQ)kPXPI{0h@X6$Ma0 z!}mQmwU^u4I0X)cXZVS@_&K`RMa&-@U%FrxG^23692b+dBp~d zInWYQjuU@|(u()p*;+XTW%JNDho!5YE?&CDUH=>PSNSPjDe+ie{n5{TdisP3OakJz zQYK#JT7X2Ga>qR%6uV`1(!$;b4BA1K@coT6X;LPE+|DX1)RYR!%+%qPWw(0C)%15kbwOfRYtxV_`00n@NYtlIVxQi zUFKm3sfM^%(_jlzb1T-SOQrH1$;p-_UE@;!AU>PiuNaishl=<|tizs0*;pEg=*$R3 z4knCp&Hdu#tw;(Q@9&65l^sV)G5(& zj?_fxj1Vx=q)1NKoIrphZ`063w}3x$2841Ulw_vAC{RbyT!eXCos45teWiZvNYPd9 z@S3u=f#gr&OMD;2US*^AZ1p0I*F`jn=GOl(k1A+yN2^foj3T;;=WmL2rPwXm?KTsk zzmQDQS>re-Bqxb~Jq1hh#%LaTov6Jj{8=W{Bk4eXgOjmKHen_8-xUaR@sta>uZd)b z2EvtyKDHN0b-6GelX$jvPo?OB0z9A7DuYMXd-SaxOYoFT6697bRco?Qy~q{8St~+~d2rKvbZ24} z5TUWg;@k&+q zzk2RVsj4vMDYOB{0-SWR5k1BP&G3o<{gPV=Q~e#g3K2>V&powERtm6QxN;|CZWNe3 zLd56W&V2kZzM|(V%AsLX^r+M9i1D^)=t4ys&rt=cX(8UrvMI&2H=}kKqr%Nuk z{cp10GPZ@-zo)x?9v1)kxRjc4SQIgQgQ!x=jcjnLs;sXI_ah*KuRV?w>=MO+5t1$$ zcZs?2nWTz8{+%6a9+ADDk*_u9(;N%#FE~DXDZ=;UN?WO=#xX+`g&oMEcVLCWYzTGE zQvM1YR`r4M76UvSR((7Ss=^vv!WmgN!l2sx`&xc{x5WgyafxT%3+Pz%6|6{L^nwS+ zB#fg)UgX|ijYFXlPT(T5T*b<7K6R-#YMNPNw*si8wC%gKw6CW*g#q@Dk|g%7!MKyO zi>jvexwD)fD<6AFL}fbX#zkI^qW{FoYIUoDjgw+e%)kJKCQA~GczIQ|ifnj0%;X=W z%U9iMGOJQvE$*C#)UD_T3s+w@pNrx-ilylJzT;x*c(LM(0Ce0xS_jlLA0`EvuvGe4 z(Vjj#kx}=M$5S8UJtxl?>DMJ@x;wcRg;YrcguDggaL2rW3UhPE>Y9W*k|kNeMco_< zmoNXh>eRtFcY`g65CS{?P0T3T4`BNvVSgd)u79cZNA*Wt9_7;>$UoW7EsZOMcWVlk zJEhuQi*D+vDK`v(yd6>xKvB3?!^LTBso}j!rq%f!ix$h~L&Dm%4f0p%=v5U@@r!#g zU~bzEH{>E?yQ+q2cKb=kS2vcA_F^B+KKG?UG`Y+qJKxLODxDcu5Y_fsAnhq?C7t2L z^Su>SW24Mv_5%}d@m7wd*(lI^O3@-xC}0BaL*)L- z7`l|q#^7Az;u~1_H&?jG#NGSalMc_m>qbd}5!!D$>uG~W6y7}y-gFfaozr_h;?z)442(tn5|KvGqpD!M)w520%8KP!-AT7mslIdRF zqPDOyG8?2Vv1#YuQP`!vyIN?mnQ}ZH?Kdy{!2hP{%^J2K7sa2&@!Vr@#U?;oyeP^wa8N|K+ibAq;D6o#X51Ry{bbr314MD84+x*S(ioCkqc0b)iv ztuLjQ-@r%aYyBKA(98xr?y+u%!0xBxw-FLF<$lvxxH?s-wI{JfB*ve8@G5L=V9Kfe z%rtKaeTgJ?|632^2RD&u#B@(xq3!2U3!I63f4ff7s4#9727ggq zKT45ejPh|;#9TIz-kAtldyk&W8)QX%$J{1W6t^y-SzMs(l{t%>^soR%-Pc;yRDoMf z98%Ap4gxQ?GDQ@L9HW@51b(+V+xc`W?yKFzII73PCDUdT!TcS!sI%znQfz)0;Z6*` z3e>jce8?*gQ99hBz2S|vJl@J1$jn>>rbQjRQ{?+U7BV{(12#W_gJF9WdzF+dXVSIR zStE*ds2_I>`@@89z$I@z`uF0iSo*iOpj_C@QO~FH30K+uatMWhEb&?NY)q`!1$KP* zzE!Eh6Sp$%jWsrLbX;)j@VC_j5)DUN^YB|+zXJ3w1*zW?xawKy)jIN3EUxT8_hNbuUz%?^Lr#=ym#c%gQI)n=!Y0d3n9 z0%OZ>7rzP;(APr8yFbJ&NJX-S&0*~arAjFti(Mtk97$TI0{Jh6aK@vDVr>`!oowf^ zIj%wD_UMPO8glci8vOKJS%FbbS8Pzxb!a=1XA{j1HxvrbjtEFLii&xs3z!3y%x2Ig1b|q528%q1n}AD7)<5EJ(F~-{ z4(O#u?<|Tw;brHfB9-B(f*4q&d-&09dV#FOcg31pBkpi@jjOLk__o=&R;E_IQXAMk zzX|@o=!=Cv*(K|PsY{0;r0y(*Y#jjAp#rU?PEGX310)HziZ&WwXx6yoCpPtM!hzSd zup-3@$1nfUU3>g!TViQ|eO*l{lpxkRf4y>#Yoor7D6H629eeeg>-l{l>01usdN;(R z+upzUz%(OYLS{h>6_GXJ=4zmroY@7o>vEHuiTb^!<81r7K4ur})02Vf|OAh0b8mY+>n%+Ez>p-qf~v&ROnV$J(B(TZ|V!XFLH0MynevO ze3Dl5%J-ORNMq`FE9P>80Gr++e|E79O)ysf+!RQWSRR;kI`$vaQVc*Gn3^Q`VHuLS zBw%^1g=N?`i~@O){iwgjD%Z=lI+3r&arUUG)|TcuHqI^ZRiAJT!_0sr^EGiz;cvAA zi?D&>-M!xNyd(R(EzWQ=lMJ>oaLJM8MWhpS3aIY<-pE8`?8pE#Li5twun9)Wg_H{j zhRPHGJg|djFbCr$hcuqu+7K$pi*-p8tohYB&;%d#UI0b^Y$d*LQFB}8 zU-Zp>2!$aR`VmxaTTFoD!hJ^-rn~!xs6~Qp=9&nk($%6Pkq}tSv*doWBmIo9)+fnT zE|?@F!K73Hn97jH8HB;fCBWzxoe$wX%^8;Vr{87&Htq!^rypTCt?RAe4+*6W_&Q#E z{8;*0nHCxJdn}5R2PIRqF!gIP05KiM-Fp1Bb#BZZmXPS1 zolL^fI&1}jy55C8%SWiyIM-MA*zkj7Oe?xdW;=&?F1$2;$wpjt`ShU~hk&WrU{2S4 zSQ8qLYlU8GbKfp`D`TI6mb)UoN4f@a!E}K*5Pi7H(fV4VOp6g)8&Mho^MCjS^*V8UGtsYhm--(a!RXXWcKSJEJCMw1FVPk)BYl#DTfE6SQHHs`ZiGH?i26!_ zKn<1vvfvIQevj=xx|Wi#&Kgr8CYQKu8 ztwc~O?Iz)3$3onRX~gEJ6>je}-9pd~MPhUBQozB&S_kiw0O7VXP>j$^sTEy~*IR-I zoI9WFaa?YuG2`}3Z(PBhq5ln?c>ssoZ(M{zdVDrX>~XonhSUto_fF@a8(_WEc0r$` zNG+tv`Yx6rT6II^3_7oH=YtpCCBYV74&xTG=6QK&;`6-d3ogTPjX{o;UiC7b4$tms zm79Tm$(JZ9@wdlma&R-XXk9rI>AaH6el@g|+)R+W;%R-$P{{JYn8a%$i)GGB(49>{ z=t(?Yi$bU&x`oa~zA0I38_SLIzAoQ1=e2%y8zYfMyL^|Rt}g&*TnK@_h+AfQT^%ze z2O+<^H!y~E99Cc>iD5o|vvRH(M<_Ht5ICtik3ITdryKzuFUr!kQ^q*uzCopA3*U5~)ywn+?B^Q8j@twBMhRyNM%-tRqQ5TJ}y6d7;@WQ+=;qmxv6!thBQi$N*(X0b{?G3`5<)^E2eY(x6zQHf|I-V0jpZLa2M{)9?ENi zWZH@EuY%VbS7q{4Suqn=%EGNH?f8zD3#*6a*!VgXUl5aC%vx)mi~=u@_jYDt#(B4$ z+dWtUDjfyfEvyJ zqXWz$5g8hU-^MIw#X%9NYq{L340fo3ff`q`7=#orqJF!!I@pQ#mN{=+a00R<O~_YV4#{6}r2tB1Y_Us1WCZ?k$d|A~SLS%DxD@au@~XAR8&eY3-oj z8EKI~8&#(nDa|L-z`(uNH2gQK2)nw0>aWyFl=wM6 zw$ZJ1;)YB*1!VxzsWmpqakO%xYN8~8w;QzgnKqR>$+&3bFh8>~GU+z7i;)tG|BCID zo_yV<`Te)vrT$A4qo9-oxGE6{C&i@MkX8sIriAvQyZTi&mjq2rWTy0B@3vz*Z$^&Q z?r<&wbz=fH))V>#?S;H(R|A3qM-6_z?pPhx+_v&96?q-hb=J%6|FJZsJoRug*~f#U zHSeQOaEa)qG14bj!F%(3dNFuGaoniDd@Dx}b1bFXsaG4jJx;%ID_oTVlX;x>w+UN0 za+LCW_@)o{;9N(_)knPW=17~K0fQZ$*4O)Ns%|CA;I=WhRXyZREP5H%mtP!wHNDg2 zY!!!p7pDKu;R9!P<-Z>@Q!0o0k^Sg=%nQOv{1KF+LrSt(sxr8jbM^7+B4g)sPDrJa z+RkfMiB_BG`|5}5JG=I?RSR<6%)6Rkf3evCW&w0bcG zG$&Clr&X&lX8U*P$8$*W7T|Vx6W0e@9N;o6p1mICWWRp}$lOBQ2B^nJp=|9e4sB8z z7x5QHZqNkMwllS8)~}L~bFP~{;EO=8@w@vjVn z>Sz*cg;qGWc`?V!=oy};I$_WKAmdLEKgXwJEoavg)dNi}xl-90EiTdd4|Jn?$8XET zQEmpxPiXf;2jG&>cX|*_ixLt!lQB|4nqE<@Dd7))22?1qsg>zvv6<-`q^khTN~B^)z7(GOETvsa@6?1+KJxQ> zicm}$%dbM^F!*f+uv=3FF}LoVm`}+Y!t|YOTMHX5Z4C$FCah_^3eCIj7xqMLuBxyt zOEQ(EseFgN?g6(6d71wp7IZBD)sY(HYH9p+Ny@$B^`2X0|8q}y&wed^5xPD?${b8R5L zp4HWFhq|SjK6x)gB!@UE?m?HDMSS^IvDPH61r&%Byr}m*7+BcPkjz>~n2^FnZ_vK9P z%iAby99ZbO!jpre;FOfQ3htG}NBD})F)SVRD^{EYUKrm=AqpIO4plW64zLBxt#9$0 zO|DqnsvNaZo|$Z*f4_WQDQ+QO&{(_|3k=odH?ip;yxaCXD~(y=8-`-#naiSMrn~sa zhctarSmOg}t#0${BDxBAk#46D>=*3eG9;e2JRP>Y4V9zY9^2PuT)9tv8x*?lxi_C) zD}7PK{^Nb&#SmLF?ZL0B)HOG-DZJfMy3l91e)CNDB-#9Jm9yzdrCZPW%IB^rUf}Bh{#?}+_KEm(j&<2&zgeVf) zN?YiA;U{o~q6^Q50=c9_Ya!lN(b?vR#~&p2n8{xeN{Zc?gTayACJ7Glm`(GuqZO_Bh zE<`NOHhlx~p3u)+8~mbiXnv%9fd(k}mH>`(gFpR8d%e`|34~GeaxdEm*TRChO26EO z$38Ui@H9?wHQ@y6-9Xtzh)m3FW`GjLt!g}~Hck>n3M60cCrK{|hE$9-q#-#hHlHxZ zn)W1i9cmpdW-!o(2y0RO@m|Q=V~K^9b4EFOYj>)TEk7Q=ml?J1^R2H=S?QgMh?##= zyV?CikJjc_`qq{+$xo|@E%tfLu8&&y7M-DT0Y+rZkxd~14eh9wR-D&T(uaIifU600 zPSx?{TJS}!DHIGT`RZ5*zZi^VuQ&fa|J5_s#UVmHkaaoow)}*$N@?k^scy!^VK+Fm z)NyfQH|$r2Rz%ZfrrQM{SAn`;=ZBW0biEM`=gzG-q`^u4OUg?EZAOojzLU84D$rtq zoVWEA10wpx7m@NhQjrmGbtmbpg1OTtR@48Z=seuneA_UrRg@Z4d!|Ow+EtsRrFKyi zHPfPIQ9FpFty!}uilS=I)ZTmVP0fhCC1!}^_vQNw961i}`##TgU-x--=4~dM(G3>o zBttCggei89yJ1W=s*{Ze_b@LvTU7J#DFqr zKp5;%*T~@?8qgcAlLEK(vrlkx^PTNfztVos%5q{__4RtBExb9f45~N-wvSoEroEL7 zn)w;GLUu{uA?zTGG+HXmycMSiDS5BP2aZ6Yts!36x!yH&afT^V)l2}q9oR(~x%CIp zIB}hm?f;b6!K8OqP>YT6k!ilaJCQ9V^7(1}ZuPm~Z!Ra`_`zae+C|&H|41(U8t}yg zA$X_Jn&VHX1X^@5^#wqntdOVwv%|4^TQ9t+&t$#o))ybUgnw&&TlcedM?bE@9YFI1 zYZMX71fE4~xH0wvs_Z4DH%?i`ghi?VJv_kkFJf8Uxa!}nksxXyCj_|)j;aAiHKu%X zhx+F@SL7@?y%R8->AkopH_UTeV1~+; z=!SbTl^( zSlxBG4{$ncd8hridqa$qL1~UNFigVZ3klM;JEl=k%{g(H^lpU{oV;2m>%NtvpT~-7 z88c4oSHkm-G@-ojq#j$L3o0}X9fFa&%~I%lop2723mxmq0>p6gKN21ENM22IF)yXN zSb-$%IU4Dqe`>lMq_XGFHHHc7~Z6-p>y!zp*8y~}M)@f9%E z-Lxu*U*}`Lb&JJ+GY9XdY~Hc^+T>F_CHug|`n2TT14Ywm0K3v7*@$N8_dXn&2|JCU zEgdIIInq`2v1`g*-`O}opNV5Kp4A{R{g@TWS>3vy&vXK5fD@ax!s>}H-5eH167E$A z$sP8n=1!N6sms+X0Ox~x^+M4)#KK*bdqmcKANPY}uFZl8LnWPpoi^dSt0$bSTQp4! zn(eLr>Krc+!Ad$fRl-zqT7C}7)g4?nQKS2GO~<0Jta|5V#SmLZ*V6=5y41Hmci0ID zN~EhGI&4(uoZ+5?y-9t7+@_%_?{5;@I_usx!8Ui|MrK==ZUC`N6rKa;Q7WMc$_BSN zzZGrSQnm#(!Lc+h5nY24ZXB5cbn?c+Cu1*RR!AqH6lOLzEhTbu=Elh9SFrb^Bn@0i z%Kn}AmuH{}tP;r%z zdzzNaeRXw`cD!@hTrVID$jLJ~$?vnlmZytMemmD=gGnk8Q)3>h%Ts4OZ`im_8gxNc z1EcJtAH`|>P4?yc&i{SmKN9V0_N`BsGKeQQYE~o4rogSvDppNQ9im z``B#@)__Lk_uuY&=90#bh-YPnnEqOg9ksO`>yfjh-Kqdij0!Pi{wwtE8}`0f_!4ob zRJ3o|+5q?cJ0e}2&~s7pccY5)$sZz7OBrPT)9MNIO#sQ0Y4)Dlq<7Gu(#pk0 zjq+1`KcE$VHnbqC*VGYxUL*Qd)Af6vFj-7!TzlIs@UsI!j6lhW)q@wlKcn+1GnA~XAuSAD--wO2@bU1j}2(0&rJS>m#`|31)dMK8|{sKKR4*bhKt z9~uX1i-QxnWlrLn+T6CkK*IK1(rc4XH(J5Vql!}Ex7ygRS+v@$98ma-h3EmtV!BzW zYC_VfTm5C5vxKvxzn>&cbkK7=-E5003RuTI)JC(^O4crtddVt%v|i|Cpz95E7wh%3 zu>>1U!?;$6H(N-pP_8^qoKmi9FG4I4wJ8`(BM$7W^RdT+wZ5h-)-X) zT*kk1d3Ad%R^Vq38qN%cOh?u}U8J1>+wOhy3>|YoYb2sTbUG!LTy>^V&6&G^_vg}W z=u4H9p2ky1un}8rXx&5iruZo|czP}!yrR3NY>rf&s#kwkz(p>1^BDoP(w=)h#XEl1 ze2e}4KcDrY>q~?%eSVa0z_X12{BhJ__1iS$t1j&pJLR|<=;fL?lXI)+bc$xBZ-bMC zLy_0+fp83lE;6@15htauSox{PpFgvU=u%##qtie&f$ElpT(wudGNCn~uJiM9>G0Q= z*J)ndiKvmMQ|;^w8npAowE>Q-!dJ0KJ!FQzeZdFslc8snjSl=N9*K$5Yfbx6b>FL` zNCJpYn!>tI9K&wfYk?E&<1^L~2Q9^=!H*ccpFT#oLey8Dz?BaFj*yw=n|-(>{-%*= zWK?O&UJI#kLKJzCI5|jyU`qv{Mz(KExv*<@z7_jHEXi<&OYd# zbiMa~By3njPaDnlH^w35_TQcW~!>Q0w&M-48Y{l7Wrwx?QWR!+A`BRYf$UZ8blsq_az$tG4*-bH$j- zl6M4Yxf&s-5qAsrJ~qRgY9TK*$MgLiBIl+5KhBe`0V= zh4&;5-P^(c0@u`vmx)FOYsNX7q!-H{F8uYByB&BlieT;V%CPL@xb}*-k_2JJ^e97M z=9{l&@11=do~#W%UeLOkyJ0wi(b2&cGfBhklWf=S$>nS_H|EYsdhAqvBeROS_=PWn zJ_01I(a4;fAy#Csy}h;phZ>v2{x&ROh*<8u#;Q5e-S83~Vf@0!j4hNsgNij?iKI80 z&}QR!u%|BC0S*r!Dgg64_)j$x=Y?r`W z;{u9AQhR6EtGn6NhaQGa5r$MBQXqZo)BTw@&3gqxpVuF1g5)((H?8{vc zof}lR)7SVckn=s?A7+rIj#d#BIV)2QnFNVT7Y}PI1Z=F0ef!HAkwtn;jZNgTpYZum zE24N9yW?|Fnozp{B}(aISq?^s6r^q2F5(O#?9zM*?tpc|Byg#j^;?0uFD5LHxX8h` zU(@NuSn5X*r&D9xj()*!iQJ=z8hvq5e9@}KR_rEx0VnsEXY8-^iVN~~HI0;aCLdOE z9YN{3nKv2JnnxsLw7>I+KPxxvJ??5HpDxQoBYT%!I_b6buR-6=EdISSvF`KM3(5R- z-^JNY#~2^fr%@A~b2RuL$+!O|FET7HyG24jKF(brw9lGTyT z#MW0DR0AguBd+#{+qBNW9d)$MbvWz(Iee22v{|oGW8MOMDK9a`XDB&fXh(&SF~n~u zQ36x-9Vgi8V!?mb{qZi~^`ENhv9PSlg3gRSlj$2tR{>AmVIoB^E4D))Yr6fcv4@@4L?t&~4tv_7x~UjXCS3HXb~$NXpslk~G=&H!(U& z+PEAh>Y$&!S(z@I;tR*9vFK)>-yN8o&Q`ia>ySfTF3RuPX4oyW7sXXE5K#gK6Gl_}O|L+{8k zl5*`B>msFD`Gu)#k2DcgZT6sf@zwBNE(c?5+=rZ%g&WSuBMVnP^@iz33ENi5(?4Ug zAuqsU()Vi76B&O%Pu#e~Yf?4ldg>oM-1y zf?vd&xqQ(UsyT})+>|m&4bcpr%3@{xdxl8I_!e3hnc_n47LCekY(6`={u$L7ePtKK zQw;9_-7viO^Z|TsqpxWTH*)wi<*t8G{-aNRakJleMqkgYWGgNbP}z6*A>T#91t^2{ zLFq>WS?fO4(f#RWFbafiNgO0nkR}9 zyyJCd1G*!x?ZcF}vgW{p7xp<+_Bx|naeoqskcj1V?DjgCZ2sTKdIqqo+t)AQu1(`q z9&?HwcI^6_tOiftC9A_^TVS)+`&HtSjN-1f@`QIBo6~Tvzu$K?k819{?gs^2y)>}b zgmG{c;J~Y3W&e6B(ZL_R-qlK#$?D^3e{Xj?+PUgs(z6!cj`?O>WvID{NYVX=?_&?6 zSmKSGyh?~%yV2pgXwHo*4*fd)6M1*yB_B!algd|HiD68mIrvQPQuMgei?Ew`=}Lsc z+ky=pLG(W9WRXXdFN@osjxZeZbB8E!vfs#KD_9Qp3t!d}ZcQoK+Im82TV{_A3e3Vw zEY#R5gZC-{+2z9RFhNZ6H%c%iHWH`aP^rkT>ELzmS~j`6oNlt2TA%t+nY`ImmPN=~ zmebKF%W_g zlAJ%GlDz(12H=Fv0PkY6SMlb9qhls$WQ2%?-n4gAz4qW=XWyp-1IbUzzvLuRb!buF zQZlKhk{dK;bXM#;mK?GDk|Zk^San#D=u)b)ii}`}QDdxb0zwp$nvgLZFSKenVrb74 z#V@=IQF*6)9S?YX=ka^j4jpNu;p<#7fyY$8TM`Ba^+fFgU2qPZu4$7njqSJq;(XUO zF3KFxp&x3^gXs%{^%N6fer^a4#yZ*0`d$UQnInep~q<`BW8TnC?Qul8lM!so+ z2!wCVdjTo~lbUm1)Seyr$vk_VSNi3pmy+|RDs{bkwDpEABHR2iAD&dtq~TiEtHSGJ zYXsS)xz-4Hc>no`sY%M~$`qYB*I6y!r0C`L_dmIN>^L1Tc?wdJiv|JezeY zu|wb_FJG80rb^0(x(VC8g57&Mizc`G^;oBhY-QK6QjNnn}@7<*-m-xFB~- z)e+OVd%b$O&W0HMfylmYHrt)GzTc9{uTQ=&p4X2IP*nVSKkMRmq6=LYdEuDX+87-v zOT@Xdg2iEf&fGd}K_7MFNo{v6@W+pHm48JE$-Cq|S0F65=-JW|$keXJR zGf23y8l#@F#+2BVqPOt!a%i)q_P5eM4rQ6KlSZ6_++~p)E_KL?wnE7ar)2Rwr7;G7 z8FkEf8#q13(k*fD^?3vdu;jc@i~zEXzn~+7z!vqtzz$MQo;-#a&W=un7SiVltHM4cje)`l~m+^7DmCfMPXh+rQ`KB2n zfg$1s$pY04fA!TGHdYWH)B5?jKFIu878R6q%1)=uI>@%$C^2JVL31g1R3`xM7y(sl zxK;fh39XYg_h(P)5J_+$2xVMQKa)e|GsdCnhV0?Wb;-isB{3Ltup9DTE(;9cp3j4- zV6A=&foX4^PP=KtIpbeul_Xj*z{U~IpBJI>5{Fy@jdgL{zsRIdp*dadv~EW}L7Kky z4q>1e?oC9^s8b^XdXRgsJvAx-p@CMhQERxStw|*vOc;mRn#zf}lfh#9;J1#eh$YD> z;@RITwoLn(PuBubla3Y65Dx=B!m4Uw{YoKCy;Mp0FTB~G#kobZgAGoIC46Vhij?M3^B-7Ov4 z`j3R^yp4@84QAm$iFYoRlmCXqGVOZm6{esI zJRjbkvT_d#@~o}=NYQOA)FJ#FItuZ@Z^Xp{JZ$(lZwCX z)TeUN9`FMo>COrpJe(e4p^o+qhN>?LYYtzR4QFI|lBby}cbL#5(7upH0Xf5a!4FDV zdi_|WAf)Yn2j-&MYxKaDvUfMg`3uD5YvLMwcgVv7t+f`TuC&omGO(Wtx-c=f_(dCpFeK7h{L=S^+#;YQt6+y3|>9fd%K;^4A%ymiDOk!Iy$$~6~Gop8_$X@Mz0~J~WK8^)4K}t}i;ssbf zONFrzG}Vsz{($WK|J&@!&)w1uuzeUQLn2)hzyWc;$UuwCv4_>H7MRYU zocMiPrjn`zQ-2-Z(h+7DzmMz!w}S4$1R)yhf}hX80Eo(ll~dYs<&s)fa|0?q++LmR ztuJrOlK63UPSq~q)z#89lh7N(y2i^x7!l<;kJDVTf>=Tv*2(f}4wLg%Gi-(od>Xjl z1sZ=>^DOb8cg!Pa@u>g)4b7}u68D6 z#3*>$^aZ9$wYG6mx`k}*R76_QKf9sE%{Ix-FgJEy{z4iP7KI@{*_6C z!Ww%?6w5{16ZPYX!7Zhl4V`7H;#_EGnZTy*nM2(ZrL%0YYgoxSSPJF7Al~`ah+AG=vB_c?tfPkKPsNWC*0(=&=d{=m4?~FGFd(5H z41n9ykZNP2(x%>&V6LJvFQEHo7e9 z3z)nnZlQ1eQP$VedtIw|%Gq_(X3Nii$vdb5{1evgZ1)1$y`9`2f2`vcX3Yjj9e}X{ z#IQ4{+{Ler_+E_>9ptyS0Mq3l%=8DO7q+WievT7K1qr}I2;E@@dIWe6Hgj2bA#ue{ z7q>>33?_Bvuc~0^mFydm5af;)zUD$-hE?lRI@Y!_qnFd(I+?%Ha(8iO?d)TGM?!Hb z*f1cC7QA5`TSa4#2gDxHJyPv(-wO2grn~VE=+@|JsUPW1DLwwLuIKCFp!`QjQ~*5w zv^syfp)o5GC>?t-J3G~#X0QnVJzQrHKS!mGI$H&dwx+hsirl;)2DS9w>rt-Otg8){ z+b-`81eZ01V8OGkkV*0Ex$3uKOXNC*wf!yMdgmxGBkoX!nb4Zi2DF!XqQooiKyqL` z^&s#!1@~T%3lzpQn3k{tN-^4%Fg`T6NZIlQ-A9OtLZ$tfn#0KJA!Qps>CO!_QFibS zuMt=WR2Dn11_;Td99O!9_UgEP0@2W}QLFYp7Vtl=qZ#qx|EsnstOxVz!XGu;wDDD3 z;2wYUk-JoIud7$>)x6T*61G4U^Z}S)V?9dpYpeno!Ot7;GtXbkPFL~^q4gh#80B99 z^pkaidxhnCxm$1LjIlEZFanerU+OLX&6)=sPLP_&N1H}-nUx)i*)c32|4>(%SqT~c zDBR59v84T^?vjBWA@(-+2s{{4L?!d#M6D{Tb|YzS zv_3*rQT=VT&(7kTqlN;T07!LcU6<$U60-g$nmaDLV-KK?+>&U-7Z^VTt{Hiy^g=qn zO3Bo)+T?p3v906JXZr5W_CqqhSWSd|?qY1gh^laiaFHRAf^|YHeK4w`<50x()w}rm z2*I~!-n{xgzqO$YsBg%}8WZ%xw4uLv#~@6V`hH+AnCKv{(eJTfF;mi7RR+DT{rJGU zOgAJuFi9sO3B0&%c|BK+<+#Yjny$O*5!vfw9;hHsPi93fd+|!8Qg|5K)A7Ne_<@V^ zh#FVAdu+kokL5=diMz!v>g;S7ny+HKni<5SrT0zO2_dPAFbrc3e>->MT5S0-^6v4w zr<(tfJaLU2T}l`ZB++x(0WHvJJE0nzzj@kMB+GE`#B9v|O#@m&E- z)ZhlBW3+WrLmQDD)CQ_#Y5mc!vuF z_TH*m5Ql0*D@M4B@7Rh$KkM}iK1p%hzmx$%`B6aRDv_eE3#GtTnmRJ&;MT8g~3>=R=O6#3+S zBO$!i#z|OQA6AcB*v@4EIGL1$+ zv4~;oRIDwai~BR?+8BJ7*pD{DB-QjqKwXQ5O0eOVz9)mL4*g$lcd&nn<`pMZI#)_G zPit-P;LZs0jO2a0ntD2YQ>eMs3gC$Ru~*-->vf2(|3Kw5d494gwgF*a5&vau*Rp=Ww2T*RWIZUbn@$?6 zDR%ex|D7tvpx?CTeFv%I`L02^k?sq)S%zh553`eHOMMaFOtI{t$ved{b%Vf$X_LDdLB+Uv7etD z(217lZxS5hV|z|zRTO>T1y|_-Vn4*TgLSHI3;m$!!$l}$Aaf8PrFxs! zMX_0NMS?};EE<&xAF`J~L1OoCv|Z?uN-NDb*}J<|#t%2n?Y)bIO89JoOeWWs%Z{mj zZm`5$xB=Y3epuc5Ea8aZud^gq z`+p?VKZoc>TLSeO0yXLzUxa^W;?7alg@(F9yvvNm4st~vCJJ@G`%Xu}dCqjs9apSc zygLEz7#x189>Bed7mj+?c~T=?v9s~^*op1MQR*HspNP}7h_SZ*@V*jcd0BLhV9>A0 z{?-;Kz5-0@RttDv^OAzY)8oi->T^rWi%&Qs#f-N3V{7WdlBH`$40+J+Udc!XK`z`=5m)s_JH%4GQz} zemiacShY>ea>tazOXL;%+dc+x*I^V*XE$UT4LKasW68Ha;%LtUUtq1)GT{BMYR2a@LOd>X3e!I<`$qv2r)UjmCVURMLuCv;9sU8-(G^RdeiD`H^E^!kq3CD`#fo-th%ASk8%mwK1`g78A+;^TWUO9IBID_cCdB zW@4_4cWvg$RgseUU7N6?jR(H{6UQc~Jg-rNaGSBSNODM?I2=$);(bHB2c=M)GHoxk z%#^3PKf<31Me<}Uab6QoD^s0ANh@>mlJ~b_5-Y9|IASe^K$)^iM*Q-q2x6l9AFP{T z>>j9k@JV#}tE)+<6y!5i#ZpRNCfvy26M=%Hfv6y`W_^NNT)y-Dqk#)`q7V5&n?3Sh z;+lS6{~=HWJNGhSvEx;*E^s_4*6KNF*Y|GO#Q4j$xIdVYAct~TdnUuTw7sd06n5{N zoCO`}CTh6fP<+ajiCK&`=WG!(5{?y2{o1ZuyR+sGMO*_uy1*-9(o^8nkn*E(y80B! zN1gPGTUKR}SGZnyB}F$tlrU4^1QUw6)%#ARJBXj6404e~L=%N~B_PnJYb=r8WFedu zmV5bM!W%AEx@nzd?Z@R_Aiw?9AYxA2-HcU+MJ4$}7 zk00JCTk}*i5GLowVZ^}tYudck)hDPb*0y-J|Ar&u38cnRd4L`jK7MNHJr3(`qnG-B zz#nzseYMGY(u4VYy3aJezC+_rXd{wAG%Q97R>6!4b?6aiRBNh4gV7b$ysh2YuU7>L zt52MNuVVqftr_vr_3z$@+B1ohUiDbud&&A&}(LK)W* z1#6(cA>`^(1)c%B=R$m1<_<|w5xS+ajo|15Q@(?Rgs<2$qo)a=+rmTe8mJn&7j5aB z$$}B@8v3qIVGis+KSlS?$`UIM=Q^?b$wK_E_}>v3E5t!jW2|3S>(QH znyJ<)Ea%qzvB{^YLh62-_8a?6-d{yluca#Bud!J!wGcEll=Gve!>K3 z8Jtmit0zD=>mc4i3FJQQ9VA0JrdqPHv{(5R)SR882Y+(2RjaH591Ogyz%dLOo43wo zoLsaS?b0}0q+%6Oxe%l7v`60n9gHP>u-C!XkID%1+*A$Udr%kCH>!{2C=2H0js7FK z{eH3{8ykc!K{fw5?a35H&x9w<&Wn`2qu>tSN(99^;|P-=vX6E+iqPa!izLtveZJPi z8xCixQ`*Ql@k|8E#fQL8g(@KD~dtK6V?f!b%WzW8jKIE@yY5pO$C8_2n+hA}i zN%>jfS3FUzr@GeG?H;nwvH;OLab=f(Br22jG?k}cNw`O7kAkh;Jpgy_A`+WkLX`g^ zzbdKb?k*gMe3&{Yzw^K|c)`cgAA_p30ue(Z`E=21m8HuZfzRJG3gu118b zNno`>JH0c#zn{UXpBOSGh@k%>@Xq#Jj-STnl0oE;3Oxxep$n7K>2b9C;k3Gw&|Y7A3)DLTiemHea9izAjiWq5WOnRMuw<6e8PV0_o+lQEZXICcE24| zwH?ixF7E>mH!WLur*%w9}7x86+{>I<;3ySnD;T-N^W z7w9IadSHYp06)qGg==j1PkR-kC(W<3YA@JF^H5jnB?bDAsw^J=^#7<*mn^%^byp5C zh*+Ro3u{_$;X?sFm$|jhJe>M4>-P6k3im?{*V&Z*v(Fyi*%dZmtXLnPfemu9on>2td2oRVP3etDfOkXb0lUIo{hPpf|6mVG&PUq@V>go=W=lt?35BBU^=9TTodvd&!kA zgm)UfoJ`IAZ8;XJU2#z*_NZ`lM!zSUCj7_gPMu#-kM0T3vBhAYIE-v%$NF`p5&63Q zI1R_jJtFNe?t(T2^>%wf8hqbwYsHM0AD_0Yew9i$lJwfY=?D|+FN$|X#go4zJW zK$)S-M5eY;w~=#ACL%{<@kNIdDZ^4`&B@roRjD;3+-O`x+KHx{D0#_SQmpJLcUzVn z-q=XJD>txB;$<}#-K>VdhOdeCeQlO@63Z)Eln)#2x024N6p`uNTf5kd|K56Qk)4_9 zcH-#+vX@P~A7lkK1wJ9^&)iucq!#+zj_BQ!Zd;jC>9Pc~oUrZ7Su|6$6nzFJbi1&` znxh(17X}kDgLHMXG%}YIm&bf4b&|Q<0#|6c!+r;os-0+vh-ha?)+ftT6z~0(SA7;OJfhA=x8GmL<2*MAd9at0(C_?ZYR1p9 zL>sJF)^s)6Z2 zbzJB<;NHH6)2zaAgml*7V?Sq!evJ9p!!V|>Ij9_$@x6+NVtbeHaBlJGW-ZsC_iKt~ z&)|#@XZMPIW(r}i51zl=?v2`bQkt-FRgGtjoF066KUb66f*c~;x<0<=@w7+$y%~-e z`rR;0nf5xB-lF?f9T@b2g-IF8RYtzDAAk~D*9jm8=Lq-3^+F#dK(K(nN z?+v2PP8YL#?e@#)`&>$VU;A;*E!(q^_oJg`HVS;B-lE(qYcKq`zxct12J`YNV*)lnISm0u!j}U3oT{Oj}B`_OfGV^xP3R1Z^WNAb5q*JFr zx&48r8T>w(2Fo`iura&)=bAA_kIS0JE38`QC!Zfu$u6xS4%ufxbEExpb9S{MvNs~& zZ<9K_n=zU3l}|MfWZc|GTVLaUw~9enR+*Y^-ePSF^krJsgyp>t<;6I)TxGI9k&AbW zP%=Dc46`Pcw3ZsUwuiGrsydU8Fc9%hqAjK4iP(m!z|rq_f88hB1aCg955>iTtI4z1 z$~;Gr`sm9p9WyuU1(MEjaN?;>&9`3gmfUItet&8ZJ!tH|?ZCQshD#aA^nEYi8~3Pm z^G}t@>Ee)KpgW@(VJz#Oz_{B{ny$NrPaB48#Y=g4|7QOq>xqd-md)nR3xqn>1w9(1 zLZi6W*O&e%P5n(1dOKu8zV<5{(DAtD+1{2O_3H|5xuq_=x~bJ>T0Eyq%j1*c;^OT}-T9?lvyJr~9ioAo2QR`tp2uk(nVxmGry6Vr6`=)||@cNe4z4wD*WWAEH88m_QAM0qd+4N1u?g4(S zIsi%ePp=IOV(K5 zwVLb9S^%H`2T|)$Wuz$Px+3i2s&(EId`tN%Tv5AKPSwxupdvlWm&CuAk$XQe`kF2Z zs*FM|oL(dnaolmtOR~Yu!lH<9R4gTBuvzm|bhO(M$rb^ruxDti);84g3-MBERwz!m@TaB4XtdPHt2T*M{2UwCU8bwL9FaLnj1kIK z$iId|v)SQ~#^}ZL+0#FJ{Fe!jRAZadPW3~j z9HQs7X+7_gxvc+~Uw2DwwC_Wwag58_<=0Xu90iI7Qp}e5+;gXOxvyWS!TD9C(fA4{ zy$bTK4&(%C2Y(4Se)q=dAf?WDr`1shVcXe-dh)tJ=@FzxXs?-Ay1J2{gc{7%(7?^G zx9Gy$O=i_Gx*5x*rLsa6?LGexY**yMXNk`z2;3bQ9bHUvk#mlyER9xLx^Jh<{UXt9&JVH_>oXX%a)e^3=v-`d5Oy@_u=%t16is&grDd|MG;< zGu2iIsGELr;xL7*3rqLMm|pl`>b@$;L?v@k<_qmyPA>JfJJjBz>HACG%7$jS zc>wRu6qpu-6Bj=jeZdy$U9YTYB{y?(KMhX_^|NlOe0`3a*(piNBBpYMA&j4w{5%TuHV_N2~x!Y2@^yr*p#c+o!JKvmtGiKLyU9``Hs!j zL|y2T9JifoR#JPPob>VL)d~aip`KIKM#UAmI90lKKfwto@)o;~>Wh~CkK{|M2)){x zGB3VVuw{ui6g4&^rguBski+kJ!E9SL;$IUA+(rC%AbWNwh#E!MuCcidj+Hq38u9OX zKux!-cJv+qO{C@4GxL8p;eX!TTL&%l^?!0w~B9R5jcO}3M@z=RKg)+L_u zY}sVNMd#-jMpc1z38rycCh_^%&uyCEt2dF7;M>)Hikvm$1VbO>9cK^)P#D{{I{Q~M z@kQ$o3n`yu>P=2~8=Lx#OC+YSc>>{$WZyY3Jl0Eks_|Ri66f#`?{Y3opvp!UIua$} z?uSe{7T?R)HD=jZ>dDG-J(Z0D?EWM1QGQ+nsG)q%nIF z?d*phjd7+CG% z)%O!~%m{fb(w&~eV6KzI@Z|IUk{jRmplkMP#Ki}EkrEGjvBTr$5w>aT?Sj)}|Fv6w zywXIql*}n(_N@;>-AV86c07zF^Pk=Dd9wPn?hgHTjclgvwBukyGwOx6R)|>&+;8Ib zJaeVDvCzgpXs%)?qRVTai|sn5fH2-hB66sEk&5Bdl+oC7w0ANH#}#cJQT(G0Gy#_2 zUO|Z^npBy@)nnQ{@O_()rLAuy7yp&eUAul##r!MvKa<8v7yTP?D6#xk4M~xh^R%)`p+1Qj3}sIdZ#Og8HWmEdwvqWi`UXdPWUB(m=oUzknDB z!p;iZIjCcRqqS++K{EZHt2tc{e@@r7k*{X+x8h&Bo{TPi_C1ngz3N)Oj3CfpNp%zY z*6b5q*OcuTymFkd#2ue?dw$T#sQ3>S(dgAxhRB;i3`_6v0-qjD?mkd?78(XBV7%;oP7GrHD=6)_?%l0GnQ9K2?%CHV+CV9Z=+nEy9-owl=X7SWc z`kG6=gwDwz_3bxlqbsu(Mdsiqcjl=TN1^p8zj)8M@Ve%Mw2ZdMhVsUt&g;xvEpN%+ zd+I=gz2Q$KafZ&Ks@-rpB_@g=QyDIX2Ekl8w~OJ6_3t!RKjU2n3^TNxigpK|?W!Nn zb0BF%r9WVJ?@p_^eu}PaPVFpYqkg^}c?jdZ(MAh~LuE^LWMZYQOfFV*Jb2{kSy%^) zxuUSi(x(DN7}DNMk#D8Xc1&MQWd$>m{D~(lW~Giz6PS9P7pRkEZtrcuW$Zs?Kktmb zHklaW-O4lApXW@fatf4XH<)Sy4xlM18}Mc=Ld}9`AJf1;-uYd2-AMGq znh5xMjx>DqVbFnTqPfyk;;FI%?YQO+aAsH2EmkA zr}8eqkk<%O?|~-D=9-$$+K;qI0?$g9`4e5|#R^_>ByL7FDQYx+utJ%gwo^UTQYN{c z6^yviby&?H-+tT5tCRZqc`(6T6L#>JSbq*`np;BBwypk>beWBJ2Czb13N4rGsnNTW zqBYeoi8s9}a?!ZgzfFI^CXi@dyh8_!!<_@lhT%GnN_WlJc$#ZVQqs@-FVe6@T@!dTk~)`!2}=QtD)D zO)f9Z#lMwpjGqTmn%^rC-gI>M`UVw0^SOf?Tj~(zp-e6Ffhvo3ORs3nN?hAe_Ue>7 z{`Y|NcHQiXC^2pyjaW3NYvkB8IF8LFFztWp$w8Z!442c5BI+l&uTCMQYEHueH< zotH0~U}lrhy`#$FT5*Ss_{p0JLF>Q@fKO0kR-S(g5h4nv!|LdyR_`YKM`Du2VBBFj}cEpjGs!@}sZDmHR_iQ=SsAQJi90V!m zLf-5-wkl!g5u&k~ecrw}G`My8#lTHTZX-TVi3zoDn+IXhXReJ$v+*s9WNu{br=eMa z_n}r8ra`2OP=ZeMvAI4J7&8oG)j%(N><2}dNB$@jb=C!m zg%}~M!FSlXd~ljbJ>nSiG4jSx?gjRH0U!fBN#KD*b?dcSmH$GG-NP5K4-jkm6(!>k zmOhiWaYmTjG;ic`+uvb9!ouyLtC{rwNW$Utt|*-DMR+!3aEeWU?5*JYrK0vbcwxoy zd5i1w3d@*$t6@Yn8vf)jem3+73uo!QB}{>9O}~(3CYJ4H-fgG~7M@=4i1u~htjz9G3{TXg>&*0(&!mI22PQzPe~^{3aR)s081<~eU6V`I@R>7* zwB;sF-MguGDO$Y0?-4mPddSEuX<`l%V!mZ4@jgwFBbq?YLf#xXUA#X$Y^$Vbnnc$G z9{A(b<^p1LLNxUd)#lB{1>ztRsC)bDtHK!?O9japPNSOU9vVT;Xyur=$V!%@g?MozXf?AEwA7%4a$2SPs- z-m-E*i2$kMmzC%+vZ!ZKSx84y*V4BdW3T^8uA>VxEtBUo^1{luZxq@h;YAnQ-{7|H zVdf}@6tys!cb{HSB3G2y(V`9)43lT6BXhw=ZqHJ`45sT8JtT^WssW?TE}B>bCa~)? z3KZT}t)5y|r+v!2f(%w*M2gg<kxA z5!8x7%{nSstXe5rgda7TS0|TuHMBn!faNfq`zGN6p%SMABJrDck3gTEqkJAx@*vCq z{V5BEx23BK%uF=zn*PfK%${YKtbrT9YKn2<82f*~jD;68%(92rgl@bE>nBr&*bJOJ zHkS#Tg}yjePmLSlPo`h)rNevI3JY;>ykQsYXqy-8oniyBL7yjfT^{NEJMrR^5WByB4ev=U^$)(48Taj`T}N`^{+^5Hy0r$}ukhXul)VJ}H+_P<3zf!{Hl81M z1LpHDHEYpjJu@3=#v_w@ZXXZbCG6@F=$R!#VaD-4N&7nln%G*&A$>g)>2Z-+jM7$? z+~zCo_Y|Q3tNOK;HTTH2+U?lV(G-_*2)v_qH20}vnq`V%p>pt8gT@@w#vBoKl@bHB zl5z&n-{>G9A)0>L0vR7y$Ba&RUQ?jJKi7(T2?s)x zpx_6G=m?Qao~H4$)HiPUvt2I`_q=UZXRALE2P6eyF~q8Qpopt9Co7g3f&Q-4b570| z7rjdlM!)fe4%kpUhvbFj96GR8FJHH`AyOxzN{bAWbPf>Ns4U`N>2_y^l&r}HpM%-o zI$f*mUbx@!z3>A&JN`*fA6o$YhGzccG)>fSe`qyuT2OpKSI-xDt}JMY&w4ls=v)!P z8tTa;7VWaPbO$7Ce;%$=e+$mnJ~Re?t=BmY<7RGXd`gtYtZ6jgq`{iQUp3x2GmtD4W#zbd#m#U2 z6=piXugg7r{3_s?fDqe+44(!IB|Ei)wa}UqC&4MFlAhKac8FkZz22 zno9gUH?H3FUNH4F+2}cWZFO82{C^ysXFQwl+s3t&mZGKhNQ+i&s`f}#Nm12hkF-_P zt{p^DReQuJT1u++jJ@})Rh!xpdnZN&k>7LwpVwZ*C%LclzRvSJj_<*Wkc26i;h|s1 zH!%wuxF><&%6p~qMla+VzZm+Y5U~0`INvipTA?0omL@gfIhK8P+Hle0u)}A`j~n8G zCx7J4Jg+bx7%mmi^UpKM|KP-XnF}VwB=RPgtE*dgGv#HWsQc^43dojSaI+i`I%@la zJ+p8Tf=#p3gLv6_N!O$=!2V7_t{Z1;JYDhQjX0WD-+nYPY>?sTU9%1r(^NGFqH8AG z$ie?(pxMnRm8aj=4~_a=ZNXuZ{rc)Syi~KhN7SskRZ^zzkyg^V(gTCH!DoAf1U|5I|FBx#JtL8-svv)=FP z5`ky(&xP2f9{p_Yk*T^xefDhborb5`+I%+Q zugLkb)6dr-s}V0g~42C*lLF=A`!w2|AM zsTRLd8lF5x~H567b&t`a)mjqq=aA50~8Tq(?KzALvRE2Qnu&beO2q7&vb|wDj zKT*7PvnLvmZ7U8NLO*sYsANE09Us$xC-#n> zt>t2)CC`JL+DPs2mL<{1o@I*(_j+I?>AI)9xdyXuamyKc60+R}Vm`98>zu)KIHuNl zp6dWQXVcoJ?!(?Zt)7qwjFo1lBbh9yoLK~@7ldqAKLfKgFVlTSD)vKnvhVf z%1lW)6OCe6a}U+HpDJ@(=IidA$TDf@FO1#o-{U-vyFj+nC4GuBKdpy?Xw8(PYrw+! zX7-TBBw5GK-k$EO>O(=)laV6q=nlC#-LOtVyl!twmOXI@9yn8nVRYobN00)h7`$-# z;XSxHu5j%8PI0Ztx9iC%nw=l%gwliZ*?J%G&i1O+p2qSOZne5Wa{;&@FmasTCi-1` zlTv@+I90G9GP%EsGWwY57_IGCm6*gJ6z$&X-1f5dZVkvaw{$AY9}+Htr+g;N_1iyhs9nN*y!frI z2nWzo%9u`Po{kjAS2Bl0q`8LLd>LiZG4v}Yu8dgfCc=>TXMY#!XhNA;xYdBS&0c0^ zBRN`-kh%Y!2sx&?%-jex`J8PXV{0oEdpVXz=(_QsIvxJ>qJV7o?p%xPdboQeA#a!3 zzQB)_SgwphixLmieTGCXmUv1tKelyw+Wy;7r$s$XPrKQcG=hmpP1E&vnL71RZJ=CR zwf4uh1S_M0)7Q9Qab`G9Tm7X2&iowIDSL=(u(O`-7H0C| z4w&Od#=&ozN}oIKgc~g|<)2XppF9!fTkYB{Ujo~sWCzE|65h>hQ-8K9rac_Rh*y?wuT1SowJq{tBFJ~Lwp0#d-+r@G zbh7a{x?POWnYAJb_dr~mTs$jGJE>;J-xJ# z9VztXIfQ)oB2!(_3dW8MNtYNt@`uv%6c$G7nq)1=agF=}^zh%FQJZ&~Xg`bcDO0_{ z2p=MZwk-&dIF=pvQK0KZfNl@UhGc{Jv45zV*cEgh)#uLVk-X{NQ*r(HG$>#jU$Klx zBM5f*sTX6#^!z12uPQl`wp~MHW^4NL9$hj#`5@gxb8{P7VpDfae{^fgQev7&sZke{ z?-d&@$gZCUOKtC|f4cagYC~WK8a;N^m*-M&tEsyLZ%oGKu%n-Li~4HHxxx1WWgQ;b z8zU+=uDypTsfq2)8Lx+;8f7x!N*7h?*GMgosvX^M8&!ks7vIb5vtUshJ37bUUq_gc z8&`aNv+p0~YniPl8anvW^|SPlLGx@(d_z~H8(l3akL@PT}WitOP@H?uz$!)m`EJ!+7wX!9Oo z@IbxiVs(ikccgljnDo2a>fTsw`6SNxwnzC}rPrh{xpT$|uoeT#*s!E?>p&c{9C+dR zV%Xptl2VCeZtfQU@UEq7V`yHxqEFs6i48;<7*?!-!b&fayQkbyrw*^6oq;KP zF^Rumzh`s=0iI-JFGxJXZHTXDN}$d)Qf8OHE6b!h>j@4MGB(eORxuxwkdx!rAHA;~ z4^BMEYf}$ZKi<=Cep=Dq(XKxE$@Y2hukHGrI_D*oI^c0ybuqb=d@~o1A&59FQ{yov z1mP$+XesCX2I}0{F#NLbP3fCmHJ{7-WTSkZke|w}zIL4HPVmRkj)D4W{b2&}SjavL zKdNTT?KX>8`q&Y{K|)9`;GmxUyVA`+4DL)IUhC1)LVcZFwU`37yFA@IDK+&&VT~@_ z`jFQqMTc>Y&Ij6`iDEr#?hY!J9FI!{KN%%}x;@T}ZI%|VcHtz96ikNx3EtgXjl%lD zNszOwf^m`kJt`@C(07`{0a zI|~^<)=q_c$BEdv56DL``3h9D|$`n1qV_s2b2so4fW ztoJhWyMVTk!E_E5WL)bUXEuH3TLph-9ymr8>I#0vd|RA|*WrgjdIcov9nS;BOHgJ#_A!Ax+lYgS>DD%NLCZ|_jvf&wFAVh2bV294UW zlhxIl1;5hvhb=J5{^9H)SVWzR(%QnVE)ak=B2DF?u5CnzavT0&_7ymu6$}_Z>9yVw zI~K+!x1mDOSC1az_di#DtZa~$6_hly|A)L)UNf-1<+gFfKXy#0d%w}K8*WJOZ#U!5 zqVSB&Kv`koh?hB=dc+@zEt?fz1iso8KHa*4@cm)OIp3n499rCeigYt2Qe4bftz> z_TO%8%h(*{c*7SxI7ACMzIr*PyJ@sTZ>%y>sC0C9baLTN@YC`8pk*tS_PjlSn@>Ff zhyb&Src_%F3@OMsym#O^AKYaMA!Y@)EhmL$0||Fm2=n6V{2@l>X}LjOtlz$9yC~pW z(Fn)UV+@GwaFIxU1LU$EBkgcfj1Gm2KhuTBilPiIU58hVJKw-&u3t7O69A$@6*2iG z+W&rpS{Nsht!l>_P4SQ}^-BaHXCJ;J6@j6<8iFlO-ba|0-rC7*1#T~SNMP8X)yVWX zeVy4S3C5$FCG)SFLthf8m#uzaBh44XxGi^l{Cpx+Wm^nVCN)$UeH=ajtb;~rffv(D zggrT)OU04UJSzLgV+AiP3;x<{iNpn;nYU&73N}Ru`AfQ)n$$tqXbJQL{Sa z;{I>W&5>g4Vdx#5m#( zE0DjCjoa3GT8^@UIThJLlt!{69Y8R>#W9<$>rmfbSbH<&9J=Po9B0FbjgX=9<%=BL+7*zd7 zHGs1Q4!;u+Sfy9f3aShao~c!gSmTTGm}T%lkJgaYfbG`sMG1oUpM^R6HmN7O&Bo_; z(wnN3t%(nxq`AIyFU2Zun{gmG@Y)5TyWV93D*;OlpslMV)|8t8=8qC~`DqE-*_ls& z7IgTE!^jWbP~Ifpm_qCnpImv)yG@T;2imuuMA$mz+Wxsdnq>~wk893G;uu01)&PWL zgqrR8)dr1ty7bAVB`S3-kC=&$4RontOXqpMxH>P{cDM?9Q~O%-)5+bvBWHb1B1lF7PZJ8`u8lB+3iZ;r3VXPsJ7P* z++HPI$BYv1CvI!;CW+R0QcsLPnmiEf25hint=tfbAdi0*ojlOHSYAGE?@9xpKulss z>0`^l?R2{QK3OBnVGM3gGIr^^8?#wfVh^~cr`{bZ-`_CzTMnx9cnN=o2k)Gmo5Nt_ zHzcq7V{+KTXk-0wXUx0Wmkl<%1-quzCpNQ^N=9y7e$ZKth;NgqT?yk%gEt
aOr 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

(G7G4)qbJXel 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

Ix9tFbqY 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 literal 0 HcmV?d00001 diff --git a/docs/search.json b/docs/search.json index 982c87af1..9c90af7b7 100644 --- a/docs/search.json +++ b/docs/search.json @@ -45,260 +45,338 @@ "text": "IBM once launched a demo of speech-to-text in the early day’s of the technology. But there was a twist: it was smoke and mirrors. A typist in behind the stage was translating and typing.\nThis is a mechanical Turk.\nIn data science, we can present results or dashboards to audience members before they see anything. If you see a big reaction, you know you found a number they cared about.\nGo ahead, write the conclusion first. Fake the chart first. Then back out the code that could produce the insights they need.\nSometimes, unique insights appear along the way. But most of the time you can properly gut-check whether someone will care about what you’re doing. Save time. Work backward.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2023-12-21-the-dodo/index.html", - "href": "posts/2023-12-21-the-dodo/index.html", - "title": "The Allegory of the Dodo", + "objectID": "posts/2023-12-19-how-to-encourage-your-kids-/index.html", + "href": "posts/2023-12-19-how-to-encourage-your-kids-/index.html", + "title": "How to encourage your kids", "section": "", - "text": "The scoop\nThere’s a great kids book, called “There’s a dodo on the wedding cake”.\nSo there’s this dodo, right, who walks in and hops on a cake. The attending violinist then scares it away and is praised for protecting the cake.\nTo the reader’s delight, more animals start appearing and the violinist excitedly protects the cake through hilarious misadventure. (My favorite is when he says, “begone beavers!”)\nTwo funny things happen though:\n\nThe guy soon realizes that all these creatures are wedding guests.\nThe guy has such a big nose and he’s allergic to marshmallows, that when he’s offered some cake he sneezes and the cake goes flying.\n\n\n\n\ndodo on a cake\n\n\n\n\nMorale?\n\nWhen you praise someone for doing something good, they do it again and again. → There’s a natural hero inside all of us.\nBut only the first animal was a problem. The beavers were the chefs. So he ends up creating all these problems thinking they’re problems. → In tech, when you fix a bug you then think other things are bugs and go off fixing those too. No, just do the first. Then check in.\nThe irony is that, despite saving the cake, he sneezes and ruins the cake. → Despite all the effort, the greatest protection to the cake was him staying away from it. Sometimes by trying to solve a problem we can make things way worse and create all these problems. (Politics? Create problems by creating solutions to problems that need solutions.)\n\nDon’t mistake a beaver for a dodo. But don’t mistake a dodo for a wedding guest.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "Foster talent by:\n\ncreating stress free environment\nfinish before they’re tired\ndon’t pamper them at the country club\ntreat them for 10 minutes after\nno need to teach. Kids will figure it out\npeople who are great don’t necessarily love what they do, but those who love what they do will be great\n\n\n\nThis from Padraig Harrington should be required viewing for parents. Some really great advice.pic.twitter.com/ExE5rZpg7a\n\n— Kendall Baker (@kendallbaker) December 18, 2023\n\n\nI love it.\nThis is probably good management advice in any capacity.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2023-12-25-ai-robots-are-mastering-tasks-faster-than-humans-/index.html", - "href": "posts/2023-12-25-ai-robots-are-mastering-tasks-faster-than-humans-/index.html", - "title": "AI Robots are mastering tasks faster than humans", + "objectID": "posts/2022-07-03-when-data-collection-goes-too-far/index.html", + "href": "posts/2022-07-03-when-data-collection-goes-too-far/index.html", + "title": "When data collection goes too far", "section": "", - "text": "With a proper objective function, machines can do really hard, isolated tasks\n\n\n\n\nthey can walk\nthey can solve complex physical challenges\nthey can play the toughest strategic games on earth and win (AlphaGo 2017, AlphaStar 2019)\nbut can they determine the objective function by themselves?\n\n\n\n\nReinforcement Learning\nGreat article written at Techradar going over the advances in reinforcement learning that allow a robot to finish labyrinth faster than humans. The video does the feat even more justice:\n\nThis stands out to me in a few ways, principally that they crippled the machine to not take shortcuts. It still won.\nReminds me first of AlphaGo:\n\nWhich reminds me of AlphaStar. Here’s a video with commentary on AlphaStar’s performance:\n\nThe thing I connect this video (or some other I watched) with labyrinth is that AlphaStar devised brand new strategies. Players against AlphaStar remarked how they felt like it was indeed being creative. Likewise, Cyberrunner (labyrinth) found shortcuts.\nAll of this points to reinforcement learning as a viable solution to getting stuff done both in the digital and physical worlds. Take, for example, how RL is used to teach a robot how to walk.\n\n\n\nAn AI robot learning to play StarCraft for the first time…\n\n\n\n\nWhat’s the objective?\nThe goal for Super AI will be to figure out what the objective is. If we can marry digital and physical worlds, teaching the systems how to solve objective functions, the possibilities become…super/human.\nThe unique thing about a human, it seems, is that we have our objective function hardwired into us: survive. First this is “food/shelter”. Next it’s social survival.\nHow do humans figure out objective functions so fast? A human looking at labyrinth will know what to do within a second. Does it have interest/patience to sit there and learn it? Does GPT 4Vision have the ability to figure out these objective functions?\nWe learn by objective functions. Minimize wrong answers on a test. Minimize missed baskets on the basketball court. Minimize rejections in a sales funnel. Maximize great conversation and connection at a dinner party.\nHumans learn very quickly. For now, robots are being isolated to specific tasks and their results are impressive. But perhaps to become our overlords all they need is the one objective function to rule them all. Er, uhm, and by “them” I of course don’t mean “us”…\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "Self Surveillance\nI came across this article in Flowing Data and thought it was fascinating.\nI’ve been on a productivity kick lately and notice these apps have habit trackers. I’ve tried using them in the past and have realized it gets too much too quickly. But that doesn’t mean as a data guy that I don’t think it’s a cool idea. It just overwhelms me.\nWe’ll I discovered that me tracking a few habits a day is junior varsity level. Felix’s blog is how it’s done to the extreme. Clearly this guy isn’t worried about Big Tech or Big Government harvesting his personal data. I love the boldness!\nThis is just 1/20th of the full page screen shot:\n\nThe number of slices and views he has is endless. It’s crazy to see everything he’s tracking, partly I’m sure because he has fun with it and the other part because he deep down hopes there’s something there.\nHis quote on Flowing Data has stuck with me:\n\nOverall, having spent a significant amount of time building this project, scaling it up to the size it’s at now, as well as analysing the data, the main conclusion is that it is not worth building your own solution, and investing this much time. When I first started building this project 3 years ago, I expected to learn way more surprising and interesting facts. There were some, and it’s super interesting to look through those graphs, however retrospectively, it did not justify the hundreds of hours I invested in this project.\n\nThis guy probably knows himself in a way that none of us ever will. He can’t ever lie to himself and say “yea, I’m good at exercising every day” because he’s got the data to back it up. But is this the life we want?\n\n\nSelf Surveillance as a Service\nSSaaS? Apparently. Exist.io tries to find patterns in your personal data and tell you when your most happy.\n\n\n\nExist.io\n\n\nWhen I researched the Apple Watch team a few years back I came to appreciate what they were/are trying to do: correlate heart monitoring with insurance claims data to proactively identify preemptive signs of cardiac arrest and other health issues.\nThat seems meaningful in theory because information about other people can be correlated with information about me.\nBut does info about myself correlate with info about myself? Probably. I have cycles. I have common traps and pitfalls like any human walking this earth. Some pitfalls are daily, some are quarterly or seasonal.\nBut I can also take 5 minutes to ponder reflectively or talk to a close friend and identify those patterns. What’s more human?\nAnd what’s more: if you end up changing your behavior then your past can’t really predict your future. So all of the data becomes moot once it achieves its purpose: true lasting change. Because if you truly change your behavior based on the insights you glean about yourself, those past triggers and anomalies no longer affect you in the way they did. So when you experience a personal step change in life, you’re a new you. Maybe not. But maybe.\nAlso, the new generations growing up on smartphones have a unique challenge: their online identities are given to them before they’re really conscious enough to determine if that’s what they want to show the world. Parents posting YouTube or TikToks of their kids are cementing for these kids an identity they themselves didn’t choose. We’ve all gone through phases of deleting Facebook photos from 15 years ago because it doesn’t reflect our current self image. What’s to be said of giving people an opportunity to change if everything they’ve ever said or done is recorded somewhere? Twitter. Instagram. TikTok. Facebook. Every post is cementing us in a way.\nI think it’s better to forget yesterday. Because it doesn’t have to have any bearing on where you’re going tomorrow. It can if you let it. But your past doesn’t have to define you.\n\n\nTakeaways\nWould you rather spend hours setting up digital automatic and manual tracking systems just to learn what you could by opening a gratitude journal every day? Sometimes less is more. I don’t think digital self surveillance is a direction we should go. (Not to mention the moment you do get hacked you’ll deeply regret it.)\nEven blogging can be dangerous for your career. Never know what’s gonna come back to haunt you years later.\nSo I should be careful what I say here, that is if I ever care to work for a self surveillance company in the future.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2023-12-13-learn-by-doing/index.html", - "href": "posts/2023-12-13-learn-by-doing/index.html", - "title": "Learn by doing", + "objectID": "posts/2023-12-12-future-of-coding/index.html", + "href": "posts/2023-12-12-future-of-coding/index.html", + "title": "Future of Coding", "section": "", - "text": "TL;DR: Yes, unintelligent people can use things without fully understanding them\n\n\n\n\n\n\n\n\nMany people have their noses up their ass when they claim you can't use an algorithm you don't fully understand.They give themselves this fake moral superiority. They must be the only ones who belong because they know every detail.This is all bullshit.Here are a few simple…\n\n— Santiago (@svpino) December 12, 2023\n\n\nWhile the language is perhaps a bit strong, I agree with the sentiment here.\nI don’t have a PhD but have been limited twice in my career by those who wish I had one. What would having a PhD give you that I don’t have?\nWell, I trust you more if you had one.\nJeremy Howard, a world renowned research and creator of fast.ai and answers.ai started his lectures on deep learning with “you don’t need to have a math degree, you just need to know a little bit of code”. With that philosophy he’s helped entrepreneurs create amazing products that left his free online program.\n\nBlindspots tho\nConcepts are important to understand. Understanding your training data and how the machines learn from them and the biases they’re prone to is very useful, perhaps mission critical, to creating value.\nSo what’s the line? Well, if you got a PhD you’d probably spend 80% of your time on your dissertation and taking some non relevant coursework. How does that help you today?\nWell, you should learn as many concepts as you can. Like driving a car, you don’t need to know hydroplaning but you should learn hydroplaning. You don’t need to know how to drive in snow but you should know that driving a car in the snow with rear wheel drive is a different experience.\nIf you live in Arizona you don’t need to know how to drive in the snow. Your bias is you’ll never know why that would be necessary.\n\n\nPrinciple\nBe so curious that you explore the boundaries of your space such that you learn “oh, cars work differently in snow, but I don’t have snow so I’m safe”. Once you reach the boundary you probably know enough. Then ship your code and learn by how you messed things up.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "The Essence\n\n\n\n\n\n\nTL;DR: The future belongs to those whom it’s always belonged\n\n\n\n\n\n\nA blogger data scientist Santiago recently said on Twitter, (paraphrasing) “I’m going to focus on what won’t change”. He was worried about how coding and AI will be automated, but Jeff Bezos wasn’t worried about so much of the world changing with the Internet. Bezos focused on what wasn’t changing.\nThis thought hit me, because I think it’s relevant to what our future looks like in 18 months.\n\n\nEvery day, a new winner\nNothings more apparent that the world is going to be wildly different than the past than to hop on X and see new academics one upping themselves with the next greatest LLM. Mistral just announced a 2Bn valuation as a 6 month old company. Fast is the new pace. And it’s oddly the case that big businesses are capable of massive disruption from upstarts. They can’t afford to stay glacial much longer (5-10 years).\nWith all of this, what about this blog post won’t change? Well, the timeless principle is that the nature of the game has changed permanently. Pandora’s box was opened.\n\n\nThe rise of a new equalizer\nGo into a poor part of town and you’re guaranteed to see one thing: poor people using smart phones.\nThey have access to all the same information that the rich people have. The same excellent software. Same excellent hardware. All for a fee of $50/mo for the hardware and $25/mo for an unlimited data plan.\nSo that out the rich and the poor on the same level.\nWell now, knowledge and reasoning is as accessible as Google Maps. You don’t have to pay $20/mo for ChatGPT plus. You can use Bing, Claude.ai, bard.google.com, You.com, or perplexity.ai for free. Now.\nSure people hate on bard and want to use the latest and greatest. But even the crappiest of the four I mentioned above (granted Bing/You.com use GPT in the background), is still leaps ahead of where we were just a year ago. If we were stuck only using one of these tools forever we’d still be massively more productive than not.\nSo knowledge and intellectual reasoning is going to be commonplace amongst the plebes.\n\n\nif you value intelligence above all other human qualities, you’re gonna have a bad time\n\n— Ilya Sutskever (@ilyasut) October 7, 2023\n\n\n\n\nMore of the same\nSo…what’s going to happen? Well, I’m not sure human nature will change much.\nThey say “being rich doesn’t make you happier. It just makes you more of what you already were before being rich”.\nAnd so, the mentally poor will remain so. They’ll use AI for entertainment. Better video games. Better, faster content. More consumption.\nThe creatives will be more creative. Nobody will be at a barrier of being silo’d. So what if you’ve only done data science for 10 years. You know coding. It’s easy to now do web design. Or copy writing. Or art. Or…\nAnd I won’t be able to stop the masses from using Code Interpreter to do data science. The systems will only become more powerful, so cloud companies will make it easier to write sql or whatever. Heck, 5-10 years English will be the only programming language. (Who here does firmware/bit mapping anymore? Only a select few.)\n\n\nThe hottest new programming language is English\n\n— Andrej Karpathy (@karpathy) January 24, 2023\n\n\nPython programmers will become like the engineers who create the seeds. And the rest of us just get bigger, better, and more efficient farms. There will always be those who specialize, as there are people who write compilers today, but fewer and farther between. Perhaps intellectual interest and economic incentives will equalize.\n\n\nFestivus for the rest of us\nCompanies will become smaller. But the same human needs will need to be met:\n\nfood\nshelter\nclothes\nphysical toys\ndigital entertainment\n\nMore people will just be able to do more things. Perhaps there will be more prosperity as a result.\nAnd more people will unionize and try to prevent the change. But that’s a short term thing. Can’t last forever. A union is only as good as it’s needed.\n\n\nTakeaways\nGet ahead by focusing on what’s essential. Leverage what’s around you to develop new skills to prepare for the future. And be excited. It’s going to be a wild ride.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html", - "href": "posts/2022-06-23-the-best-todolist-manager/index.html", - "title": "What is the best todo list manager?", + "objectID": "posts/2020-12-18-productivity-notes/index.html", + "href": "posts/2020-12-18-productivity-notes/index.html", + "title": "Productivity notes", "section": "", - "text": "Wirecutter reviewed the best todo list apps and declared “ticktick” the winner. After all my research here’s what I’ve learned.\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "Time Management\n\nCalendar my ToDos.\nShorter work is better. Less to edit. Less mistakes. Keep it simple.\n\n\n\nDistractions\n\nBlock 30 min for email and review team members work twice a day.\nAggressively filter email spam.\n\n\n\nAnalysis\n\nStart with a story. End with story.\nIterate quickly with stakeholders.\nalways have one nights sleep before sending a presentation. Edit.\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#structured", - "href": "posts/2022-06-23-the-best-todolist-manager/index.html#structured", - "title": "What is the best todo list manager?", - "section": "Structured", - "text": "Structured\nThe highest rated app for planning on the App Store is “Structured”. Where this app excels is it’s simplicity. It’s likely best for someone like a student that wants to plan out when they’ll get their homework done. What I loved about this app, and what I wish many others apps had, is a duration estimation for a task. Why is it so hard for developers to realize that tasks take time? They obsess over list keeping and app design but ignore the second most basic question: how long will this take? Structured kind of solves this. What I don’t like about this app is the design. While others praise it for its beauty and simplicity I thought the visual feel of it was distracting." + "objectID": "posts/2018-07-02-semantic-versioning-for-data-science-models/semantic-versioning-for-data-science-models.html", + "href": "posts/2018-07-02-semantic-versioning-for-data-science-models/semantic-versioning-for-data-science-models.html", + "title": "Semantic Versioning for Data Science Models", + "section": "", + "text": "If you’ve ever wanted to tag your data science model, you’ve probably wondered how to version it. Which will it be: vx.4.1, v34.1231.51.21, or v91.x4.dev34? After reading about semantic versioning, I propose a method for versioning data science models.\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#microsoft-to-do", - "href": "posts/2022-06-23-the-best-todolist-manager/index.html#microsoft-to-do", - "title": "What is the best todo list manager?", - "section": "Microsoft To Do", - "text": "Microsoft To Do\nMicrosoft To Do used to be a favorite of mine. I loved its daily planner and smart suggestions. It has the philosophy that every day you should start fresh. All unfinished tasks will be removed from today and you’re left to pick and choose what you want to do. The fatal limitation however is that it lacks the ability to plan tomorrows a tasks the day before. So this forces people to have to populate their tasks at the start of the day. This is the worst time for planning for me because I want to get up and get going ASAP. (But honestly most times I wake up 15 minutes before my first meeting or am spending time pouring milk into my kids’ cereal.) Morning is not the best time to plan a day for me, so I lost interest here.\n\n\n\nTo Do has smart text parsing.\n\n\n\n\n\nTo Do has “smart suggestions” that you can add to your day." + "objectID": "posts/2018-07-02-semantic-versioning-for-data-science-models/semantic-versioning-for-data-science-models.html#an-example", + "href": "posts/2018-07-02-semantic-versioning-for-data-science-models/semantic-versioning-for-data-science-models.html#an-example", + "title": "Semantic Versioning for Data Science Models", + "section": "An Example", + "text": "An Example\nI build data science models by building python packages and committing the code to GitHub. The python package contains all of the support files and a main.py file to run the pipeline from start to finish. The support files could contain either helpful loggers to tell me where the pipeline is breaking down, diagnostic tools such as an AUC-ROC plot, files to engineer features, or files to train different model types. So there are really these three things that could happen to my code at any time. It doesn’t matter where those changes occur, or how many lines of code changed. What matters is what’s happened to the model. Each time I get a pull request approved, I’ll update the version number in my repo.\n\nChanging BETWEEN\nIncrement the BETWEEN version for the following changes:\n\nWhen the structure of your data changes\nIf your target variable changes (how you coded it, or data that produced the target changed)\nThe underlying population you’re training on changes\n\nAssume I discovered that I had a bad join. The join change might have been a minor one, but it’s now difficult to really compare the two models because my target was affected as a result. What I was predicting, even if slightly different, is now something different. If you ever feel like you’re comparing apples to oranges when looking at an AUC-ROC curve, update the BETWEEN version.\nWith each BETWEEN change, there should be a clear communication in the release notes of why the model is inherently different from prior models. These changes should be less frequent.\n\n\nChanging WITHIN\nIncrement the WITHIN number when the following happens:\n\nFeatures are added\nData sources are added or updated. (You might have several data sources today that help contribute to the target. But adding a data source might just mean adding new features. If you add data in such a way that it changes what you’re ultimately modeling, update the BETWEEN version.)\nNew modeling types are added. (You might be using a logistic regression, but add a mo)\n\nSo if I added files that allowed me to train different model types, or added files that engineered new features, I’d incrememnt the WITHIN version. In my mind, this shouldn’t be a count of features you include, but should just be incremented every time you do something that affects the model performance.\nAt any time, you might what to view different subsets of features and their effect on the model. So, you might not change the number of features, but add some functionality into your pipeline that now produces three different models in each run. I would increment the WITHIN version number in that case.\nRemember, the goal of this type of versioning is to show generally what’s changed in your pipeline.\n\n\nChanging PROCESS\nIncrement the PROCESS version when the following happens:\n\nA minor bug is fixed (unless this updates BETWEEN or WITHIN)\nEnhance a logger or aspect of the pipeline\nAdd a diagnostic plot or table\n\nBasically, any time you add something that doesn’t ultimately affect the performance of the model, you should update the PROCESS version. Your changes might improve the flow of your code and make you a much happier developer, but if it doesn’t improve the model, then the key priority of your code hasn’t improved." }, { - "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#todoist", - "href": "posts/2022-06-23-the-best-todolist-manager/index.html#todoist", - "title": "What is the best todo list manager?", - "section": "Todoist", - "text": "Todoist\nI’ve tried many times to get into Todoist. It has smart text parsing which is apparently best in class from my Reddit research.\nThings it has:\n\nProjects can have section labels. This lets you organize your list more meaningfully. This is great, only that TickTick does it better. Each project in TickTick can have subprojects. These subprojects act like sections. You can also move subproject from one list to another.\n\n\nThings it lacks:\n\nCan’t nest labels (tags)\nCan’t create labels dynamically - you need to manually add them on the label screen before a task can leverage them.\nCan’t pull in my calendar.\nDoesn’t have check items, only subtasks." + "objectID": "posts/2023-12-15-prompt-techniques/index.html", + "href": "posts/2023-12-15-prompt-techniques/index.html", + "title": "Prompt techniques", + "section": "", + "text": "How to Prompt Engineer\n\n\n\n\n\n\nTL;DR: Prompt Engineering\n\n\n\n\n\n\n\n\nOpen AI released a great Prompt Engineering guide (link in comments). Here is a summary of their 6 strategies for getting better results when prompting GPT-4 pic.twitter.com/QiBASsbOHD\n\n— MindBranches (@MindBranches) December 15, 2023\n\n\nThe summary above is from here:\nPrompt Engineering\n\n\nTakeaways\nIf prompt engineering is the future of coding, then coding is going to change from a deterministic, imperative experience to a stochastic one. That seems odd. 95% chance your output code will do what you want it to do, with a 5% change it does something drastically wrong. How do you unit test that?\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#sorted3", - "href": "posts/2022-06-23-the-best-todolist-manager/index.html#sorted3", - "title": "What is the best todo list manager?", - "section": "Sorted3", - "text": "Sorted3\nThis app takes a different design. It’s main selling point is the ability to auto schedule your day based on the tasks you have for that day.\nPros:\n\nRich formatting on description. Supports markdown.\nclean UI. Good shortcuts.\nintegrates with calendar to plan your day.\nEasily plan duration.\n\nReally nice widgets.\n\nCons:\n\nDoesn’t have subtasks, but has check boxes\nNo prioritization or smart filters. Just tags and lists.\nCan’t easily see across lists like you can in TickTick\n\nAuto schedule is nice but could be kind of gimmicky. If you have 8 meetings in a day and five 30 min free blocks but all your tasks for the day are an hour, it would put all your tasks at the end of the day. I found it kind of buggy." + "objectID": "posts/2022-11-12-what-is-a-model/index.html", + "href": "posts/2022-11-12-what-is-a-model/index.html", + "title": "What is a model?", + "section": "", + "text": "_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#automated", - "href": "posts/2022-06-23-the-best-todolist-manager/index.html#automated", - "title": "What is the best todo list manager?", - "section": "Automated", - "text": "Automated\nMotion became popular as a calendar organizer. Add a task and Motion will figure out when to do that for you. If you change your meeting then Motion will adjust when your tasks will get done. Cons: it’s expensive ($20-$35 per month). It’s mobile app is horrid. It didn’t seem like it offered sub tasks and all that. So you really need to trust the algorithm.\n\nIt gets the notion of task-duration right. But if you want to jot down notes of all the next actions you need to take on a project, your up the creek. I’m also not sure how it handles task dependency - if I put in 5 tasks for a project will it know their order? Not sure. Again I’ve never tried this app so take this all with a grain of salt.\nReclaim is another app claiming to do the same thing and offers a free tier. I did as much as set up my account with this.\nPerhaps if I gave these more attention they’d prove their worth. I’ve tried calendaring my todos in the past and it hasn’t been very effective for me. Perhaps these apps would solve it but I think I need a good mobile app.\nAnyway, you can’t beat free and free is working for me on TickTick right now. Also, my calendar is very open generally so I don’t have the same problems a busy manager might have.\nI think these apps would be best for people who have meeting heavy workflows. It handles the schedules as you need." + "objectID": "posts/2022-11-12-what-is-a-model/index.html#im-building-a-model-you-know", + "href": "posts/2022-11-12-what-is-a-model/index.html#im-building-a-model-you-know", + "title": "What is a model?", + "section": "I’m building a model, you know", + "text": "I’m building a model, you know\nThe first time I heard the word “model” was from an engineering professor in college. I had no idea what he meant so I asked him. He looked at me like many who have forgotten their own ignorance and just said “Some calculations in excel. You know.”\nNo, you don’t know. But nod your head so you don’t look like an idiot. “Right, of course.”\nWhy this moment was intriguing to me is one of my personal mysteries. But it was one of those odd moments that stuck. I’m now here to help my old self make sense of the world." }, { - "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#akiflow", - "href": "posts/2022-06-23-the-best-todolist-manager/index.html#akiflow", - "title": "What is the best todo list manager?", - "section": "Akiflow", - "text": "Akiflow\nThis app seemed expensive ($15/mo), no mobile app, but has an awesome calendar. The philosophy is you have to assign every task to a date and time to move it out of the inbox. That seemed like a headache to me, and seemed like I’d be constantly managing the inbox. That and I’m cheap and want a mobile app." + "objectID": "posts/2022-11-12-what-is-a-model/index.html#the-same-name-for-different-things", + "href": "posts/2022-11-12-what-is-a-model/index.html#the-same-name-for-different-things", + "title": "What is a model?", + "section": "The Same Name for Different Things", + "text": "The Same Name for Different Things\nWhen I told my mom I build models for a living she shook her head. Turns out my dad had been telling her for years that he builds financial models, yet she never figured out exactly what it was that he did.\nLet’s be clear on the common ground. A “model” per the dictionary is “simplified description, especially a mathematical one, of a system or process, to assist calculations and predictions.” By this definition, my dad and I do the same thing. We use numbers to put structure on the world." }, { - "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#sunsama", - "href": "posts/2022-06-23-the-best-todolist-manager/index.html#sunsama", - "title": "What is the best todo list manager?", - "section": "Sunsama", - "text": "Sunsama\n$20 per mo or $192/year. Super fast customer support.\nFeatures: * Mobile app, Mac app. * Duration\nPros: * Channels (lists) * great shortcuts * can align tasks with objectives * more of a mindful daily planner * Integrates with Todoist and other apps. You can pull in all to foist metadata including subtasks and check them off in Sunsama. Additionally, you can add duration and calendar your Todoist tasks. * Can export all the tasks to csv. * Can split calendar events.\nCons: * Widgets are weak * No priority labels * No task tags/labels. (But you can use Todoist for this if you want.)" + "objectID": "posts/2022-11-12-what-is-a-model/index.html#types-of-models", + "href": "posts/2022-11-12-what-is-a-model/index.html#types-of-models", + "title": "What is a model?", + "section": "Types of Models", + "text": "Types of Models\nA financial model is different than a statistical model is different than a physical model or a 3D architecture model. But they all do the same thing: use numbers to put structure on the world.\nEvery model has a few things in common: - They make assumptions about the world - They use data - They probably make some calculations to help someone make a decision\nA financial model might make assumptions in a spreadsheet about how many customers you’ll get per month for the next 12 months. This doesn’t seem complicated, and it shouldn’t: models don’t have to be complicated.\nA data science model is one that might try to predict whether a customer is going to click on an ad." }, { - "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#reclaim.ai", - "href": "posts/2022-06-23-the-best-todolist-manager/index.html#reclaim.ai", - "title": "What is the best todo list manager?", - "section": "Reclaim.ai", - "text": "Reclaim.ai\nTask manager isn’t as good as Sunsama. Only $8/mo for pro. Has todoist integration too, but that’s a pro feature.\nThis is one I’ll want to try later. It has the habit tracking and smart flexible calendaring. Not sure how good of a task manager it is. TBD." + "objectID": "posts/2022-11-12-what-is-a-model/index.html#how-does-a-model-work", + "href": "posts/2022-11-12-what-is-a-model/index.html#how-does-a-model-work", + "title": "What is a model?", + "section": "How does a model work?", + "text": "How does a model work?\nThe purpose of a math model is to imitate the “data-generating process”. Meaning, if you have some data on your customers (what they purchased and when), you would hope that there’s some rules that your customers are operating under. If you knew their income, their budget, their preferences, etc then you can guess how much they have to spend at a given time. Thus, if you know how much gas is in their tank, the mileage of the vehicle, the MPG of the vehicle, you can predict when they’ll stop to fill up on a road tip. When they fill up, they generate some data. “Bob purchased $34.52 of gas on Monday at 5:43pm.” Why did they purchase at that time of day? And why did they spend exactly $34.52?\nIf all you have outcome/results data then you can’t ever make predictions. But if you know what type of car Bob drives, how often he drives, how much gas he had in the morning when he left his house, etc, you can start to predict when he’ll next fill up.\nThe assumption behind a model is that what was true in the past will remain true in the future.\nWhy have there been so many issues because of COVID? Nobody could have predicted a world wide pandemic. The world wasn’t the same. All the models stopped working. Supply chain models. Financial models. Default models. All of these assumptions across all industries started breaking down." }, { - "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#vimcal", - "href": "posts/2022-06-23-the-best-todolist-manager/index.html#vimcal", - "title": "What is the best todo list manager?", - "section": "Vimcal", - "text": "Vimcal\nFast calendar. Not for tasks or backlogs it seems though. Didn’t try." + "objectID": "posts/2022-11-12-what-is-a-model/index.html#how-do-you-build-a-data-science-model", + "href": "posts/2022-11-12-what-is-a-model/index.html#how-do-you-build-a-data-science-model", + "title": "What is a model?", + "section": "How do you build a data science model?", + "text": "How do you build a data science model?\nMost people build models every time they calculate the “mean”. This is the most ubiquitous model and anybody can use it. Sum your revenue and divide by number of purchases.\nIf you want to predict revenue for next Monday, just take the average revenue for every past Monday. That’s a model.\nIf Monday is a holiday or the Monday after Black Friday, your model might be very wrong. So you estimate black Friday’s sales by looking at last year’s sales. “Last Cyber Monday we sold 2x more than we typically do on a Monday. So I’ll predict that on this upcoming Cyber Monday I’ll do 2x more than what I did in the most recent Monday”\nNow that you’re taking in some data, your building a model. You’re translating a theory on how the world works into numbers. You’re taking last year’s sales and using it to predict tomorrow’s sales." }, { - "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#asana", - "href": "posts/2022-06-23-the-best-todolist-manager/index.html#asana", - "title": "What is the best todo list manager?", - "section": "Asana", - "text": "Asana\nOh man, how many times have I downloaded Asana? I started with it in 2014 and thought it was cool. Trying it again in 2022 it had a similar feel.\nAsana is the only task manager app I reviewed that has dependency management. Sure, Jira has blockers and all that but Jiras more aimed toward high level project management. It’s not fast at the\nOther things I remember liking:\n\ninfinite subtasks. This was fun and also distracting.\nAutomation features. You can create workflows for what happens to a task\nCommunication. It has a nice inbox feature that let me communicate with my manager easily.\n\nCons:\n\nClunky on the board management. If I want to start a new project things get messy and overwhelming." + "objectID": "posts/2022-11-12-what-is-a-model/index.html#start-simple", + "href": "posts/2022-11-12-what-is-a-model/index.html#start-simple", + "title": "What is a model?", + "section": "Start Simple", + "text": "Start Simple\nWhenever I build models, I always try to start simple and see if something more complicated can beat it.\n\nUse averages\nBuild a rules-based model\nBuild a regression model/machine learning model\nBuild a ML model with rules on top of it\n\nIf I’m trying to predict whether a user will click an ad, the simplest model is “what % of all users clicked this ad in the past?” If 20% of all users who see an ad click on it, then my “model” is “predict a 20% chance of click”.\nThen to make it more complicated, you can segment your users. “10% of men click on this but 25% of women do.” You now have more data and better predictions.\nA “decision tree” is a machine learning algorithm that just finds those segments in your data. “If man age 30 in Chicago then 22.3% chance of clicking based on all past behavior of all 30-year old men in Chicago”. It’s called a decision tree because it will put every user into mutually exclusive groups.\nSome “business logic” model might be making predictions around how your business operates. For example, if there’s a sale you may know that clicks increase." }, { - "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#jiragithub-projects", - "href": "posts/2022-06-23-the-best-todolist-manager/index.html#jiragithub-projects", - "title": "What is the best todo list manager?", - "section": "Jira/GitHub projects", - "text": "Jira/GitHub projects\nGreat at a high level but messy to manage the gritty day to day. Doesn’t let you schedule or put due dates. So eventually I’d need some other tool to manage all the minutia of getting things done." + "objectID": "posts/2022-12-15-chatgpt-rshiny/index.html", + "href": "posts/2022-12-15-chatgpt-rshiny/index.html", + "title": "Building a complex R Shiny Dashboard Using ChatGPT", + "section": "", + "text": "ChatGPT is nothing short of amazing, but I think I’ll still have a job as a data scientist for at least another year or so.\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#not-considered", - "href": "posts/2022-06-23-the-best-todolist-manager/index.html#not-considered", - "title": "What is the best todo list manager?", - "section": "Not considered", - "text": "Not considered\nI didn’t look at Things3 or OmniFocus, which are considered of the best tools. Things3 was too expensive and seemed like it had many of the same features as TickTick, except I personally didn’t like the UI." + "objectID": "posts/2022-12-15-chatgpt-rshiny/index.html#data-processing", + "href": "posts/2022-12-15-chatgpt-rshiny/index.html#data-processing", + "title": "Building a complex R Shiny Dashboard Using ChatGPT", + "section": "Data Processing", + "text": "Data Processing\nI asked it to create an indicator variable for me so that I could color my dygraphs chart by forecasts vs. historical:\n\nHere was my prompt:\n\nDon’t use add_series() since you’re wrong and it’s not a function in dygraphs. Instead, append the forecasts to the aapl in the stock_subset function and create a new indicator for the forecasted values where 0 is past data and 1 is forecasted data. Then, color the dygraphs chart based on the indicator value. Re-write this script below accordingly.\n\nLook at that code! It knew to filter appl2$ds > max(appl$ds). That’s exactly how you subset a prophet dataframe (which returns all historical and future forecasts in one dataframe). It knew that appl was the first dataset and appl2 was the derived dataset. It knew that it had to take the max date from appl. This is absolutely amazing, hands down.\naapl2 <- bind_rows(aapl2, forecast_subset)\naapl2$indicator <- ifelse(aapl2$ds > max(aapl$ds), 1, 0)" }, { - "objectID": "posts/2023-12-21-github-copilot-levels-up/index.html", - "href": "posts/2023-12-21-github-copilot-levels-up/index.html", - "title": "GitHub copilot levels up", + "objectID": "posts/2022-12-15-chatgpt-rshiny/index.html#data-inspection", + "href": "posts/2022-12-15-chatgpt-rshiny/index.html#data-inspection", + "title": "Building a complex R Shiny Dashboard Using ChatGPT", + "section": "Data inspection", + "text": "Data inspection\nI then got this error:\nI'm getting this error: Error in `select()`:\n! Can't subset columns that don't exist.\n✖ Column `date` doesn't exist.\nChatGPT gave me the ring-around. It didn’t know that the dates were stored as the rownames, but confidently gave me answers like this:\n\nTo it’s credit, it recommended I inspect the data myself:\n\nOnce I figured out the problem, I told it that the rownames were dates, and that date wasn’t a column. It had just the solution for me:" + }, + { + "objectID": "posts/2022-12-15-chatgpt-rshiny/index.html#misleading-functions", + "href": "posts/2022-12-15-chatgpt-rshiny/index.html#misleading-functions", + "title": "Building a complex R Shiny Dashboard Using ChatGPT", + "section": "Misleading Functions", + "text": "Misleading Functions\nTwice, it told me that dygraphs had functions that it didn’t actually have. It even wrote code for me. For example, it recommended this to me:\ndygraph(stock_subset(), main = \"AAPL Stock Price\") %>%\n add_series(data = forecast_subset, col = \"red\") %>%\n dyRangeSelector()\nAnd it doubled down:" + }, + { + "objectID": "posts/2022-12-15-chatgpt-rshiny/index.html#data-conversion", + "href": "posts/2022-12-15-chatgpt-rshiny/index.html#data-conversion", + "title": "Building a complex R Shiny Dashboard Using ChatGPT", + "section": "Data Conversion", + "text": "Data Conversion\nIt told me to use the xts package so that dygraphs could read the data in. This was accurate - dygraphs cannot read in tibbles.\n\nBut it was misleading me a little bit. Again, I had to look at the data, because the direct code it gave me was missing columns that it assumed it had." + }, + { + "objectID": "posts/2017-02-10-ggplot-plotly/ggplot-plotly.html", + "href": "posts/2017-02-10-ggplot-plotly/ggplot-plotly.html", + "title": "The DataViz battle: Plotly vs ggplot2", "section": "", - "text": "TL;DR:\n\n\n\n\n\n\n\n\ncan debug failed terminal errors\nshows git diff of revisions\ncan explore workspaces now with @workspace (still lags behind Cursor, which indexes everything in your code base)\nauto-commit messages (I’ll take this)\nauto-pr messages (sounds good to me)\n\nMore here:\nhttps://code.visualstudio.com/blogs/2023/11/13/vscode-copilot-smarter\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "R users fall in love with ggplot2, the growing standard for data visualization in R. The ability to quickly vizualize trends, and customize just about anything you’d want, make it a powerful tool. Yet this week, I made a discovery that may reduce how much I used ggplot2. Enter plot_ly().\nFor this post, I assume that you have a working knowledge of the dplyr (or magrittr) and ggplot2 packages. I caveat that this post is backed with only 4-5 hours using plotly(), so some statements here may not be fully vetted.\nPlotly and ggplot2 are inherently for different purposes. plotly allows you to quickly create beautiful, reactive D3 plots that are particularly powerful in websites and dashboards. You can hover your mouse over the plots and see the data values, zoom in and out of specific regions, and capture stills. Here’s a basic histogram:\n\nset.seed(1)\nlibrary(plotly)\nplot_ly(x = ~ rnorm(1000), type = \"histogram\")\n\n\n\n\n\nAfter a brief dabble this week in plotly, I realized quickly the many advantages that plotly has over ggplot2.\nSeveral initial impressions:\n\nPlotly handles multiple wide data columns. I always find it annoying that to color different series in ggplot2, your data had to be in long format. Granted, it takes one simple melt() command to get the data into wide format.\nPlotly also handles long format (see below).\nCustomizing the layout (plot borders, y axis) is easier.\nCustomizing the legend is easier (in ggplot2 I’ve wanted to remove just one series, which isn’t always easy).\nDocumentation is better in Plotly.\nPlotly syntax is very intuitive (learning how aes() in ggplot2 works is tricky at first)\nPlotly also works for Python, Matlab, and Excel, among other languages.\nIt’s very easy to add new series and customize them (one line, one scatter, and one bar, for example)\nYou can use other fonts (which is possible in ggplot2, but I’ve never gotten to work on my Windows machine)\nYou can toggle series on and off by clicking the series name in the legend\n\nBenefits of ggplot2 over plotly:\n\nFacet wrapping is very easy in ggplot2. (I think you have to do subplots in plotly.)\nggplot2 is probably quicker for exploratory analysis.\n\n\nConverting ggplot2 into plotly\nAn additional benefit of plotly is that you can convert your ggplot() graphs into a plotly object.\n\nlibrary(ggplot2)\np <- qplot(x = rnorm(1000), geom = \"histogram\")\np\n\n\n\n\n\n\n\n\nThen, invoking the ggplotly(p) command, we see the transformation:\n\nggplotly(p)\n\n\n\n\n\nA draw back of ggplotly() is that if you do refined customization (like putting your legend on the bottom of the graph), ggplotly() doesn’t seem to pick this up by default.\n\n# ggplot with legend on the bottom\np <- qplot(\n data = iris,\n x = Sepal.Width,\n y = Sepal.Length,\n geom = \"point\",\n color = Species\n) +\n theme(legend.position = \"bottom\")\np\n\n\n\n\n\n\n\n# Plotly doesn't pick up the legend change\nggplotly(p)\n\n\n\n\n\nBut since Plotly also saves to an object, you can use the %>% notation to pipe and add additional plotting commands. This is similar to the + operator in ggplot().\n\np <- qplot(\n data = iris,\n x = Sepal.Width,\n y = Sepal.Length,\n geom = \"point\",\n color = Species\n) +\n theme(legend.position = \"bottom\")\np2 <- ggplotly(p)\n# Use the plotly layout() command for legend customization\np2 %>% layout(legend = list(orientation = \"h\"))\n\n\n\n\n\nThe legend doesn’t do exactly what we want, but you can manipulate the legend location manually using x and y coordinates. The orientation = 'h' setting in the docs puts the legend on the bottom for default plot_ly() objects. Graphing the same series, we see the legend at the bottom:\n\nplot_ly(iris,\n x = ~Sepal.Width,\n y = ~Sepal.Length,\n type = \"scatter\",\n mode = \"markers\",\n color = ~Species\n) %>%\n layout(legend = list(orientation = \"h\"))\n\n\n\n\n\n(You notice the Plotly X-axis title can get cut off1, so let’s put that +1 to ggplot2.)\n1 This may depend on your screen.Plotly seems very intuitive relative to ggplot2 in doing layout customization. Things that took me many iterations on StackOverflow to figure out, like adding a black line on y = 0, are built in to Plotly.\n\np <- plot_ly(iris,\n x = ~Sepal.Width,\n y = ~Sepal.Length,\n type = \"scatter\",\n mode = \"markers\",\n color = ~Species\n)\n# Put legend on bottom, change the x-axis range, and turn on the x-axis line. \n# Also, make the zeroline visible, and turn it red.\np <- p %>% layout(\n legend = list(orientation = \"h\"),\n xaxis = list(\n zeroline = T, # Turns x = 0 on\n zerolinecolor = \"red\", # colors x = 0 red\n showline = T, # Shows xaxis border line\n range = c(-2, 7)\n )\n)\n# Or, save parameters into a list. Use new fonts (a huge plus)\nf1 <- list(\n family = \"Arial, sans-serif\",\n size = 18,\n color = \"lightgrey\"\n)\nyax <- list(\n title = \"Sepal length\",\n titlefont = f1\n)\np %>% layout(yaxis = yax)\n\n\n\n\n\nThings I’d like to further explore:\n\nYou can export static plotly images out to file. My hypothesis is that Plotly images take longer to generate than ggplot2. So if I’m mass producing 30,000 plots (which I had to do last month), which is the faster approach? I would assume ggplot2.\n\n\n\nPlotly in RShiny Dashboards\nThe goal in learning Plotly was for me was to eliminate the Excel-VBA dashboard I created using for my manager. Excel has (some) benefits over ggplot2 static charts: you can easily hover your mouse over a series to see the data value, and most industry users know how to manage an Excel axes. Grated, you can build in an RShiny widget to allow the user to control the axes, but Excel comes with that knowledge base built-in. ggvis allows for the powerful library of Google charts, but I think for a reactive dashboard, plotly is a great way to go2.\n2 Of course, this is relative to the chart you’re trying to make.So Plotly solved the Excel problem for me. Now my manager can click and zoom to the parts of the graph that are interesting, and hover the mouse to see the values. Just use renderPlotly() instead of renderPlot() in the server.R file, and plotlyOutput() instead of plotOutput() in the ui.R file.\nMore info here: RShiny and Plotly\n\n\nRShiny vs Plotly Dashboards\nBoth RShiny and Plotly allow for creating dashboards. Plotly allows you to build dashboards as well. If you’re just interested in only visualizing charts and trends, Plotly dashboards seem like the way to go. But to build reactivity into your dashboard (like subsetting your sample, changing date ranges, etc.), RShiny still seems like the more customizable solution.\n\n\nFinal thoughts\nOverall, it seems that ggplot2 is quicker to build and find what you want. With facet wrapping, the qplot() command, and ggsave(), you can whip something up fast. Plotly is better for dashboards, as you can interact with the plots. I feel like Plotly has a better syntax and documentation, and so it may be easier to get a basic plot to look how you want it to. But ggplot2 seems to have more advanced features, so if you want to get into refined customization, you may want to stick with ggplot2. They’re both great, and serve different purposes, but I’ll be using plotly for my RMarkdown and RShiny visualizations going forward.\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html", - "href": "posts/2017-10-19-used-cars-analysis/used-cars.html", - "title": "Buying a used car the data science way: Part 2", + "objectID": "posts/2022-11-18-substance-over-style/index.html", + "href": "posts/2022-11-18-substance-over-style/index.html", + "title": "Resume Substance over Style", "section": "", - "text": "[Update 2021-11-16] This analysis was originally written on my old blog here. You can find the source code for it here.\nThis is part 2 out of a two-part series on scraping used car data. Check out part 1 to learn how to scrape the data.\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "Earlier in my career I got feedback from a prospective recruiter telling me my resume was “visually imbalanced”. Of course, the recruiter wanted my business.\nBut I went on to get over 70 interviews with that same template. I got a job at FAANG and a top startup using that resume template. I haven’t changed it.\n\nTakeaway\nHow you write your resume and what’s on it will take you farther than how you design it.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#youre-in-the-market", - "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#youre-in-the-market", - "title": "Buying a used car the data science way: Part 2", - "section": "You’re in the market", - "text": "You’re in the market\nSo you want to buy a car, but you don’t know anything about them? Welcome to my life.\nYou show up at the dealer and there’s a sticker on the window. You know the difference between make and model, but you soon learn what a trim is. Some versions come with leather. Some have a sun roof. Some have all wheel drive. Some have 20k in miles, and a similarly priced car in a higher trim is at 40k miles. How do you know what you’re really paying for, and what these features are worth? And how do you know what it’ll be worth when it’s four years older and has an additional 40k miles?\nPretty advanced questions for someone who just learned what a powertrain is.\nIn this analysis, I’ll dive into how you can use data to learn a lot about an industry in a short amount of time. I’ll first dive into knowing what you’re buying (now and later). Then, I’ll dive into how Truecar and others might be finding their ‘deals’." + "objectID": "posts/2022-11-18-writing-a-tech-resume/index.html", + "href": "posts/2022-11-18-writing-a-tech-resume/index.html", + "title": "Writing a Tech Resume", + "section": "", + "text": "TL;DR: Use the “Accomplished [X] as measured by [Y] by doing [Z]” format.\n\n\n\n\n\n\nWriting resume is painstaking, but let me help jumpstart you. My resume below has gotten me dozens of interviews with top tech companies (Apple, Google, Facebook, Amazon, Microsoft, Waymo, LinkedIn, Hopper, etc).\nIt got me in the door, but let me be clear I didn’t pass most of those interviews 😝. That’s the point of the resume: open the door.\nLet me help you get in the door.\n\nMy template\nHere’s the google doc link to my resume template, also posted below.\nhttps://docs.google.com/document/d/1n8W79UBiWYhMWHeF4sNDtwaWxySRwU3t9isodbUuycI/view\nYou can copy this template and put in your own content.\nI designed and wrote my resume the way I did by following the guidance of these resources: \n\nBlog: Google’s Accomplished X as measured by Y by doing Z formula\nYouTube Video: Google’s How to write a resume\nBlog: Cracking the Coding Interview: how to write a resume\n\n\n\nCommentary\n\nIt takes some practice, but the XYZ formula is very powerful.\nEmboldening words can be helpful to people who have 3 minutes to scan your resume.\nI’ve never gotten commentary on how long my resume is or crammed. I’m guessing people just glance for a few keywords and some decent content and assume the rest of the resume is good.\nI’ve had a lot of discussions in phone calls about my Personal Projects sections. Fellow techies all have their own personal projects and they want to know about mine. It sends a signal you’re intrinsically motivated.\nWhile my resume is long-ish, I try to think: what story does this bullet point tell? What story am I trying to convey?\n\n\n\nHow can I Help?\nI hope this helps! Send me a message at bryanwhitingcoaching@gmail.com if I can help review a resume or give more tips.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#what-am-i-paying-for", - "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#what-am-i-paying-for", - "title": "Buying a used car the data science way: Part 2", - "section": "What am I paying for?", - "text": "What am I paying for?\nTo do any analysis, you need data. Please see my most recent post if you’re interested in learning how I got the data for this analysis. Suffice it to say, I webscraped it. The data is not my own, but belongs to Truecar.\nI love using linear regression to understand my data on a granular level. In my data set, I was able to extract the make, model, year, mileage, trim, and a flag for whether the car was all wheel drive (awd == 1) or not. Putting this data into a linear regression, we can see some interesting results. First let’s look at the data we have:\n\nlibrary(dplyr)\nload('../../data/used-car/tc-ford-edge.Rda')\n# Get the prices into the appropriate scale and remove some extraneous\ndf$price = df$price*1000\ndf %>% select(-stats, -url, -int, -vin, -v6, -trueprice, -resid) %>% head()\n\n## price year mileage trim awd location ext deal\n## 1 16000 2014 28.477 SE 1 Sterling, VA <NA> 6514\n## 2 13300 2013 64.315 SE 0 Chantilly, VA <NA> 1784\n## 3 13800 2013 72.111 SEL 0 Fairfax, VA Mineral Gray Metallic 3331\n## 4 16000 2014 27.490 SE 0 Manassas, VA Oxford White 5448\n## 5 12000 2013 66.825 SE 0 Clarksville, MD Mineral Gray Metallic NA\n## 6 14900 2014 65.157 SE 0 Manassas, VA Tuxedo Black Metallic 4436\n## mpyr\n## 1 7.12\n## 2 12.86\n## 3 14.42\n## 4 6.87\n## 5 13.37\n## 6 16.29\nNow let’s see the regression results.\n\nmod <- lm(price ~ as.factor(year) + mileage + trim + awd, data = df)\nsummary(mod)\n\n## \n## Call:\n## lm(formula = price ~ as.factor(year) + mileage + trim + awd, \n## data = df)\n## \n## Residuals:\n## Min 1Q Median 3Q Max \n## -4755.7 -854.6 -2.7 877.5 5024.2 \n## \n## Coefficients:\n## Estimate Std. Error t value Pr(>|t|) \n## (Intercept) 22216.400 788.885 28.162 < 2e-16 ***\n## as.factor(year)2013 1267.037 625.804 2.025 0.0442 * \n## as.factor(year)2014 3160.017 645.152 4.898 1.92e-06 ***\n## as.factor(year)2015 5664.470 710.322 7.975 9.56e-14 ***\n## as.factor(year)2016 6166.658 821.469 7.507 1.68e-12 ***\n## as.factor(year)2017 9082.971 878.956 10.334 < 2e-16 ***\n## mileage -91.951 5.625 -16.347 < 2e-16 ***\n## trimSE -4983.725 409.765 -12.162 < 2e-16 ***\n## trimSEL -1822.889 291.400 -6.256 2.17e-09 ***\n## trimSport 3419.270 374.977 9.119 < 2e-16 ***\n## trimTitanium 99.242 568.428 0.175 0.8616 \n## awd 1277.734 222.680 5.738 3.30e-08 ***\n## ---\n## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n## \n## Residual standard error: 1450 on 211 degrees of freedom\n## Multiple R-squared: 0.9231, Adjusted R-squared: 0.9191 \n## F-statistic: 230.2 on 11 and 211 DF, p-value: < 2.2e-16" + "objectID": "posts/2022-06-23-new-ideas-are-distractingly-exciting/index.html", + "href": "posts/2022-06-23-new-ideas-are-distractingly-exciting/index.html", + "title": "New ideas are distractingly exciting", + "section": "", + "text": "When a new idea comes to my mind, I want to act on it right away. Perhaps it’s an exciting analysis idea, a new business strategy I want to scope out, or a question to ask a team member.\nBut as I look back at my backlog of things to work on, all of these ideas were also equally exciting.\nWhy is it that new ideas have more weight than old ideas?\nThey say that effectiveness is working quickly on tasks. Efficiency is knowing what to work on. Discipline is the ability to overcome the excitement of a new idea and place it in proper context of all ideas. Sanity is actively saying no to many ideas so you don’t get inundated.\nPerhaps a good strategy is to have a “gut check” for ideas. If they don’t pass the highest threshold then let them go.\nProcess:\n\nWhat’s the new idea?\nWhat’s the potential impact? What would I do with the output of this idea?\nHow feasible is it?\n\nStep 3 is tricky because I don’t want a good idea to go to waste just because it’s hard. Judgment is weighing the trade off between impact and feasibility.\nI like Google Forms for logging ideas. It’s easy to save a Google Form URL to the home screen of my iPhone to make logging new ideas easy. Grooming those ideas is important. Letting go of old ideas is essential. If only I could do the essential…\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#interpretation-matters", - "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#interpretation-matters", - "title": "Buying a used car the data science way: Part 2", - "section": "Interpretation matters", - "text": "Interpretation matters\nFirst, we see the (Intercept). This is the average value of a car for every level of every feature not show. So it represents the average price of a year 2000 with 0 miles, Limited trim, without all wheel drive. This allows us to now see what the average effect of, say, year is, holding all else constant. Every unit is in terms of dollars, so we can see that for as.factor(year)2013 that 2013 cars are worth $1,267 more than 2012 cars. This makes sense.\nI scaled mileage to be in the thousands so that it’s a little easier to interpret. So we see that for every 1,000 miles you drive a Ford Edge, it decreases the value of the car by $91 dollars. This tells you a few things. One, if I’m being offered two cars that are 10K miles different, there should be about a ~$900 difference in the car.\nSecond, if I’m planning on driving my car 30k miles over the next two years, how much should I expect the price to drop just due to mileage? Well, about -$91 * 30 = -$2,730. And maybe if you bought a 2014 model, two years later it could perhaps be like owning a 2012 model today. What’s the two-year difference between a 2014 and a 2012 model? About $3,160 dollars." + "objectID": "posts/2020-12-15-calendaring-todos/index.html", + "href": "posts/2020-12-15-calendaring-todos/index.html", + "title": "Get rid of the todo list. Calendar everything.", + "section": "", + "text": "I’ve had less meetings and more unstructured time during WFH. It can be isolating, which can slow down productivity.\nHere’s a tip I read today on how to be productive with unstructured time: put your to-do list directly into a calendar.\nThat way, you’ll always have time for the important things. Remove the things that take up your time and aren’t as important. I like it.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#inference", - "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#inference", - "title": "Buying a used car the data science way: Part 2", - "section": "Inference", - "text": "Inference\nNow it’s getting interesting! You’re now starting to remember how your mom told you to never buy a car new, because once you drive it off the lot, it’s worth significantly less. Well, we can see that if you own a brand-new 2017 model and a 2016 model, they’re about $9082 - $6166 = $2916 different. So yea, just by getting the 2017 model you’ll lose $3,000 in the first year. See how 2016 is only $502 dollars more than the 2015? Having the 2015 model is practically the same price as a 2016. So you might as well buy the 2016 model and save a year of wear.\nWell, my theory kind of starts breaking down because 2015 cars and 2014 cars are similarly spaced as 2014 and 2013 ones. So maybe I shouldn’t read too much into this. But the ability to see these trends shouldn’t stop you from asking important questions, like, why is there a difference between years?\nWhen investigating the Nissan Murano, I observed a $5430 difference between 2015 and 2014. That’s non-trivial considering the other years were equally spaced. Doing a little research I saw that Nissan changed the 2015 Murano style, and the new style was apparently worth a lot more. Turns out the same thing happened here for the Ford Edge - the 2015 model is slightly longer with redesigned interior.\nYou can also use this framework to get a decent sense for what features are important to you. Like, is having all wheel drive really worth $1,277? If you live in an area where it snows, it probably is. But if you live in Florida, you may not need it.\nNot only is this framework helpful for comparing within-make-model differences, it helps you get a sense of between-make-model differences. Say, comparing the Ford Edge with the Nissan Murano and the Toyota RAV4. The coefficient for milage on the Edge is -$91. On the Murano it’s -$83, and on the RAV4 -$61. Remember this is the cost per 1,000 miles. That tells me that if I ‘spend’ 30k miles on a car over two years, I’ll lose -$2,730 on the Edge, but only -$1,830 on the RAV4, saving me $900. This also validates that Toyotas hold their value more." + "objectID": "posts/2016-11-07-starting-with-jekyll/starting-with-jekyll.html", + "href": "posts/2016-11-07-starting-with-jekyll/starting-with-jekyll.html", + "title": "Starting with Jekyll", + "section": "", + "text": "Hello world.\nI wanted to start a blog. I wanted to set it up for free, use a custom URL (and not something.bloggingplatform.com), and be able to both blog and create tutorials. I didn’t mind it possibly being technical1. Enter Jekyll.\n1 Specifically, I was interested in being able to use the command line for my posts. Additionally, I didn’t mind seeing or using a little bit of code.If you want to get your blog in 10 minutes, skip to below.\n\nWhy Blog with Jekyll?\nHere’s why you can and should blog with Jekyll (if you’re a data scientist):\n\nJekyll has beautiful, free, open-source templates.\nGitHub will host your website for free2.\nJekyll is static.\nJekyll can be simple to set up3.\nI tried Wordpress and blogger.com and got frustrated.\nThe blogging content you create is very portable (easy to take your posts from one blog site to another).\nCreating blogs in Markdown syntax is a dream (even for non-technical folks).\nYou can manage your blog from your terminal\nYou can manage your blog from your phone (if you have a GitHub-editing app)\n\n2 Someone has to host it (i.e., store and display all the files). I started off trying to set up a WordPress blog, but you have to pay another company to host. I didn’t want to bother.3 If you try to set it up by following the instructions on jekyllrb.com, that’s the complicated way. That’s how I originally started, got lost for five hours, and stopped. Six months later, I found a better way.But if you don’t like debugging occasional errors, you probably shouldn’t blog with Jekyll.\nWhat is Jekyll, you ask? Jekyll is an open-source blogging platform. Anyone can write a template and post it, and anyone else can use that template. Perusing Jekyllthemes.org, you can pick out any template you’d like.\n\n\nHow did I get started with Jekyll?\nAs a blogging noob, I’ve discovered there are hundreds of ways to generate a blog (e.g., WordPress, Squarespace, blogger.com, Weebly, etc.). But when my colleague Arthur Lui showed me his blog, I wanted something similar. I first tried Wordpress, then tried blogspot, then gave up and followed Arthur’s example and landed with Jekyll.\n\n\nSet up a blog in 10 minutes!\nI followed this Jekyll tutorial to set up my first blog. I’ll simplify those steps here to get you up and running quickly:\n\nGet a GitHub account. (2 min)\nGo to Jekyllthemes.org. All of these blog themes are free. Find one you like, and Fork the repo (i.e., “repository”). (2-60 min, depending on how long you peruse)\nIn GitHub, rename the newly-forked repo from “REPO name” to “yourgithubusername.github.io”. (1 min)\nNow go to “githubusername.github.io”. Voila, you have a blog.\n\nAnd if you want to start writing posts, go to your “_posts” folder. Then create new files and follow the default templates that the repository provides. (The blogs will need to be written in Markdown syntax.)\nThat was my 10 minute promise. If you feel a bit cheated or lost, go to the well-done tutorial and do all the steps. But the steps I listed are the essential steps to setting up a blog from scratch. So if you want to make a few blogs really quickly, after you figure out the first one the others follow nicely. For example, once I finished the tutorial, I followed those steps above to try two other themes before deciding on the Centrarium theme.\nTo get Centrarium to work, I did have to change some configurations in the “_config.yml”, so there can be some minor debugging depending on the theme you choose. But with a little patience and some Googling, you’ll get it.\n\n\nAdd to Jekyll a custom URL from GoDaddy\nYou’ll notice I have a custom URL and not “bryanwhiting.github.io”. I used GoDaddy to get a domain. (I have no affiliation with GoDaddy.) Here’s how I linked GoDaddy with my GitHub Jekyll blog:\n\nGet a domain.\nIn your Github repo, change (or create) a CNAME file in the main directory. (See my CNAME file for an example). And for the CNAME file contents, just type in the new “www” that you registered through GoDaddy.\nThen, on GoDaddy, go to the section “DNS Management”. Here’s where you tell GoDaddy how to connect your newly purchased “www” with GitHub. Create the following connections:\n[Type, Name, Value, TTL] = [A, @, 192.30.252.153, 600 seconds]\n[Type, Name, Value, TTL] = [A, @, 192.30.252.154, 600 seconds]\n[Type, Name, Value, TTL] = [CNAME, ftp, yourgithubusername.github.io, 600 seconds]\n[Type, Name, Value, TTL] = [CNAME, www, yourgithubusername.github.io, 600 seconds]\n\nIf you have the CNAME file in your GitHub folder, GitHub and GoDaddy will talk and after a few minutes your custom “www” will work. You don’t technically need the two [A] steps, but those connections allow users to type “bryanwhiting.com” instead of “www.bryanwhiting.com”. It can take up to 24 hours before these [A] connections enable, so don’t be worried if the short URL doesn’t work first try. But the full URL should work soon enough.\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#identify-a-good-market-deal-and-how-truecar-might-do-it", - "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#identify-a-good-market-deal-and-how-truecar-might-do-it", - "title": "Buying a used car the data science way: Part 2", - "section": "Identify a good market deal (and how TrueCar might do it)", - "text": "Identify a good market deal (and how TrueCar might do it)\nBeyond the research above, you can use such a model to identify deals in the market and guide your buying decision. Here’s how:\n\nMake a PriceFinder: Get the residuals (actual minus predicted value) for each car. The more negative the residual, the more this car is a good price! This may be how TrueCar and CarGurus get their ‘deals’. They fit a model (probably one better than what I’ve created here) and use its residuals to value each car.\nIdentify ‘overpriced’ cars and try to possibly haggle those dealers down. Again, use the residuals here.\nUse this model to predict ‘out-of-sample’ cars. You can use this model built on TrueCar data and find a car on the classifieds or another site and evaluate whether it’s a good deal or not.\n\nHere’s an example of how we do that. First, let’s predict a hypothetical 2015 SEL Ford Edge FWD with 27.6k miles:\n\nthat_car <- as.data.frame(list(\n year = 2015,\n mileage = 27.6,\n trim = 'SEL',\n awd = 0\n))\n\npredict(mod, newdata = that_car)\n\n## 1 \n## 23520.13\nWe’d expect, on average, such a car to cost $23,520.13. Is what the dealer’s offering you above or below that? If they’re offering $25,000 then you know the car is $1,479.87 higher than what you might expect." + "objectID": "posts/2021-07-17-authors-angle-matters/index.html", + "href": "posts/2021-07-17-authors-angle-matters/index.html", + "title": "The Author’s Angle Matters", + "section": "", + "text": "Imagine the following story:\n\n“In recent events, a ferocious fox savagely attacked a Turkey, who fortunately was able to escape to safety by pecking out the fox’s eyes.”\n\nSimple story. A bit gruesome. But, what in today’s news cycle is positive? How can we be better readers of the news when it’s targeted at making us angry?\nFoxes and turkeys are highlighted in the news all the time and it’s often the worst of humanity. The goal of many authors is to evict emotion from you so you’ll keep reading. Anger. Fear. Worry. Those keep you hooked.\nWhat’s the author’s motive? Often we have to guess it. Wouldn’t it be nice instead if authors were transparent about why they were writing a story:\n\nAuthor 1: I’m a Turkey conservationist with a passion for protecting turkeys from the rampant fox problem we have. Growing up, a Turkey saved my life when I was drowning in a lake.\nAuthor 2: I’m a narcissist who hates foxes because one time they ate my cat. I really just need therapy, but I can’t fathom talking to anyone about my problems. I want you to be as angry as I am.\nAuthor 3: I’m here to get promoted and if my boss sees that I have a 10% increase in viewership then our company’s bottom line increases. Im an opportunist who will say anything and take any side that will maximize company profits. How do these three perspectives change the storyline?\n\nWouldn’t it be great if we could know the author in addition to what the author is writing about? Every article should have not just “about the author” but, “three people’s perspectives about the author’s intent in writing this that know the author well.” Of course, you’d need to verify the three verifiers, but it’d be a start\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#how-to-improve-our-model", - "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#how-to-improve-our-model", - "title": "Buying a used car the data science way: Part 2", - "section": "How to improve our model", - "text": "How to improve our model\nNow, this is a pretty naive model, but it’s a model. As George Box said, “All models are wrong, but some are useful.” But here are some quick ways to improve this model:\n\nCheck for interactions. An interaction between miles and year would tell you whether the effect of miles would change across different years. For example, I think adding 10k miles to a 2017 would devalue the car more steeply than adding 10k miles to a 2012 model. During my quick research I checked for interactions, but I didn’t find many to be significant and I chose to ignore them for simplicity.\nUse a linear trend for year rather than a ‘factor’ trend. I’ve chosen here to treat year as a factor, which implies that I think that each year is completely different. Had I used year as a numeric feature, I could have possibly interpreted year as, “Each additional year increases/decreases the price by X on average, holding all else constant.” I liked the simplicity of thinking that each year was different, and since cars usually update models every four years, I wanted to be able to see where this happened. You couldn’t easily see this if year were a linear trend. Objectively, what would be a good way to choose? Fit both models and see which had better R-squared or AIC.\nDo model diagnostics. Check the residual plot to make sure the errors are normally distributed. Check for outliers. Each of these affects the accuracy of your residuals. I did some brief checks and was genearlly satisfied." + "objectID": "gratitude/2023-12-26-i'm-grateful-for-blankets/index.html", + "href": "gratitude/2023-12-26-i'm-grateful-for-blankets/index.html", + "title": "I’m grateful for blankets", + "section": "", + "text": "A blanket\n\n\nI’m outside right now enjoying the warmth of a blanket. It’s a special thing. It’s warm. It’s fuzzy. And the only question I have is: is it warm because it’s fuzzy? Or is it fuzzy because it’s warm?\nIn the Hitchhiker’s Guide to the Galaxy the most important item any many could carry was a towel. It’s a multifaceted tool. Perhaps a blanket is the towel’s cousin.\nMy grandma loved to quilt, so me and all my family have hand crafted blankets. Even great grandchildren have blankets long after my grandma deceased because she had a surplus in her basement.\nThere’s something special about being wrapped in something warm, especially if it’s made by someone who loves you. Kinda sends a special hug in a way that a towel just can’t.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#takeaways", - "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#takeaways", - "title": "Buying a used car the data science way: Part 2", - "section": "Takeaways", - "text": "Takeaways\nSo, a data scientist walks into a dealership with a computer with a registry of thousands of used cars on it. He negotiates with the front-office salesman. And the salesman says…\n\nNon-statistical considerations\nWhen you’re buying a car from a dealership, remember that it’s their job to sell you that car. Here are other random things I learned to think about during the car-buying process.\n\nHow many miles has it been driven, and how old is it? (We found a car with 45,000 miles in one year. That’s almost two trips around the entire world in a year! This is also 3750 miles per month (a cross-country US trip), or about 125 miles per day. What kind of driving do you have to do in a year to get that?\nHow many prior owners were there?\nWas the car previously a rental? A lease? A fleet?\nRental: Abused by X number of people? But also perhaps better maintained by rental companies?\nLease: What kind of person would lease?\nFleet: Probably a corporate car. Like a rental, but different kind of drivers.\nWhere did the car come from?\nIs there snow where they live? And do they use salt on the roads there? (Salt = rust underneath)\nWhat else does the geography tell you about the possible wear on the car (causing long-term problems)\nWhat does the CarFax or Autocheck say?\nWas the car sold at auction? When? What could the time between sales tell you about the car?\nIf someone gets into an accident and doesn’t report it, the CarFax won’t tell you. I drove 45 minutes to look at a ‘great’ deal only to learn the door was nearly falling off.\nGood luck haggling the dealer down. Car dealerships don’t usually make that much on the car, but make their money on warranties and fees. Your best chance is to haggle on the deals being offered (terms and agreements).\nDon’t get the powertrain warranty. This is like the “french fries” of the auto industry. Pure profit.\nEvery dealership has quota. Going in at the end of the month might help you, but the dealership will be packed.\nUsed cars are bought at auction. Carmax buys all their cars at auction and only keeps 1/3 of them. Local dealers also get their cars this way, and they don’t always know what the car looks like till it gets to their lot. Check the Carfax to see if any prior dealers ‘flipped’ the car quickly.\n\nUsed cars have a shelf life. If a car isn’t sold in 45-60 days, some dealerships might have to auction off the car. That means you’ll see a tiering in the price. Less-favorable cars will see the price drop several times in its life cycle. Check CarGurus to see how many times the price has dropped, and try to guess for yourself if it might drop again (or just get sold). They know their prices. They’ve got their back-office guys looking at every price of every same car within 100 mile radius. While I’m also able to get as many of those cars as available on TrueCar, I’m not able to segment by all the various features. It’s easy to webscrape for Make, Model, Year, AWD/FWD, and maybe V6 engine, but it’s very hard to get the details like leather, sunroof, twin-turbo, etc. That’s where the pricing gets really interesting.\n\n\nFinal thoughts\nUltimately, a car is bought by irrational humans, and sold by more experienced ones too. So all of this data will probably go out the door when you try to make a deal.\nSo a data scientist walked into several dealerships, and left frustrated because nobody budged on their prices. Doesn’t matter how much data I have, or what I think I know, everyone’s got their price." + "objectID": "index.html", + "href": "index.html", + "title": "Recent Posts", + "section": "", + "text": "“All blogs are wrong, but some are useful.”\n\n\n\n\n\n\n \n \n \n Order By\n Default\n \n Title\n \n \n Date - Oldest\n \n \n Date - Newest\n \n \n \n\n\n\n\n\n\n\n\n\n\nWriting is truly enlivening\n\n\n\n\n\n\ncommunication\n\n\nwriting\n\n\n\nWrite in public. Write daily. Write about nothing. \n\n\n\n\n\nTue Dec 26, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nWrite despite AI\n\n\n\n\n\n\nai\n\n\nhumanity\n\n\n\nI’m fully aware an AI is listening and all that I write just trains it. Perhaps this is a perversion of my work (if I made money off it). Why write if everything I write just trains an AI agent to do their job better? \n\n\n\n\n\nTue Dec 26, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nI’m grateful for blankets\n\n\n\n\n\n\ngratitude\n\n\n\nMy grandma made blankets cool \n\n\n\n\n\nTue Dec 26, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nI’m grateful for doctors\n\n\n\n\n\n\ngratitude\n\n\n\nDoctors of the body. Doctors of the mind. Doctors of the soul…Any engaged in the pursuit of healing. \n\n\n\n\n\nMon Dec 25, 2023\n\n\n3 min\n\n\n\n\n\n\n\n\n\n\n\n\nAI Robots are mastering tasks faster than humans\n\n\n\n\n\n\nai\n\n\ntech\n\n\nfuturism\n\n\n\nFrom walking to labyrinth, the future looks bright for these machines. The key is the objective functions, time, and training data. \n\n\n\n\n\nMon Dec 25, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nTwas the Night before Christmas\n\n\n\n\n\n\nchristmas\n\n\nask gpt\n\n\n\nThe origin of the story, and a link to the 1912 publication. \n\n\n\n\n\nSun Dec 24, 2023\n\n\n3 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Christ Child\n\n\n\n\n\n\nchristianity\n\n\n\nThe birth of Jesus Christ teach us what we can do to have greater peace in this life \n\n\n\n\n\nSun Dec 24, 2023\n\n\n4 min\n\n\n\n\n\n\n\n\n\n\n\n\nLight\n\n\n\n\n\n\ngratitude\n\n\n\nI set up 72 lights today. \n\n\n\n\n\nSun Dec 24, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nHis is the light that we should share\n\n\n\n\n\n\nchristianity\n\n\n\nWho is the source of light? \n\n\n\n\n\nSun Dec 24, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Best of Edgar Allen Poe\n\n\n\n\n\n\nbook review\n\n\n\nYou think me mad? \n\n\n\n\n\nSat Dec 23, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nDune\n\n\n\n\n\n\nbook review\n\n\n\nThe plans and risks of generations \n\n\n\n\n\nSat Dec 23, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Killers of the Flower Moon\n\n\n\n\n\n\nbook review\n\n\n\n\n\n\n\n\n\nFri Dec 22, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Allegory of the Dodo\n\n\n\n\n\n\nproductivity\n\n\nbusiness\n\n\nkids books\n\n\n\nWhen in having solved a problem we inadvertently create problems for ourselves \n\n\n\n\n\nThu Dec 21, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nGitHub copilot levels up\n\n\n\n\n\n\nai\n\n\nproductivity\n\n\ntech\n\n\n\nWhat will it do next? \n\n\n\n\n\nThu Dec 21, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Little Red Hen\n\n\n\n\n\n\nbook review\n\n\nstartups\n\n\n\nPeople love to enjoy the fruits, but who will bake the bread? \n\n\n\n\n\nWed Dec 20, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nHow to encourage your kids\n\n\n\n\n\n\nparenting\n\n\n\nUnexpected advice on how to be a great parent when fostering talent \n\n\n\n\n\nTue Dec 19, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\n101 Essays that will Change the Way You Think, by Brianna Wiest\n\n\n\n\n\n\nbook review\n\n\nphilosophy\n\n\nmindfulness\n\n\n\nWe all started as strangers. It’s a choice who remains one. \n\n\n\n\n\nTue Dec 19, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nHitchhiker’s Guide to the Galaxy\n\n\n\n\n\n\nbook review\n\n\nstorytelling\n\n\n\nHow did it take me so long to finally read this? \n\n\n\n\n\nMon Dec 18, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nChristmas celebrates a Living Christ\n\n\n\n\n\n\nchristianity\n\n\nai\n\n\n\nChrist is the way, the light and life of the world. Always has been. Always will be. \n\n\n\n\n\nSun Dec 17, 2023\n\n\n3 min\n\n\n\n\n\n\n\n\n\n\n\n\nWhat is humanity\n\n\n\n\n\n\nai\n\n\n\nHumanity seeks to resolve problems. What happens when they’re too easily solved? \n\n\n\n\n\nSat Dec 16, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nPrompt techniques\n\n\n\n\n\n\nai\n\n\n\nOpen AI strategies \n\n\n\n\n\nFri Dec 15, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nLLMs can find a needle in the haystack\n\n\n\n\n\n\nai\n\n\n\nGPT outperforms Claude. \n\n\n\n\n\nFri Dec 15, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nThree Little Pigs\n\n\n\n\n\n\nbook review\n\n\nchristianity\n\n\n\nA story with a terrible but incredibly relatable morale \n\n\n\n\n\nWed Dec 13, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nLearn by doing\n\n\n\n\n\n\ndata science\n\n\ntech\n\n\n\nYou don’t need a PhD. Or a masters. You just need to hustle \n\n\n\n\n\nWed Dec 13, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nScientific Freedom\n\n\n\n\n\n\nbook review\n\n\n\nInnovation comes by varied incentives: intellectual curiosity and economic incentive \n\n\n\n\n\nTue Dec 12, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nFuture of Coding\n\n\n\n\n\n\ndata science\n\n\n\nAs our jobs are automatable, we need to discover what’s not \n\n\n\n\n\nTue Dec 12, 2023\n\n\n4 min\n\n\n\n\n\n\n\n\n\n\n\n\nHow do you want to be remembered?\n\n\n\n\n\n\nleadership\n\n\nservice\n\n\n\nIt’s a question as old as time, but misses the mark and is distracting from the more important question. \n\n\n\n\n\nFri Dec 23, 2022\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nBuilding a complex R Shiny Dashboard Using ChatGPT\n\n\n\n\n\n\ndata science\n\n\nr\n\n\nshiny\n\n\nfuturism\n\n\nchatgpt\n\n\n\nChatGPT can create amazing boilerplate code and can point you in the right direction, but it cannot debug data problems easily (yet). It can read in data from the internet, make time-series forecasts, and visualize the data (with a little assistance). \n\n\n\n\n\nThu Dec 15, 2022\n\n\n8 min\n\n\n\n\n\n\n\n\n\n\n\n\nModels as a Service and the Future of Data Science\n\n\n\n\n\n\ntech\n\n\nstartups\n\n\nbusiness\n\n\ndata science\n\n\n\nData Scientists shouldn’t be scared their jobs will disappear. They should be excited that they’ll be joining companies that automate what they’re currently doing and offer it as a service. \n\n\n\n\n\nTue Dec 6, 2022\n\n\n4 min\n\n\n\n\n\n\n\n\n\n\n\n\nWriting a Tech Resume\n\n\n\n\n\n\ncommunication\n\n\n\nHow to write a resume to get into a FAANG company. \n\n\n\n\n\nFri Nov 18, 2022\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nResume Substance over Style\n\n\n\n\n\n\ncommunication\n\n\n\nThe content of your resume is more important than the design. \n\n\n\n\n\nFri Nov 18, 2022\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nWhat is a model?\n\n\n\n\n\n\ndata science\n\n\n\nPutting the mysterious in context. \n\n\n\n\n\nSat Nov 12, 2022\n\n\n5 min\n\n\n\n\n\n\n\n\n\n\n\n\nDe-sciencing Data Science and Talking Like a Normal Person\n\n\n\n\n\n\ndata science\n\n\ncommunication\n\n\nprinciples\n\n\n\nHow can data scientists bring their technical knowledge to a non-technical audience? Here are my lessons learned from seven years in the data trenches. \n\n\n\n\n\nWed Jul 20, 2022\n\n\n6 min\n\n\n\n\n\n\n\n\n\n\n\n\nWhen data collection goes too far\n\n\n\n\n\n\nproductivity\n\n\nfuturism\n\n\ntech\n\n\nsurveillance\n\n\n\nIt’s important for us to track certain things about ourselves. But this is clearly not exactly healthy IMO. \n\n\n\n\n\nSun Jul 3, 2022\n\n\n4 min\n\n\n\n\n\n\n\n\n\n\n\n\nPomodoro Principles\n\n\n\n\n\n\nproductivity\n\n\nticktick\n\n\n\nThe art of focus through 25min work blocks. \n\n\n\n\n\nTue Jun 28, 2022\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nIncrease Focus through Writing Down Everything\n\n\n\n\n\n\nproductivity\n\n\nmusings\n\n\nticktick\n\n\n\nTo be more present, get it all down and into a system. \n\n\n\n\n\nTue Jun 28, 2022\n\n\n3 min\n\n\n\n\n\n\n\n\n\n\n\n\nHow I use TickTick\n\n\n\n\n\n\nproductivity\n\n\n\nAn overview of how I apply the principles of “Getting Things Done”, or GTD. \n\n\n\n\n\nSat Jun 25, 2022\n\n\n7 min\n\n\n\n\n\n\n\n\n\n\n\n\nGetting Things Done\n\n\n\n\n\n\nbook review\n\n\nproductivity\n\n\n\nA powerful system to be more present. \n\n\n\n\n\nFri Jun 24, 2022\n\n\n6 min\n\n\n\n\n\n\n\n\n\n\n\n\nWhat is the best todo list manager?\n\n\n\n\n\n\nproductivity\n\n\napp review\n\n\n\nI’ve reviewed 20+ apps. I think I’m done reviewing them. \n\n\n\n\n\nThu Jun 23, 2022\n\n\n11 min\n\n\n\n\n\n\n\n\n\n\n\n\nNew ideas are distractingly exciting\n\n\n\n\n\n\nproductivity\n\n\npriorities\n\n\nideation\n\n\n\nBe careful of recency bias with your ideas. \n\n\n\n\n\nThu Jun 23, 2022\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nDownstream Impact\n\n\n\n\n\n\ndata science\n\n\nexperimentation\n\n\n\nWhen you do an online experiment, you’re changing the future forever. \n\n\n\n\n\nWed Jun 22, 2022\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Power of Party Pay by Visible\n\n\n\n\n\n\nstartups\n\n\nstrategy\n\n\n\nVisible wireless, owned by Verizon, offers users $25 off per month if they join a meaningless party. What’s the effect? \n\n\n\n\n\nTue Jun 21, 2022\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nProducts for dads\n\n\n\n\n\n\nproductivity\n\n\nfatherhood\n\n\n\nWhat products am I still using 5 years later? \n\n\n\n\n\nTue Jun 21, 2022\n\n\n6 min\n\n\n\n\n\n\n\n\n\n\n\n\nBlogging with Quarto, and why I don’t use Medium anymore\n\n\n\n\n\n\ndata science\n\n\n\nI’m trying out quarto and I like it. \n\n\n\n\n\nMon Jun 20, 2022\n\n\n4 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Author’s Angle Matters\n\n\n\n\n\n\ncommunication\n\n\nwriting\n\n\n\n\n\n\n\n\n\nSat Jul 17, 2021\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nProductivity notes\n\n\n\n\n\n\ndata science\n\n\nproductivity\n\n\n\nRunning list of productivity ideas. \n\n\n\n\n\nSat Dec 19, 2020\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nHow to mock the value of an ML solution\n\n\n\n\n\n\ndata science\n\n\ninnovation\n\n\n\nSell your solution before training your model. \n\n\n\n\n\nWed Dec 16, 2020\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nGet rid of the todo list. Calendar everything.\n\n\n\n\n\n\nproductivity\n\n\n\nIf you’re not willing to block time for it, does it event matter? \n\n\n\n\n\nTue Dec 15, 2020\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nData Beats Opinions\n\n\n\n\n\n\ndata science\n\n\ndecisions\n\n\n\nOpinions from the customer shape the product. Their behavior (captured as data) speaks louder than their words. \n\n\n\n\n\nTue Dec 15, 2020\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nSemantic Versioning for Data Science Models\n\n\n\n\n\n\ndata science\n\n\nmachine learning\n\n\n\nMeaningful versioning for data science models and machine learning pipelines. \n\n\n\n\n\nMon Jul 2, 2018\n\n\n5 min\n\n\n\n\n\n\n\n\n\n\n\n\nBuying a used car the data science way: Part 2\n\n\n\n\n\n\nwebscraping\n\n\nr\n\n\nregression\n\n\nanalysis\n\n\npricing\n\n\nbuying things\n\n\n\nHow I analyze used car data to find under-valued cars, and why none of my analysis matters.\n\n\n\n\n\nSun Feb 19, 2017\n\n\n14 min\n\n\n\n\n\n\n\n\n\n\n\n\nBuying a used car the data science way: Part 1\n\n\n\n\n\n\nwebscraping\n\n\ncars\n\n\npricing\n\n\nr\n\n\n\nHow I scrape used car data.\n\n\n\n\n\nSat Feb 18, 2017\n\n\n4 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe DataViz battle: Plotly vs ggplot2\n\n\n\n\n\n\ndataviz\n\n\nr\n\n\nggplot\n\n\nplotly\n\n\n\nWhat can you do with plotly vs. ggplot2 and how do they compare on a simple chart?\n\n\n\n\n\nFri Feb 10, 2017\n\n\n7 min\n\n\n\n\n\n\n\n\n\n\n\n\nStarting with Jekyll\n\n\n\n\n\n\nproductivity\n\n\nblogging\n\n\njekyll\n\n\n\nHello world.\n\n\n\n\n\nThu Nov 17, 2016\n\n\n5 min\n\n\n\n\n\n\nNo matching items\n\n\n \n\n_________________________ For coaching on data analytics or machine learning, reach out.", + "crumbs": [ + "Recent Posts" + ] + }, + { + "objectID": "christianity/2023-12-24-the-christ-child/index.html", + "href": "christianity/2023-12-24-the-christ-child/index.html", + "title": "The Christ Child", + "section": "", + "text": "The story of the Savior’s birth brings many wonderful concepts to memory and can teach us a lot about what will bring us true joy and happiness in this life.\n\nThis is my favorite video of the Christmas story. The most powerful part is the moment when Mary sings a lullaby to Jesus. I remember reading somewhere that this moment was completely impromptu by the actress, and it speaks volumes to the sacredness of the moment where Mary first laid eyes on her beloved son.\n\nSo what does this story give me perspective on at this time of year?\n\nChrist was the rightful, bloodline heir to King David’s throne. He was the King of the Jews. But he never sought authority. He never sought a throne. He instead taught “Render therefore unto Caesar the things which are Caesar’s”. He didn’t engage in turf battles. In rebellion. In insurrection. He just wanted people to find happiness in their circumstances by living with lovingkindness in their hearts for their God, their neighbor, and themselves.\nIn his role as a Savior and Judge of the world, he sought to not condemn the sinner trapped in the act of sin. Instead he came to liberate. To forgive. To support.\nIf you believe Christ was the Creator and Savior of the world, consider how He chose to come into the world. He was born in a stable, mucked with animal feces and rotting food scraps, covered with the stench of…a stable. He was rejected of a room in the inn. He was laid in a manger, perhaps a feeding trough. Maybe Mary had help giving birth, maybe she didn’t. He was born generally alone. I wonder if He chose to do his birth this way because nobody can say he had it easy. He didn’t have the special treatment of a King’s birth. No, he was born to an exhausted, weary traveler, likely on the cold hard floor of a dirty barn.\nIf we think about the Savior being the architect of this birth, think about how he planned for angels to show up to shepherds. Not King Herod. The shepherds. He would be the prophesied sacrificial Lamb. He would be the Good Shepherd. Yet these people were perhaps the minimum wage, forgotten ones outside the city gate. Yet these are those who had the privilege to see Him first. And He invited them to come and see. His whole life was an invitation.\nHe also invited the rich wise men. All are invited. He wanted all to see, and he wanted the world to know that He was for everyone regardless their circumstances. And that all of us, whether destitute or traveling with caravans, can bring the gifts of our heart to Him. We don’t need to bring gold. He just wants a “broken heart and contrite spirit.\n\nHow can we apply these things to our life, today?\n\nSeek out the forgotten. The people in our life that seem forgotten. The servants in our life (person on the other end of the customer support line, the checkout person, your supervisor) but even, your best friend who seems to be doing great…\nSeek not riches or wealth. Harod sought these things. Christ sought relationships and truth.\nDon’t seek for power. Christ deserved it. Christ had it. He turned water to wine, cursed a tree, and made a host of men fall over at the sound of his voice. Yet he didn’t touch the Romans.\nSeek to invite. To share. To uplift. Christ made shepherds feel important. He invited them to his crib side. And ” his hand is stretched out still.” (Isaiah 9:12)\n\nHe came like all of us, as a child. But he came to show us how a God would live. And he did.\n\n\n\nThe Christ as a Child, before worshipping Wise men\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + }, + { + "objectID": "christianity/2023-12-17-christmas-celebrates-a-living-christ/index.html", + "href": "christianity/2023-12-17-christmas-celebrates-a-living-christ/index.html", + "title": "Christmas celebrates a Living Christ", + "section": "", + "text": "Away in a manger.\n\n\n\nOld news\nElder Neil Anderson’s invitation here is worth listening to. It’s an invitation to ponder the reality of the birth of our Savior. It’s rather simple, but it evokes a profound question we should all consider.\n\n\nHow wonderful it is to celebrate the birth of our Savior and Redeemer. Jesus Christ is the central figure of all human history.I know He lives. I know He was born. I know He has been resurrected. I know He is our Savior and Redeemer. And with you I rejoice in this beautiful… pic.twitter.com/YDQpIzgk0n\n\n— Neil L. Andersen (@AndersenNeilL) December 17, 2023\n\n\n\n\nDid He come?\nNothing Elder Anderson shares here is new. It’s rather repetitive. Same old story. Same-old old-guy telling me to believe in a Jesus.\nIf you consider the most currently interesting things in this world, Artificial Intelligence, some may tell you that there exists a future utopia where we’re supported by infinitely intelligent digital agents who can solve complex world problems and bring us to…utopia.\nOk. We’ve also heard this before. The Tower of Babel tried to approximate heaven, and now humanity is trying to approximate Godlike intelligence.\nThe void of Christ in one’s life produces a desire to create Christ. A savior. Something to literally save us from our woes.\n\n\ni think AI is going to be the greatest force for economic empowerment and a lot of people getting rich we have ever seen\n\n— Sam Altman (@sama) February 13, 2023\n\n\nLet’s be real. I’m a tech optimist. I say bring it on. But I’m also a Christian. In my view, the most important question isn’t “what will AGI do to/for humanity?” Instead, the most important question is “was Jesus Christ the promised messiah?”\nIf Christ came, and was indeed the prophesied Christ, then all of life’s ultimate questions are already answered.\n\nWhy are we here? To die and be resurrected to live again.\nWhere did we come from? The same place He came from: the presence of God.\nWho are we? We are sons and daughters of God worth saving.\n\nYes, the questions are already answered: it doesn’t matter what happens with AI. Because the end is known: the Lord will come again.\nLet us treasure this time to reflect on a Savior who already came. Who lives. Who loves us beyond mortal (or AI) comprehension.\n\n\nWhat can we do?\nLet’s take a moment, perhaps an hour, to consider the miracle of Christmas:\n\n\nAs Christmas approaches, I realize that some may have concerns and perhaps some anxiety about the future. There may be a lot of “noise” in your life: more or less constant engagement online without downtime, without time to be quiet and reflect and think, without time to look… pic.twitter.com/4rqS2F6No9\n\n— D. Todd Christofferson (@ChristoffDTodd) December 15, 2023\n\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + }, + { + "objectID": "about.html", + "href": "about.html", + "title": "About", + "section": "", + "text": "Last updated: 2022-12-14\n_________________________ For coaching on data analytics or machine learning, reach out.", + "crumbs": [ + "About" + ] + }, + { + "objectID": "about.html#bio", + "href": "about.html#bio", + "title": "About", + "section": "Bio", + "text": "Bio\nData scientist with 7 years of experience building complex, large-scale data pipelines and inferential and machine learning models. Experience running online A/B experiments, managing complex compute infrastructure and confidently presenting to VP-level audiences. Passionate about innovation, creativity, tech, data, engineering, leadership, mentoring and team building. Former startup co-founder.", + "crumbs": [ + "About" + ] + }, + { + "objectID": "about.html#experience", + "href": "about.html#experience", + "title": "About", + "section": "Experience", + "text": "Experience\nSee LinkedIn or Resume for details.\n\n\n\n\n\n\n\n\n\n\n\nPresent\n\n\n\n\n2022/01\nHopper\n\n\n\n\nRemote\nSenior Data Scientist, Hotels Marketplace\n\nApp Experience: recommendation systems, A/B testing, product insights, user analysis. Price Merchandising: pricing and markup optimization, competitive pricing intelligence.\n\n\n2022/01\n\n\n\n\n2020/03\nGoogle: Maps, YouTube\n\n\n\n\nSan Bruno, CA\nData Scientist, Engineering\n\nGoogle Maps: A/B testing, product insights, user analysis. YouTube Music: A/B testing on music recommendation system enhancements, user insights, marketing analytics, user-targeting and churn analysis\n\n\n2020/03\n\n\n\n\n2017/07\nCapital One\n\n\n\n\nWashington, D.C.\nData Scientist, Machine Learning\n\nMachine learning and ML data pipeline development, cloud compute (AWS), risk modeling\n\n\n2017/07\n\n\n\n\n2015/08\nBates White Economic Consulting\n\n\n\n\nWashington, D.C.\nAnalytics Consultant\n\nEconometric and financial modeling in the context of antitrust litigation\n\n\n2014/08\n\n\n\n\n2013/01\nNovi Security\n\n\n\n\nProvo, UT\nCo-founder\n\nInnovative, wireless home security. Top 2% Kickstarter. Successfully raised seed round of investment", + "crumbs": [ + "About" + ] }, { - "objectID": "posts/2020-12-15-data-beats-opinions/index.html", - "href": "posts/2020-12-15-data-beats-opinions/index.html", - "title": "Data Beats Opinions", - "section": "", - "text": "When I co-started a company several years ago, my founders and I would canvass neighborhoods knocking doors. We’d discuss our ideas for a new product one door at a time. After each conversation, the product took a new form. Eventually, the product took shape and we had a successful kickstarter launch.\nSince that time, I’ve thought about how valuable it was to get information straight from the source.\nAlberto Savoia’s new book, “The Right It”, is re-teaching me this principle. Data beats opinions, he says. In another book I’m reading, “Trustworthy Online Controlled Experiments”, the former CEO of Netscape is quoted saying,\n\nIf we have data, let’s go with data. If all we have are opinions, let’s go with mine. - Jim Barksdale\n\nData sourced from your manager, your stakeholder, or your customer are invaluable to help you know if you’re solving their problem. Too often it’s easy to get stuck in the original solution that comes to our mind.\nData from customers directly shape the product. Data sourced at scale from online experiments refine it.\nOpinions from the customer shape the product. Their behavior (captured as data) speaks louder than their words. Frequently, it’s challenging to correlate the two. We’re left to guess why someone actually clicked, bought, churned. It’s a beautiful cycle.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "objectID": "about.html#education-and-service", + "href": "about.html#education-and-service", + "title": "About", + "section": "Education and Service", + "text": "Education and Service\n\nM.S. in Statistics, 2013/08 - 2015/05, Brigham Young University, Provo, UT\nB.S. in Statistics, 2008/08 - 2015/05, Brigham Young University, Provo, UT\nFull-time Humanitarian Service, 2009/08 - 2011/08, Tegucigalpa, Honduras", + "crumbs": [ + "About" + ] }, { - "objectID": "posts/2022-12-06-more-new-businesses-than-ever/index.html", - "href": "posts/2022-12-06-more-new-businesses-than-ever/index.html", - "title": "Models as a Service and the Future of Data Science", + "objectID": "lists/ai/index.html", + "href": "lists/ai/index.html", + "title": "Cool AI Tweets", "section": "", - "text": "Businesses are Launching Like Crazy\nThere’s never been a better time to start a business. The Census shows there are over 200,000 new business applications per month more than pre pandemic.\n\nWhat’s driving this?\nListening to The Unintended Consequences of Working from Home it dawned on me that there’s a hyper acceleration of innovation happening.\nConsider the rise of AI tools like ChatGPT and StableDiffusion. Chamath Palihapitiya discusses the expansive applications for these services. What was once SaaS will become MaaS (models as a service). There will be models for everything: copy writing, code debugging, converting wireframes into working apps, ad generation, book writing…\nWhile tools like ChatGPT are just in demo mode, it’s wildly apparent they’ll be an impetus for new ideas and reducing the friction of getting to the answer. For example, as a data scientist if I need boilerplate code to clean some data, I can ask ChatGPT for the 80% solution. I’m already spending 30% of my day copying code snippets from StackOverflow and making it work for my problem. ChatGPT will just accelerate that process. 10 years from now if Neuralink can read my thoughts I don’t even need a keyboard to do this…we’ll build things at the speed of thought.\nConsider this for writers and marketers. They’ll use ChatGPT to unblock them, generate ideas, and get started. Innovation across the board will accelerate because the kinetic friction to getting started will reduce to zero. You can then spend your time on the editing and refining.\n\n\nThe Best Time to Start a Business\nI digress. Why is now the best time to build a software business?\n\nCompute is cheap. Gone are the days of having to build a server to prototype and idea.\nBarriers to prototyping are nearly free and scaling with the cloud is nearly infinite. Consider how the Gas App can launch to 100,000 new users per day with just a few developers.\nModeling is now easy. All cloud services have their own AutoML tools to build machine learning models for you.\n\nThe center of all of this is scalable data infrastructure and AI.\n\n\nFuture of Data Science\nThe data scientist of today may still be using sklearn to manually do hyperparameter tuning, but the data scientist of tomorrow will either be exclusively building MaaS B2B products or be the one person in their organization who will leverage all the MaaS tools.\nIf we can ask ChatGPT for complex answers it learned from the internet, why couldn’t something similar be trained on your company’s internal data? If that’s possible, then why couldn’t you just have a Q&A session with your internal ChatGPT? Consider the following example:\n\n“Hey KITT, what are the user segments generating the most revenue on Tuesdays at 5pm?” (Analytics)\n“How many sales do we anticipate from these users next Tuesday?” (Machine Learning)\n“What ads have been most effective for us in driving new sales in the past 7 days?” (Statistics)\n“Okay, KITT, generate 3 variants of that ad for next Tuesday” (StableDiffusion generating a new Ad)\n“I like ads A, B and C. launch an experiment on Facebook/TikTok, run it for three days and dynamically allocate ad spend to the best ad.” (Business integrations, statistics, ML models)\n\nThe data scientist of the future will be the one with deep understanding of these tools and an awareness of their biases. It will be very difficult to know when they’re lying to you. The in-house data scientist will be keen on knowing the biases in the data fed into these algorithms and how to make judgments on where to go next.\nEarly stage companies won’t need data scientists because most of this stuff will be off the shelf and easy for an engineer to integrate. That means that the data scientists will join these MaaS companies to build out optimized products that solve these niche problems.\n\n\nTakeaways\nData Scientists shouldn’t be scared their jobs will disappear. They should be excited that they’ll be joining companies that automate what they’re currently doing and offer it as a service.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "TL;DR: AI is wild. Last updated per last headline. First created 2023-12-14\n\n\n\n\n\n\n\nv0.dev\n2023-12-15\nv0.dev a UI generator by vercel. React.\n\n\nCoffee by Coframe\n2023-12-15\nBuild React UIs super fast. GitHub\n\n\nAnnouncing Coffee: build and iterate on your UI 10x faster with AI ☕️👇https://t.co/0vBssgp0ue pic.twitter.com/JqwC8WpDzs\n\n— Coframe (@coframe_ai) December 13, 2023\n\n\n\n\nPrompt Engineering\nAdded 2023-12-15\nPrompt Engineering tips by OpenAI\n\n\nGenerate a Website from Screenshot\n2023-12-14\n\n\nscreenshot-to-code: upload a screenshot of any website, watch as AI progressively builds the html, iteratively improving the generated code by comparing it against the screenshot repeatedly. pic.twitter.com/TCrbJj3VS0\n\n— Siqi Chen (@blader) November 21, 2023\n\n\n\nGitHub\nhttps://screenshottocode.com/\n\n\n\ntldraw\n2023-12-14\n\n\nLooking to learn about the AI thing we made?👇Link in the next post pic.twitter.com/1FjY3eMSSF\n\n— tldraw (@tldraw) November 21, 2023\n\n\n\nhttps://makereal.tldraw.com/\nhttps://open.substack.com/pub/tldraw/p/make-real-the-story-so-far?r=2ri91a&utm_medium=ios&utm_campaign=post\n\n\n\nCursor\n2023-10-10\nhttps://cursor.sh/\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2022-06-20-blogging-with-quarto/index.html", - "href": "posts/2022-06-20-blogging-with-quarto/index.html", - "title": "Blogging with Quarto, and why I don’t use Medium anymore", + "objectID": "book-reviews/2022-06-24-getting-things-done/index.html", + "href": "book-reviews/2022-06-24-getting-things-done/index.html", + "title": "Getting Things Done", "section": "", - "text": "Been here before, eh?\nI probably shouldn’t write this post considering I’ve also written posts “blogging with Jekyll”, “Blogdown”, and “distill” before. I’m flaky, what can I say. I’ve changed my blogging framework 7 times in 5 years (I started with blogger.com and Wordpress before Jekyll, and even used Medium for 25 posts.)\nBut it’s not my fault. There are too many static site generators and it seems that Rstudio is as flaky as me. Meaning, they built rmarkdown, created hugodown, blowdown, bookdown, and distill. Hugodown is a lightweight version of blogdown, and I never figured out why it exists. Then there’s workflowr and so many other great, random products out there.\nWhy quarto for me? It seems to have all the stuff that distill has, and then some. And given its design and collaboration with Wes McKinney (pandas guy) in building quarto, and given that Wes wrote his latest book with it, I think this will be here to stay for at least 5 years.\n\n\nWhy do I avoid Medium\nWhy don’t I blog with Medium? I wrote 25 posts there over 9 months and loved it. It makes writing and publishing incredibly easy, which is why I did it. With distill/blogdown the limiting factor was I’d have to be at my computer to get a post in. I love writing on my phone - I have over 2000 journal entries with Day One over seven years, several of which are “draft” posts for a blog that won’t see the light of day since I don’t care about them after I’ve written it. I want to be able to blog frequently, a short little blurb to keep up my writing, and medium enabled this.\nBut 1) I didn’t get many views (not that I care) and 2) my writing is stuck on their platform (confirmed to me this week as I’ve tried several old, broken tools that attempt to export posts out of medium).\nI got 50x the views on my blogdown site just from organic google searching. From reading other people’s posts about leaving Medium, it’s seems that most traffic to Medium posts comes from outside of Medium.\nSo while I’m certainly not into blogging for the money, I wouldn’t mind getting the content to people who it can help. And if medium didn’t enable this, what is its purpose?\nSo I’m back and finally decided that I’m going to own my own platform. Seth Godin wrote a blog about this topic once. Why be on Medium, substack, Facebook, etc or any other up an coming platform? We’ll they’re all skewed toward the 1% of people who make money on the platform. Everyone else is wasting their time. So might as well own your content. And better to focus on writing than waste time catching up on every platform.\nAlso, it’s fun! There’s a fuzzy feeling to blogging.\n\n\nFuture of quarto?\nI’m speculating here, but Quarto can be used withR Studio, Jupiter or VS Code. The last editor seems excitingly suspicious.\nPerhaps R Studio sees the writing on the wall that VS Code is taking over the IDE world and perhaps taking over the long term future of R Studio IDE. I personally don’t see why anyone would pay for R Studio when VS Code is free and has a better interface. And while R Studio has a few better integrations for R at the moment, it won’t once enough people see the light for VS Code and turn their contributions there. I’ve been using R on VSCode for two years now and it rivals R Studio in 95% of the feature set, but 100% has better window management.\nSo Quarto seems like a great opportunity for R Studio to begin monetizing on a publishing platform like R Studio connect. Platforms like Notion and Confluence are great for everyone except data scientists trying to share reproducible research. But a quarto server seems like a great way to finally bring in Python data scientists into the markdown-flavored documentation world. (Man, I personally can’t use Jupyter/Google colab notebooks when I can use R Markdown!) I’d heartedly welcome this prospect, though I have no idea what their plans for Quarto really are.\nTill next blog post about what blogging tool I’m going to use…\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "Principles and Core Insights\nAfter 21% my takeaways are:\n\n“My mind is weighed down by all of the ideas of things I can do.” I waste my time on todos that are just “go to doctor”, but should be “schedule appointment to go to doctor”. Anything that only takes 2 min should be done immediately. Anything longer later. But I love that clarity - I’ve often written lots of todos but not from the “next action to take” perspective.\n“Visions can be built from the ground up rather than just top down.” I’ve tried writing down big visions for my 10 year future and it never works for me. I’ve got anxiety when I try to think where I want to be in 10 years. I mean, I know I want to be happy, be best friends with my wife and kids and have meaningful relationships but whether I’m still a data scientist or a farmer by then is anyones guess. (I wanna keep my options open.) But as I look at the things on my todo list and “eventual” to do list, a different picture emerges. I know I want to be a writer (hence this blog), I know I want to travel to XYZ location, to be involved in giving back, etc. TLDR: I know things I want to experience in life. I don’t have to craft value statements and invent ideas of what to do (seems forced). Instead I can reflect on what’s currently exciting and important to me and categorize those things into high levels values/missions. This will help me when I need to prioritize so not every whim of an idea gets my attention.\nGTD book just lays out what a todo is. It breaks down the problem of doing things (big and small) into what they are (time sensitive, someday, etc). Whether I’ll follow the system is up for debate, but I love the ideas so far. It very much fits my naturally organized mind, but may not work for more spontaneous folks that don’t like as much structure and list keeping.\nMost of my “todos” have been “intended outcomes”, but not “next actions”. For example, I see I have “change car battery” on my list right now and “plan yosemite trip”. But these aren’t todos. I can’t organize and prioritize outcomes. I can only organize and prioritize actions, he says. Changing these to “call mechanic to book oil and battery change and identify an hour in your calendar”. And “open recreation.gov when walking around the house and find a campsite.”\nOrganize tasks around where you’ll do them. This is in line with Atomic habits which states to be hyper specific about where and when you’ll do something. “Call grandma when I get into my car tomorrow morning to go to work.” Or “take a moment at my desk during lunchtime to find a mechanic by opening Google Maps and plan an oil change. Find 1 open hour on the calendar.”\n\n\n\nPutting it into practice\nI’ve been using TickTick for my task manager, which has Lists (folders) where I can put my tasks and tags so I can label and categorize each task. Here’s my organization strategy:\n\nWhen jotting ideas write intended outcome and next action as my todo.\nTag with where I’ll do it and provide day or time it’s due (if applicable)\n\nMove each item to a respective list:\n\nASAP - there’s a useful urgency to this task (begin memo)\nEventually - there’s no urgency but I know I’ll want to do this\nSomeday maybe - no urgency and no commitment, but it’s an idea of something I want to do.\n\nTagging system: tag each item with either Work or Personal. Then within that, some meaningful themes:\n\nProjectName (work deliverable or personal project like “ImproveMyHealth”, “BuildApp”)1\nLocation (where I’ll do it). Around the house. At desk. In car. While cleaning the house, etc. this is habit stacking. Most work stuff is done at my desk.\nwhen I’ll do it. Stack with other activities. Examples: Before lunch.\nDuration (how long it takes: 1, 2, 4 hours, 5, 30min). This might be useful for planning.\n\nList system. Move from inbox to list when properly categorized. I like “Work” and “Personal” lists. I think since you can use unlimited tags, and tags can be nested in TickTick, there’s no substantive differ ne between list and tag. Not sure yet how to use the TickTick lists when tags are so useful. Lists of work and personal.\n\n1 Deciding Vision: As I write this, choosing a project might be a good place to insert a goal (intended outcome) as a project name. Instead of Exercise, the intended outcome is improving health. The goal is being able to run a 5k. So perhaps goal/objective is “ImproveHealth” and KR is “run 5k”. These goals can be identified by asking the 5 whys. If I have an idea if “go running” as my task, a good grounds-up vision exercise would be to ask “why do I want to run a mile tomorrow? Is it to accomplish something or to relax my mind? Why is relaxing my mind important to me? Why is my mental health important? Etc. I think subconsciously ideas come of what to do next all the time “I should work out” but rarely do I take the time to ask “why do I see the need to work out? What’s the greater vision here for this task?” Understanding that vision can help prioritize and build a desire to accomplish the task. If the idea “learn a new language” comes up, asking why can help me realize “oh, this is just for fun and won’t be for anything meatier than having fun! No pressure on this task and maybe I’ll never do it.” The nag to run a mile might help me realize “I need to take care of my health, and this can’t wait.”In summary:\n\nIdea/task comes.\nDocument in inbox.\nClarify the intended outcome and the next action.\nOrganize: tag. Set up reminder. Move out of inbox to list.\nReview and Prioritize: understand where these ideas will take you and choose your adventure.\nDo!\n\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2023-12-16-humanity-and-ai/index.html", - "href": "posts/2023-12-16-humanity-and-ai/index.html", - "title": "What is humanity", + "objectID": "book-reviews/2023-12-18-hitchhiker's-guide-to-the-galaxy/index.html", + "href": "book-reviews/2023-12-18-hitchhiker's-guide-to-the-galaxy/index.html", + "title": "Hitchhiker’s Guide to the Galaxy", "section": "", - "text": "AI and humanity\n\n\nI code in cursor. I use ChatGPT when that fails. I see Pika and Runway for text to video. I see midjourney for photos. Other things that just use GPT to make blog posts.\nWill AGI even solve the problem of getting everything to connect to everything?\nDo we want a stochastic assistant to have access to my bank account, text messages, medical records, social media accounts, etc?\nWill LLMs be the space between human communication? If we’re all using bots to generate material to send to each other, and all use bots to summarize that, then where will the real human connection exist?\nWe all want a world where our problems go away, but if we don’t have problems then are we human? To be naturally human is to be discontent and desire more, and it takes the wise to overcome these impulses. But the masses are not and never have been wise. Only the individuals.\nThe future is bright. But where does humanity fit into all of it?\nWhen problems are too easy to solve with AI, humanity gets to focus even more on the really hard problems: agreeing on how to get along.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "The book of infinite possibilities\n\n\nThis is a classic. First time reading it and I love it.\nWhat I love about the storytelling:\n\nDeclare something as unavoidably true, even if ridiculous, and build all content off of it.\n\n\nNobody cares that the infinity probability drive is absurdly improbable. But once the reader just accepts this as fact the rest of the story make sense.\n\n\nget into the mind of the reader\n\n\nsperm whale? I love when he’s detailing the whales first and last thoughts. Just so random, but hilarious.\n\n\nbe spontaneous, but connected.\n\n\nI recently watched the second season of Loki and couldn’t stand it. It was all over the place. Random here, random there. But this is great because the spontaneity flows within the confines of the story.\n\n\nlogic, with social proof, can invert the mind\n\n\nArthur dent is flabbergasted by mice being the most intelligent species. Well the logic is sound: they were just fooling us and running experiments on us the whole time so we wouldn’t think anything of it. This flip on expectation, backed by “isn’t it obvious?!” gets the reader wondering for a second before they snap back to reality: no, mice aren’t running the universe.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2023-12-24-twas-the-night-before-christmas/index.html", - "href": "posts/2023-12-24-twas-the-night-before-christmas/index.html", - "title": "Twas the Night before Christmas", + "objectID": "book-reviews/2023-12-23-dune/index.html", + "href": "book-reviews/2023-12-23-dune/index.html", + "title": "Dune", "section": "", - "text": "Link to the 1912 publication, Twas the Night Before Christmas\noriginal poem was 1820’s\nSt Nick was 4th century\nDutch brought the name “Sinterklass” to the U.S. in the 1600’s.\nSt Nick becomes red by 1931, thanks to Coke\n\n\n\n\n\n\n\nThe OG St. Nick\n\n\nEverything below is produced by GPT:\n“How long has the concept of Santa been around? Where did”st nick” come from?”\n\nThe concept of Santa Claus has evolved over many centuries, originating from the historical figure of Saint Nicholas. Saint Nicholas was a 4th-century Christian bishop in Myra, which is now part of modern-day Turkey. He was known for his generosity and for performing miracles, which earned him a reputation as a protector of children and sailors.\n\n\nThe name “Santa Claus” evolved from the Dutch “Sinterklaas,” a short form of Sint Nikolaas (Saint Nicholas). Dutch immigrants brought the traditions of Sinterklaas to America in the 17th and 18th centuries. In these traditions, Sinterklaas was depicted as a serious, religious figure who rewarded good children and punished the naughty ones.\n\n\nDuring the 19th century, especially in America, the image of Santa Claus as we know it today began to take shape. The 1823 poem “A Visit from St. Nicholas” (commonly known as “Twas the Night Before Christmas”) played a crucial role in shaping the modern character of Santa Claus, including his physical appearance and the tradition of delivering gifts to children.\n\n\nLater, in the 19th and 20th centuries, Santa’s image was further popularized through various media, including advertisements, films, and songs, which contributed to the jovial, red-suited, and reindeer-driving character recognized globally today. This character represents a blend of the historical Saint Nicholas, folk traditions from various cultures, and modern commercial and media influences.\n\nHow did St Nick become red?\n\nThe transformation of Saint Nicholas into the red-suited Santa Claus is a gradual evolution influenced by cultural, artistic, and commercial factors. The image of Santa Claus wearing red clothes began to become popular in the 19th century, but it was solidified in the 20th century, particularly through advertising.\n\n\n\n19th Century Literature and Art: In the 19th century, Santa Claus was often depicted in various colors of robes, including blue, green, and brown. However, by the latter half of the 19th century, the image of Santa in a red suit began to appear more frequently in literature and illustrations. Thomas Nast, a prominent American cartoonist, played a significant role in popularizing this image. In his illustrations for Harper’s Weekly starting in the 1860s, Nast depicted Santa Claus in a variety of outfits, including the now-familiar red suit.\n\n\n\n\nCoca-Cola Advertising in the 20th Century: The standardized image of Santa Claus in a red suit with white fur trim was popularized and became iconic largely due to Coca-Cola advertising campaigns. In 1931, Coca-Cola commissioned illustrator Haddon Sundblom to create a Santa Claus for their Christmas advertising campaign. Sundblom’s Santa was jolly, rotund, and dressed in a red suit with white fur trim, which matched the company’s color scheme. These advertisements were widely circulated and became immensely popular, cementing the image of Santa Claus in a red suit in the public’s imagination.\n\n\n\nWhile the red-suited Santa Claus is now ubiquitous, it’s important to note that the evolution of his image was influenced by a blend of historical, cultural, and commercial factors over several decades.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "shield your son too much and he’ll not grow strong enough to fulfill any destiny\ndeprogram after the machines. Let the machines do too much thinking.\nhumans must never submit to animals\n“how did the woman seal my tongue?” Paul can’t tell his father he’s going to die. Why? Sometimes our tongues are bound to speak that which can’t be changed\n“the mind commands the body and it obeys. It commands itself and it rebels”\n\nConnections: - Alan Pinkerton (killers of the flower moon) “secrets break the character of the criminal till they give it out”. Dr Yiwei cries when his scripture is given out.\n\nif I made him do it it wouldn’t be his doing.\nstorytelling: why tell us 100% of everything up front? The movie hides the secrets about Yueh.\nstorytelling: the hindsight narrator\n\nWhen God has appointed a man to die, he guides his wants to desire that place\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2022-07-20-de-sciencing-data-science-and-talking-like-a-normal-person/index.html", - "href": "posts/2022-07-20-de-sciencing-data-science-and-talking-like-a-normal-person/index.html", - "title": "De-sciencing Data Science and Talking Like a Normal Person", + "objectID": "book-reviews/2023-12-19-101-essays-to-change-the-way-you-think-by-briana-weist/index.html", + "href": "book-reviews/2023-12-19-101-essays-to-change-the-way-you-think-by-briana-weist/index.html", + "title": "101 Essays that will Change the Way You Think, by Brianna Wiest", "section": "", - "text": "Building a Data Science culture\n\n\n\n\n\n\nTL;DR: Always keep it simple and always bring it back to the business need.\n\n\n\nA coworker once asked me for advice on how to bring technical rigor into a non-technical culture.\n\n\nWhen the Simple Solution Wins\nA few years back I wanted to see if I could predict which NBA team would win in their next match. FiveThirtyEight is a blog that does this every day. Could I build a model as good as theirs?\nI built a few models and put up a site. Below I have a table of accuracies for each of my models compared to FoveThirtyEight’s.\n\nWhat I learned is that Nate Silver’s FiveThirtyEight three models are only 66% accurate. In 20 hours I got a model as accurate (V02 above) as his using just team level data (win %, recent win streak, etc.) and no player data (injuries, etc.). Also my model was built using data from 2005-2017 to predict 2019 performance. His model was updated daily with recent stats.\nBut even more glaring is that if I made a prediction on a single feature (Home % > Away %) I could achieve 63.7% accuracy. This feature is a 1 if the home teams win % is greater than the away teams win %, 0 otherwise. Meaning, the home team wins 63.7% of the time their season win % is higher than the away teams season win %.\nWas it worth building an XGBoost model with 30 features to get 65.8% accuracy when just a simple calculation is 63.7% accurate? Depends on business context and how valuable that 2% gain is and what the development/engineering cost of deploying a model is. But if I were you I’d start with the simple model to get it into production to start generating value and then come back later to optimize.\nCaveat: it took a lot of work to discover that feature. 90% of the problem was building the data set. So at the end, building a model was pretty simple once I had the data. (This is where cloud AutoML will take over going forward, sorry!.) And I needed the model to see the feature importance (this was the top feature.) This is a valid data science approach: use modeling to discover the patterns. But just because you have a model doesn’t mean it’s worth deploying.\nKeep it business focused: when building a recommendation system, start with “what’s most popular”. Why would you need K-means or whatever to begin? And can’t you build your own K-means by creating heuristic filters? For example: if you want to recommend me a shirt based on shirts I’ve searched, you can find all shirts of same color, price, and size and recommend those. Building a model to take into account dimensions, patterns, what others buy, etc is fine but should be a V2.\n\n\nMindsets\nThere’s a temptation to act like an academic professor and use fancy jargon when working with your coworkers. Even worse, there’s a temptation to think you’re smarter than your coworkers because you know this mathy thing that they don’t. But remember this quote:\n\nWhen they are learned they think they are wise…1\n1 2 Nephi 9:28\nThis pride power struggle is your downfall for two reasons:\n\nIt blinds you to thinking your solution is good just because someone else can’t understand it.\nIt blinds you from focusing on what matters most: getting the simplest and best solution.\n\nYour coworkers aren’t your students eating you. They’re your smart coworkers solving the same problems you are.\nA better mindset is that of a professional athlete, like a football player. They might be dumb as bricks at times but they’re all incredibly smart players. Can you explain your technical solution like a pro football player would?\n\nBad: “I built an XGBoost classification model that reduces the RMSE by minimizing the Gini coefficient on each node…”\n\nBetter: “I noticed that most users close the app after they reach this page. I tried looking at some reasons why and found a few common behaviors (DISCUSS, get feedback). I think we can predict when this will happen and here’s a framework to do that.”\n\nThere’s a temptation to think “I did all this technical work, I should get credit for it!” My manager once coached me, “Your stakeholders should be amazed by how simple you made it. Not by how complicated the problem is.”\nThe best example I know of this is Chris Voss, an FBI negotiator. Listen to his podcasts or YouTubes. He’s a humble guy and doesn’t get into the technical stuff. He knows the principles and keeps the explanations simple. He helps you feel smart when you listen to him. He’s one of the best negotiators in the world and if you were having dinner with him you’d think he was a normal guy. This is how data scientists should be.\n\n\nBugs\nThere are two types of bugs in data science: Software bugs and data bugs. You’ll spend 80% of your ramp up time on a project setting up your environment, learning the data, trying to understand the primary keys and logging and unique values, etc.\n\n\n\n\n\n\nNobody cares about how you do any of this (the same way you don’t care about how cereal ends up in your grocery store), but they do care that you do it because it shows that you’re thinking about the right things.\nThey’ll also worry that you’re spending too much time on the wrong thing, so make sure you believe your actions are solving a business purpose.\n\n\n\n\n\nTakeaways\n\nFocus on principles, not technical details.\nGet the simplest, useful solution into production first to start creating value. Then figure out if it’s worth optimizing. If your product gets deprecated in 3 months then the fancy model will be wasted time anyway.\nYour stakeholders should be amazed by how simple you made it. Not by how complicated the problem is.\nIf you can’t explain a trend with a simple bar/line chart, a fancy regression model won’t do.\nStart with the non-technical (basic math) solution. Then see if you can beat the basic math with a fancy model. Evaluate the cost/benefit of the technical solution relative to the dumb version.\nwhen you have a fancy solution, make sure you compare it to the basic solution. Make sure you can beat the solution your teammates come up with. And make sure you carefully lead them from “their” solution to yours. “At first I tried X. X was fine. But X didn’t account for Y. So I built a model M and saw that M out performs X by 10%.”\nJust because you know/use math, doesn’t mean it’s right for the business. Data Scientists can easily be myopic because the work we do is challenging and deep in the weeds.\nYour boss doesn’t care about the nature of the bugs, but you should try to bring first principles to the table so she can cover for you. “I keep hitting this bug in the data. Can we ask/work with Infra team to solve this because it eats my time.”\n\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "TL;DR: 101 ideas. This is like a modern day Meditations.\n\n\n\n\n\n\n2023-12-20 9-11\n\nhappiness of pleasure, grace (appreciation), excellence (emotional resilience)\nsome of the poorest countries are the happiest.\n\n2023-12-19 Essays 1-8\n\nwe all started as strangers\nto change your beliefs, go have experiences that manifest and confirm the beliefs you want to have\ncan only have a few truly\nour relationship with others is a pure reflection of our relationship with our self. Work on your relationship with yourself to improve your relationship with others.\ndo you look at your leg and say “that’s me?” No. That’s my leg. Do you look at your eye, heart, hair? No. Do you look at your fears, hopes or dreams and say, that’s me?\nfear and Anxiety aren’t feelings. They’re symptoms.\nWhat emotion do you feel the most often? Is it positive? If not, why does a negative feeling deserve the spotlight? What does this tell you about your relationship with yourself?\n\n2023-12-22 essays 12+\n\nknowing doing gap. “If I lived today on repeat for 10 years where will I be?” What would happen if I didn’t do X?\n\nInsights: - self actualization is what we’re all doing. We all mostly have shelter, food, job, even if minimum wage.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2022-06-25-how-i-use-ticktick/index.html", - "href": "posts/2022-06-25-how-i-use-ticktick/index.html", - "title": "How I use TickTick", + "objectID": "book-reviews/2023-12-12-scientific-freedom/index.html", + "href": "book-reviews/2023-12-12-scientific-freedom/index.html", + "title": "Scientific Freedom", "section": "", - "text": "I’ve recently read “Atomic Habits”, “Deep Work”, “The Power of Habit”, “Getting Things Done”, “Essentialism” and “Effortless”. These productivity paradigms influence this post.\nInspired by this Reddit post, I’ve tried thinking how I want apply the principles of GTD and these other paradigms. I think GTD is great for me because it helps me get ideas out of my head and Essentialism is a better pursuit to make sure I’m not caught up in minutia. I don’t see them as incongruent, but one as an ideation organization approach and the other as a relentless focus.\nFive steps of GTD:\n\nCapture\nClarify\nOrganize\nReview\nEngage\n\n\nCapture\nI have an iOS shortcut that lets me quickly add a TickTick task to my inbox. I put this on my Home Screen for instant access and to avoid distraction. I want to capture the idea, not open TickTick and get distracted by other ideas.\nOr I use the TickTick today widget and upload it to today directly. Depends on the task and how detailed I want to be.\n\n\nClarify\nHere’s the system I use to clarify.\nDefinitions:\n\nTask: an action item.\nProject: an intended outcome with multiple tasks.\nEpic: an intended outcome with multiple projects.\nKey Result: high level, long term accomplishment. (Increase revenue 10%)\nObjective: a squishy, feel-good purpose statement. “Deepen relationships with loved ones.”\n\nTask grooming process: Groom the inbox every night and identify the intended outcome and next action. Tag the task.\n\nIf the task was “send Birthday card”, that’s really an intended outcome and is a small project. The tasks are 1) buy card from CVS, 2) put in envelope with stamp, 3) drop in mailbox. These three subtasks need to be understood. But a separate inbox entry may be “pay phone bill by sitting down at my computer at 10pm”. This isn’t a project. It’s just a one off thing. But it can still be clarified with details.\nLabel if it’s a project or not. Use iOS shortcuts to make this really easy. For example, gg = “🎯 #Project”\nThe challenge is if I should have things as projects or as individual tasks. I would say that as much as things can be independent, keep them tasks. Like “apply for credit card1” and “apply for credit card 2” are both personal finance tasks. But they are independent.\nA task isn’t necessarily short and a project isn’t necessarily long. It’s just whether this Indy ended outcome has multiple steps or not that might be done over a few days, whereas a task is probably done in one sitting.\nIt’s assumed that unless something is a task, it’s a project.\nEvery epic has its own name. I nest epics under “Work > #Epic1, #Epic2”, etc. This helps me organize my work deliverables. I have like 5 epics right now at work that will span several quarters.\n\nThen I may choose to add tags with metadata, which I haven’t figured out if this is useful yet. But “Atomic Habits” says the best way to get stuff done is to stack it. So here is my tagging system to help me stack:\n\nCommitment: ASAP, Eventually, Someday Maybe. Will I do this task eventually? Pay a bill - yes. Learn a language - someday maybe.\n\nDuration: 5min, 30min, 1hr, 2hr, 4hr. 9hr (all day)\nLocation (where to do the task): Home, Desk, Car, Backyard. Most work things are done at my desk. But perhaps some can be done while taking a walk. Most personal things are done around the house or on the couch at night.\nTime of Day: “1: Pre work”. “2: start of workday. 3: lunchtime, 4: afternoon, 5: after work, 6: nighttime”\nFocus: “Deepwork” or “shallow”. Deep work should be uninterrupted and be 3 hours long.\nSeverity: S1: if I don’t do this nothing will happen. S3: not doing this will have bad consequences or lots of regret. S2 - in between :).\nDeadline: I’m still thinking about this one. To me there’s a difference between mowing the law which has a linear cost of looking worse each day for not being cut and failing to pay my taxes, which has festeringly worse consequences the longer I put it off (pay a fine, end up in jail, etc.). I guess this is captured implicitly in “ASAP” commitment. But paying my taxes is only a cost (preventing negative outcomes) versus the ASAP of getting my project finished (positive consequences).\n\nNone (default): no consequence for never doing this.\nBinary: You either make the deadline or never and this opportunity ceases forever.\nRolling: If you miss the deadline there will be another.\nFestering: the longer you put this off the worse it becomes, but no deadline.\n\n\nAs I write this, this sounds like overkill…classic me. I sincerely doubt it’s useful to of all of this. But having the system available will let me use what I need when I need it. If I’m still using any of this in a month that’ll be a miracle. But I’m going to start with something in mind and go from there.\n\n\nOrganize\n\nOnce clarified, move out of inbox into a list “work” or “personal”.1\nPrioritize.\nDelegate. (Myself, someone else.)\nAssign due dates and times (if not already done)\n\n1 Tags and lists are identical except Lists have sections and views (such as Kanban). In a list you can sort by tag and vice versa. But each task can only appear in one list whereas tags are infinite. I noticed that choosing which list something belongs to can be cumbersome if it’s in a nested list, so I want only high level lists (no folders) and have this be simple. I also have “personal” and “work” tags which have projects within them, so I don’t really see why I’d need to duplicate this. On second thought, each task can only belong to one work project so it’d make sense for this to be my grouping. I suppose I just don’t want to manage all that. Or, I chose to use tags to manage my projects because I was cheap and I can only have 9 lists on the free version but unlimited tags? Either way this is easy to reorganize later if I choose to switch. Tags it is for now.\n\nReview\n\nEach night I will review the days tasks and re-prioritize as needed.\nPin the one task/project I want to get done that day.\n\nEssentialism says to take the 6 tasks of the day and choose just one. Then identify what else you need to say no to to ensure you have the energy to accomplish that task.\n\nWeekly planning session to review all of this.\n\n\n\nEngage\n\nDon’t work on any tasks in a day/week that weren’t planned for that day (unless something comes up).\n\n\n\nFinal Thoughts\nA task system should be saving me time, not consuming it. It should be relaxing me and my anxieties, not amplifying them. I’m going to give this 30 days and see if my stress decreases and productivity increase. If so, I’ll keep using this system.\nGTD states that by not writing down all the ideas, you waste energy because things come back to nag you later. But surely energy is wasted by organizing a valueless idea.\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "Max Plank, GPT 4\n\n\n\n“Scientific Freedom”\n\n\n\n\n\n\nTL;DR: a scientist isn’t a title, but a philosophy\n\n\n\n\n\n\nScientists are hampered by the peer review process. The notion that some tolerate the process so they can get their grants approved and get tenure, and others eventually accept the process because that’s how they got tenure, is a sad outcome of human incentives.\nInterestingly, inventions have always happened regardless of peer review. Edison didn’t need someone to review his invention to tell him whether or not it’s a valid invention. Either the light bulb illuminates or it doesn’t.\nYet that’s exactly how things go now. So what’s the result?\nPeople write to please the peer reviewer. Social conformity. Group think.\nPeople are incentivized to game the system: write a grant that gets them funding so they can get tenure and support their families.\nThe incentive to be innovative is small, though intellectual curiosity powers through for some. The incentive to stay in line and do what’s necessary to get approved is strong.\nWe’ve also learned as a consequence of 2020-2022 that a lot of scientists can indeed be wrong. Today science is becoming less about discovering truth and more about people owning their truth…people love their politics.\nWhat makes a scientist anyway? Am I a scientist because I’m a data scientist? Because I studied statistics? I’ve never published an academic article in a journal, so is that the threshold?\nI think someone who pursues truth through repeatable experimentation is a scientist. Back in Plato’s day they were just called philosophers.\n\n\nToday’s incentives\nThere’s a reason really smart people now work at Apple to invent the iPhone, Facebook to work on LLMs, and SpaceX to build rockets. The freedom they feel at these companies is empowering. Per “Scientific Freedom”, if the trends continue then people like Max Plank would never have been able to get the funding needed to invent what he did. Where’s the money? Social media. Advertising. And now, AI.\nPeople will always be inventive. But it’s by removing the social barriers that they become so.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2023-12-15-llms-can-find-a-needle-in-the-haystack/index.html", - "href": "posts/2023-12-15-llms-can-find-a-needle-in-the-haystack/index.html", - "title": "LLMs can find a needle in the haystack", + "objectID": "book-reviews/2023-12-23-the-best-of-edgar-allen-poe/index.html", + "href": "book-reviews/2023-12-23-the-best-of-edgar-allen-poe/index.html", + "title": "The Best of Edgar Allen Poe", "section": "", - "text": "Is RAG necessary when you have incredible memory?\n\n\n\n\n\n\n\nContext\nCheck out this thread:\n\n\n(1/8) The Needle in the Haystack done by @GregKamradt was an amazing analysis of retrieval performance! Greg has graciously allowed us to build on his work with a repository that is now OSS.@natfriedman We have a much more rigorous test we’ve put out based on this idea.… pic.twitter.com/i5O8zrcwQT\n\n— Aparna Dhinakaran (@aparnadhinak) December 15, 2023\n\n\nThis is a powerful analysis. Sure, Anthropic will find a way to improve or challenge the results. But the point is clear: these technologies can remember hyper specific 7-digit random numbers out of a batch of 126,000 tokens, where a token is roughly 4 characters. GPT is clear winner here, too.\nAlso, open source is getting incredibly good. This implies the future is open source.\n\n\nComparing @OpenAI #GPT4 Turbo to @MistralAI GPT-4 is pretty good in that region in general. Interesting to see how @MistralAI scales to larger context windows pic.twitter.com/WQo6MmGIHh\n\n— Aparna Dhinakaran (@aparnadhinak) December 15, 2023\n\n\n\n\nImpact\nRAG can be used to make retrieval more efficient. But if retrieval is already super efficient maybe RAG is only a short term thing. Context lengths of 10m tokens…probably by next year right?\nStart of the year we were at 4K tokens. Now there are 126,000 tokens. 30x improvement. So to do another 30x improvement is 3.76M. So yea, by next year you should be able to just load the entire RAG database into memory. But…gonna be super expensive.\nPoint is: would GPT be this effective if it was using RAG over a database? Or is it more effective loading it all into context?\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "Raw Notes\nThe Tell-Tale Heart:\n\nyou think me mad. Nah, I’m cool. But the man grows increasingly mad.\nguilt follows the commission, before then the guilt is only in the hesrt. After it consumes.\n\nThe Cask of Amontillado:\n\nwatch your pride. Don’t let it trick you into walking into catacombs\n\nThe Masque of the Red Death:\n\nfruitless to avoid it\nallegory of phases of life\nPrince Prospero tries to fight death, but dies in the process\n\nThe Raven\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "gratitude/2023-12-25-grateful-for-doctors/index.html", - "href": "gratitude/2023-12-25-grateful-for-doctors/index.html", - "title": "I’m grateful for doctors", + "objectID": "book-reviews/2023-12-22-the-killers-of-the-flower-moon/index.html", + "href": "book-reviews/2023-12-22-the-killers-of-the-flower-moon/index.html", + "title": "The Killers of the Flower Moon", "section": "", - "text": "The Healer’s Art\nI didn’t break my first bone until I was 17, but I visited my first doctor many years before.\nI grew up with an odd fever syndrome that came and went every six weeks. 105 degree fevers each time. I remember two distinct moments hallucinating that the room was splitting and shifting and another when bees were covering the corner of my bunk. The delirium was real.\nEventually it went away. But there was also a doctor there each time I got sick. One for me, to take my blood. One for my mom, to try to comfort and counsel her.\nI’m grateful for doctors of the mind who help alleviate sicknesses of stress, anxiety, depression, etc. I know more people with some type of recurring emotional distress than I know without. I see the benefits reaped by those who seek emotional healing through therapy. I’m proud of the friends who struggle, but who don’t struggle alone. The only way out, is with.\nI’m grateful for healers of the soul. Christ invited everyone to change their ways by letting go of the things that didn’t bring them true happiness, and focus on the things that do. In one invitation, he urged us to come unto him “that I may heal you”. I’ve witnessed spiritual healing through prayer, which is the process of going from feeling forgotten to then knowing I am a child of God and he has a plan for me.\n\n\nHe Came to Heal\nThis to me is the meaning of Christmas: healing. Freedom from bruised bodies, broken minds, or hurting hearts. He came to be broken, so that we may be healed.\n\nBut he was wounded for our transgressions, he was bruised for our iniquities: the chastisement of our peace was upon him; and with his stripes we are healed. Isaiah 53:5\n\n\nHe will take upon him their infirmities, that his bowels may be filled with mercy, according to the flesh, that he may know according to the flesh how to succor his people according to their infirmities. Alma 7:12\n\nNot all healing happens in an instant, and sometimes some things don’t fully heal or heal at all. But I’m grateful healing is possible and there are doctors in the constant pursuit of it. And I’m grateful for friends who have, at times, helped heal me in all these ways.\nMost of us won’t be known as doctors. But all of us try the best we can to help heal our loved ones, such as healing a child with a band aid, a spouse with a hug, a friend with a lunch. Thank you for doing the work of Christmas, all year round.\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "TL;DR:\n\n\n\n\n\n\nOn Spotify\n\nHale: self made man. Cowboy. Learned the trade. Got one cow. Then many. Then had 25,000 acres.\nAlly. Used his position as a white guy to advocate on behalf of the Osage.\n\nCherokee nation parceled and “first come first serve” over 42,000 acres\nWild West: private eye 1921 > than local sheriff\n1850 Alan Pinkerton - private eye.\nguardians - Osage couldn’t spend their own money without approval\ncriminal’s secret eats away at him\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "gratitude/2023-12-24-light/index.html", - "href": "gratitude/2023-12-24-light/index.html", - "title": "Light", + "objectID": "book-reviews/2023-12-20-the-little-red-hen/index.html", + "href": "book-reviews/2023-12-20-the-little-red-hen/index.html", + "title": "The Little Red Hen", "section": "", - "text": "I installed 72 lights today. This took drilling a hole into my fence, then making the cord taught, then screwing the screw into the cord’s loopy thingy. Then I move on to the next one.\nThe whole process took three hours. But I’m glad it took three hours. I appreciate it so much more because I did it myself. I thought carefully about each hole I drilled.\nAnd it felt good to sit out there and listen to an audio book (lots of Dune today, some Killers of the Flower Moon).\nI’m grateful for Thomas Edison. For the inspiration he received, for the hard work he did to give the gift of light to the world. And if he hadn’t done it someone else would have, which is also something to be grateful for. There are a lot of smart, good people on this earth.\n\n\n\nNot what it looks like, but how it feels\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "TL;DR: Be the hen. Do work!\n\n\n\n\n\n\n“The Little Red Hen” is a classic folk tale that tells the story of a hardworking red hen who finds wheat seeds and decides to plant them. Throughout the story, she asks other farm animals for help with various tasks—planting the wheat, harvesting it, milling the flour, and baking the bread. Each time, the animals refuse to help. However, once the bread is baked and the hen asks who will help her eat it, all the animals eagerly volunteer. She declines their offers, choosing to eat the bread with her chicks, who assisted her in the work.\nSo, too, do startups everywhere struggle to get funding. 100 rejections, etc.\nAnd great products don’t get attention until there’s social proof. Many e-commerce companies understand this - sales take off as more people buy, which gets more reviews, which gets more trust - even if the product didn’t change much between first sale to the last.\nThe only difference between startups and the red hen is she perhaps had a recipe. She didn’t have to wonder, “is baking bread possible? Will the recipe be delicious?”\nIt takes a founder’s belief to see what isn’t yet so and build it anyway. Be the founder. Be the hen. Dream big. Go bake some bread even if nobody’s watching.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "lists.html", - "href": "lists.html", - "title": "Lists of Things", + "objectID": "books.html", + "href": "books.html", + "title": "Book Reviews/Notes", "section": "", - "text": "Ongoing bookmarks and lists of things I want to remember.\n\n\n\n\n\n\n\n\n\n\n\n\nCool AI Tweets\n\n\nRunning list of cool things I’ve seen.\n\n\n\n\n\n\nDec 14, 2023\n\n\n\n\n\n\n\n\nNo matching items\n\n_________________________ For coaching on data analytics or machine learning, reach out.", + "text": "Goal: To spend less time consuming more, more time consuming intentionally.\nMostly incoherent bullet points of thought provoking moments.\n\n\n\n\n\n\n\n\n\n\n\n\n101 Essays that will Change the Way You Think, by Brianna Wiest\n\n\nWe all started as strangers. It’s a choice who remains one.\n\n\n\n\n\n\nDec 19, 2023\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nDune\n\n\nThe plans and risks of generations\n\n\n\n\n\n\nDec 23, 2023\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nGetting Things Done\n\n\nA powerful system to be more present.\n\n\n\n\n\n\nJun 24, 2022\n\n\n\n\n\n\n\n\n\n\n\n\nHitchhiker’s Guide to the Galaxy\n\n\nHow did it take me so long to finally read this?\n\n\n\n\n\n\nDec 18, 2023\n\n\n\n\n\n\n\n\n\n\n\n\nScientific Freedom\n\n\nInnovation comes by varied incentives: intellectual curiosity and economic incentive\n\n\n\n\n\n\nDec 12, 2023\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe Best of Edgar Allen Poe\n\n\nYou think me mad?\n\n\n\n\n\n\nDec 23, 2023\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe Killers of the Flower Moon\n\n\n\n\n\n\n\n\n\nDec 22, 2023\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe Little Red Hen\n\n\nPeople love to enjoy the fruits, but who will bake the bread?\n\n\n\n\n\n\nDec 20, 2023\n\n\n\n\n\n\n\n\nNo matching items\n\n_________________________ For coaching on data analytics or machine learning, reach out.", "crumbs": [ - "Lists of Things" + "Book Reviews/Notes" ] }, + { + "objectID": "christianity/2023-12-24-he-is-the-light-that-we-should-share/index.html", + "href": "christianity/2023-12-24-he-is-the-light-that-we-should-share/index.html", + "title": "His is the light that we should share", + "section": "", + "text": "When Christ was teaching his disciples, he invited them to share their light to the world. But then he elaborated in an interesting way:\n\n3rd Nephi 18:24 Therefore, hold up your light that it may shine unto the world. Behold I am the light which ye shall hold up—that which ye have seen me do. Behold ye see that I have prayed unto the Father, and ye all have witnessed.\n\nThe Lord is their light. He is our light. He is the light we hold up to the world and let shine. He is our light that we let shine.\nThe pronouns here are impactful by their implication:\n\nHe assumes we have light\nHe assumes we have Him as our light\nHe invites us to share the light we possess\nThe light we possess is His light\nBut it is ours. And it is his. Our light is His light. His light is our light.\n\n“Let your light so shine before men that they may see your good works…”. Read in this new way: obtain the Lord as your light. Then shine His light before men.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + }, { "objectID": "christianity/2023-12-13-three-little-pigs/index.html", "href": "christianity/2023-12-13-three-little-pigs/index.html", @@ -321,337 +399,266 @@ "text": "not quite\nI’ve always been bothered by this as I read to my kids. But I’ve recently changed my opinion. Because im very much the first and second brother. We all are.\nWere inadequate. Maybe we’re not smart enough to know how to create bricks and such. Maybe we don’t have enough resources and the straw is the best we can do. And maybe we hide behind these insecurities by laughing at those who have more.\nMaybe we hide behind our insecurity and question God. The Wise One.\nSee, Christ is our Brick. He’s the safety. He’s the home we can run to when the world blows us over. He’s the Prepared One who was wishing for us to come to him the whole time. The cry of “you’ll be sorry” by this brother could perhaps be His loving warning of “please be wise. There’s a wolf out there.” Yet we don’t listen. We want to play.\nI love the third pig because he lets them in.\nAlso, the third pig never had to worry about almost getting eaten. Sure, first two enjoyed their fiddle and dance. But they almost died. The third pig is like the non-prodigal son. The one who stayed home and enjoyed the safety of the home the whole time.\nBe wise. Be forgiving. And yes, we always have a wise elder Brother who will accept us." }, { - "objectID": "christianity/2023-12-24-he-is-the-light-that-we-should-share/index.html", - "href": "christianity/2023-12-24-he-is-the-light-that-we-should-share/index.html", - "title": "His is the light that we should share", - "section": "", - "text": "When Christ was teaching his disciples, he invited them to share their light to the world. But then he elaborated in an interesting way:\n\n3rd Nephi 18:24 Therefore, hold up your light that it may shine unto the world. Behold I am the light which ye shall hold up—that which ye have seen me do. Behold ye see that I have prayed unto the Father, and ye all have witnessed.\n\nThe Lord is their light. He is our light. He is the light we hold up to the world and let shine. He is our light that we let shine.\nThe pronouns here are impactful by their implication:\n\nHe assumes we have light\nHe assumes we have Him as our light\nHe invites us to share the light we possess\nThe light we possess is His light\nBut it is ours. And it is his. Our light is His light. His light is our light.\n\n“Let your light so shine before men that they may see your good works…”. Read in this new way: obtain the Lord as your light. Then shine His light before men.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." - }, - { - "objectID": "books.html", - "href": "books.html", - "title": "Book Reviews/Notes", + "objectID": "lists.html", + "href": "lists.html", + "title": "Lists of Things", "section": "", - "text": "Goal: To spend less time consuming more, more time consuming intentionally.\nMostly incoherent bullet points of thought provoking moments.\n\n\n\n\n\n\n\n\n\n\n\n\n101 Essays that will Change the Way You Think, by Brianna Wiest\n\n\nWe all started as strangers. It’s a choice who remains one.\n\n\n\n\n\n\nDec 19, 2023\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nDune\n\n\nThe plans and risks of generations\n\n\n\n\n\n\nDec 23, 2023\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nGetting Things Done\n\n\nA powerful system to be more present.\n\n\n\n\n\n\nJun 24, 2022\n\n\n\n\n\n\n\n\n\n\n\n\nHitchhiker’s Guide to the Galaxy\n\n\nHow did it take me so long to finally read this?\n\n\n\n\n\n\nDec 18, 2023\n\n\n\n\n\n\n\n\n\n\n\n\nScientific Freedom\n\n\nInnovation comes by varied incentives: intellectual curiosity and economic incentive\n\n\n\n\n\n\nDec 12, 2023\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe Best of Edgar Allen Poe\n\n\nYou think me mad?\n\n\n\n\n\n\nDec 23, 2023\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe Killers of the Flower Moon\n\n\n\n\n\n\n\n\n\nDec 22, 2023\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe Little Red Hen\n\n\nPeople love to enjoy the fruits, but who will bake the bread?\n\n\n\n\n\n\nDec 20, 2023\n\n\n\n\n\n\n\n\nNo matching items\n\n_________________________ For coaching on data analytics or machine learning, reach out.", + "text": "Ongoing bookmarks and lists of things I want to remember.\n\n\n\n\n\n\n\n\n\n\n\n\nCool AI Tweets\n\n\nRunning list of cool things I’ve seen.\n\n\n\n\n\n\nDec 14, 2023\n\n\n\n\n\n\n\n\nNo matching items\n\n_________________________ For coaching on data analytics or machine learning, reach out.", "crumbs": [ - "Book Reviews/Notes" + "Lists of Things" ] }, { - "objectID": "book-reviews/2023-12-20-the-little-red-hen/index.html", - "href": "book-reviews/2023-12-20-the-little-red-hen/index.html", - "title": "The Little Red Hen", - "section": "", - "text": "TL;DR: Be the hen. Do work!\n\n\n\n\n\n\n“The Little Red Hen” is a classic folk tale that tells the story of a hardworking red hen who finds wheat seeds and decides to plant them. Throughout the story, she asks other farm animals for help with various tasks—planting the wheat, harvesting it, milling the flour, and baking the bread. Each time, the animals refuse to help. However, once the bread is baked and the hen asks who will help her eat it, all the animals eagerly volunteer. She declines their offers, choosing to eat the bread with her chicks, who assisted her in the work.\nSo, too, do startups everywhere struggle to get funding. 100 rejections, etc.\nAnd great products don’t get attention until there’s social proof. Many e-commerce companies understand this - sales take off as more people buy, which gets more reviews, which gets more trust - even if the product didn’t change much between first sale to the last.\nThe only difference between startups and the red hen is she perhaps had a recipe. She didn’t have to wonder, “is baking bread possible? Will the recipe be delicious?”\nIt takes a founder’s belief to see what isn’t yet so and build it anyway. Be the founder. Be the hen. Dream big. Go bake some bread even if nobody’s watching.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." - }, - { - "objectID": "book-reviews/2023-12-22-the-killers-of-the-flower-moon/index.html", - "href": "book-reviews/2023-12-22-the-killers-of-the-flower-moon/index.html", - "title": "The Killers of the Flower Moon", - "section": "", - "text": "TL;DR:\n\n\n\n\n\n\nOn Spotify\n\nHale: self made man. Cowboy. Learned the trade. Got one cow. Then many. Then had 25,000 acres.\nAlly. Used his position as a white guy to advocate on behalf of the Osage.\n\nCherokee nation parceled and “first come first serve” over 42,000 acres\nWild West: private eye 1921 > than local sheriff\n1850 Alan Pinkerton - private eye.\nguardians - Osage couldn’t spend their own money without approval\ncriminal’s secret eats away at him\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." - }, - { - "objectID": "book-reviews/2023-12-23-the-best-of-edgar-allen-poe/index.html", - "href": "book-reviews/2023-12-23-the-best-of-edgar-allen-poe/index.html", - "title": "The Best of Edgar Allen Poe", - "section": "", - "text": "Raw Notes\nThe Tell-Tale Heart:\n\nyou think me mad. Nah, I’m cool. But the man grows increasingly mad.\nguilt follows the commission, before then the guilt is only in the hesrt. After it consumes.\n\nThe Cask of Amontillado:\n\nwatch your pride. Don’t let it trick you into walking into catacombs\n\nThe Masque of the Red Death:\n\nfruitless to avoid it\nallegory of phases of life\nPrince Prospero tries to fight death, but dies in the process\n\nThe Raven\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." - }, - { - "objectID": "book-reviews/2023-12-12-scientific-freedom/index.html", - "href": "book-reviews/2023-12-12-scientific-freedom/index.html", - "title": "Scientific Freedom", - "section": "", - "text": "Max Plank, GPT 4\n\n\n\n“Scientific Freedom”\n\n\n\n\n\n\nTL;DR: a scientist isn’t a title, but a philosophy\n\n\n\n\n\n\nScientists are hampered by the peer review process. The notion that some tolerate the process so they can get their grants approved and get tenure, and others eventually accept the process because that’s how they got tenure, is a sad outcome of human incentives.\nInterestingly, inventions have always happened regardless of peer review. Edison didn’t need someone to review his invention to tell him whether or not it’s a valid invention. Either the light bulb illuminates or it doesn’t.\nYet that’s exactly how things go now. So what’s the result?\nPeople write to please the peer reviewer. Social conformity. Group think.\nPeople are incentivized to game the system: write a grant that gets them funding so they can get tenure and support their families.\nThe incentive to be innovative is small, though intellectual curiosity powers through for some. The incentive to stay in line and do what’s necessary to get approved is strong.\nWe’ve also learned as a consequence of 2020-2022 that a lot of scientists can indeed be wrong. Today science is becoming less about discovering truth and more about people owning their truth…people love their politics.\nWhat makes a scientist anyway? Am I a scientist because I’m a data scientist? Because I studied statistics? I’ve never published an academic article in a journal, so is that the threshold?\nI think someone who pursues truth through repeatable experimentation is a scientist. Back in Plato’s day they were just called philosophers.\n\n\nToday’s incentives\nThere’s a reason really smart people now work at Apple to invent the iPhone, Facebook to work on LLMs, and SpaceX to build rockets. The freedom they feel at these companies is empowering. Per “Scientific Freedom”, if the trends continue then people like Max Plank would never have been able to get the funding needed to invent what he did. Where’s the money? Social media. Advertising. And now, AI.\nPeople will always be inventive. But it’s by removing the social barriers that they become so.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." - }, - { - "objectID": "book-reviews/2023-12-19-101-essays-to-change-the-way-you-think-by-briana-weist/index.html", - "href": "book-reviews/2023-12-19-101-essays-to-change-the-way-you-think-by-briana-weist/index.html", - "title": "101 Essays that will Change the Way You Think, by Brianna Wiest", + "objectID": "gratitude/2023-12-24-light/index.html", + "href": "gratitude/2023-12-24-light/index.html", + "title": "Light", "section": "", - "text": "TL;DR: 101 ideas. This is like a modern day Meditations.\n\n\n\n\n\n\n2023-12-20 9-11\n\nhappiness of pleasure, grace (appreciation), excellence (emotional resilience)\nsome of the poorest countries are the happiest.\n\n2023-12-19 Essays 1-8\n\nwe all started as strangers\nto change your beliefs, go have experiences that manifest and confirm the beliefs you want to have\ncan only have a few truly\nour relationship with others is a pure reflection of our relationship with our self. Work on your relationship with yourself to improve your relationship with others.\ndo you look at your leg and say “that’s me?” No. That’s my leg. Do you look at your eye, heart, hair? No. Do you look at your fears, hopes or dreams and say, that’s me?\nfear and Anxiety aren’t feelings. They’re symptoms.\nWhat emotion do you feel the most often? Is it positive? If not, why does a negative feeling deserve the spotlight? What does this tell you about your relationship with yourself?\n\n2023-12-22 essays 12+\n\nknowing doing gap. “If I lived today on repeat for 10 years where will I be?” What would happen if I didn’t do X?\n\nInsights: - self actualization is what we’re all doing. We all mostly have shelter, food, job, even if minimum wage.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "I installed 72 lights today. This took drilling a hole into my fence, then making the cord taught, then screwing the screw into the cord’s loopy thingy. Then I move on to the next one.\nThe whole process took three hours. But I’m glad it took three hours. I appreciate it so much more because I did it myself. I thought carefully about each hole I drilled.\nAnd it felt good to sit out there and listen to an audio book (lots of Dune today, some Killers of the Flower Moon).\nI’m grateful for Thomas Edison. For the inspiration he received, for the hard work he did to give the gift of light to the world. And if he hadn’t done it someone else would have, which is also something to be grateful for. There are a lot of smart, good people on this earth.\n\n\n\nNot what it looks like, but how it feels\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "book-reviews/2023-12-23-dune/index.html", - "href": "book-reviews/2023-12-23-dune/index.html", - "title": "Dune", + "objectID": "gratitude/2023-12-25-grateful-for-doctors/index.html", + "href": "gratitude/2023-12-25-grateful-for-doctors/index.html", + "title": "I’m grateful for doctors", "section": "", - "text": "shield your son too much and he’ll not grow strong enough to fulfill any destiny\ndeprogram after the machines. Let the machines do too much thinking.\nhumans must never submit to animals\n“how did the woman seal my tongue?” Paul can’t tell his father he’s going to die. Why? Sometimes our tongues are bound to speak that which can’t be changed\n“the mind commands the body and it obeys. It commands itself and it rebels”\n\nConnections: - Alan Pinkerton (killers of the flower moon) “secrets break the character of the criminal till they give it out”. Dr Yiwei cries when his scripture is given out.\n\nif I made him do it it wouldn’t be his doing.\nstorytelling: why tell us 100% of everything up front? The movie hides the secrets about Yueh.\nstorytelling: the hindsight narrator\n\nWhen God has appointed a man to die, he guides his wants to desire that place\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "The Healer’s Art\nI didn’t break my first bone until I was 17, but I visited my first doctor many years before.\nI grew up with an odd fever syndrome that came and went every six weeks. 105 degree fevers each time. I remember two distinct moments hallucinating that the room was splitting and shifting and another when bees were covering the corner of my bunk. The delirium was real.\nEventually it went away. But there was also a doctor there each time I got sick. One for me, to take my blood. One for my mom, to try to comfort and counsel her.\nI’m grateful for doctors of the mind who help alleviate sicknesses of stress, anxiety, depression, etc. I know more people with some type of recurring emotional distress than I know without. I see the benefits reaped by those who seek emotional healing through therapy. I’m proud of the friends who struggle, but who don’t struggle alone. The only way out, is with.\nI’m grateful for healers of the soul. Christ invited everyone to change their ways by letting go of the things that didn’t bring them true happiness, and focus on the things that do. In one invitation, he urged us to come unto him “that I may heal you”. I’ve witnessed spiritual healing through prayer, which is the process of going from feeling forgotten to then knowing I am a child of God and he has a plan for me.\n\n\nHe Came to Heal\nThis to me is the meaning of Christmas: healing. Freedom from bruised bodies, broken minds, or hurting hearts. He came to be broken, so that we may be healed.\n\nBut he was wounded for our transgressions, he was bruised for our iniquities: the chastisement of our peace was upon him; and with his stripes we are healed. Isaiah 53:5\n\n\nHe will take upon him their infirmities, that his bowels may be filled with mercy, according to the flesh, that he may know according to the flesh how to succor his people according to their infirmities. Alma 7:12\n\nNot all healing happens in an instant, and sometimes some things don’t fully heal or heal at all. But I’m grateful healing is possible and there are doctors in the constant pursuit of it. And I’m grateful for friends who have, at times, helped heal me in all these ways.\nMost of us won’t be known as doctors. But all of us try the best we can to help heal our loved ones, such as healing a child with a band aid, a spouse with a hug, a friend with a lunch. Thank you for doing the work of Christmas, all year round.\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "book-reviews/2023-12-18-hitchhiker's-guide-to-the-galaxy/index.html", - "href": "book-reviews/2023-12-18-hitchhiker's-guide-to-the-galaxy/index.html", - "title": "Hitchhiker’s Guide to the Galaxy", + "objectID": "posts/2023-12-15-llms-can-find-a-needle-in-the-haystack/index.html", + "href": "posts/2023-12-15-llms-can-find-a-needle-in-the-haystack/index.html", + "title": "LLMs can find a needle in the haystack", "section": "", - "text": "The book of infinite possibilities\n\n\nThis is a classic. First time reading it and I love it.\nWhat I love about the storytelling:\n\nDeclare something as unavoidably true, even if ridiculous, and build all content off of it.\n\n\nNobody cares that the infinity probability drive is absurdly improbable. But once the reader just accepts this as fact the rest of the story make sense.\n\n\nget into the mind of the reader\n\n\nsperm whale? I love when he’s detailing the whales first and last thoughts. Just so random, but hilarious.\n\n\nbe spontaneous, but connected.\n\n\nI recently watched the second season of Loki and couldn’t stand it. It was all over the place. Random here, random there. But this is great because the spontaneity flows within the confines of the story.\n\n\nlogic, with social proof, can invert the mind\n\n\nArthur dent is flabbergasted by mice being the most intelligent species. Well the logic is sound: they were just fooling us and running experiments on us the whole time so we wouldn’t think anything of it. This flip on expectation, backed by “isn’t it obvious?!” gets the reader wondering for a second before they snap back to reality: no, mice aren’t running the universe.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "Is RAG necessary when you have incredible memory?\n\n\n\n\n\n\n\nContext\nCheck out this thread:\n\n\n(1/8) The Needle in the Haystack done by @GregKamradt was an amazing analysis of retrieval performance! Greg has graciously allowed us to build on his work with a repository that is now OSS.@natfriedman We have a much more rigorous test we’ve put out based on this idea.… pic.twitter.com/i5O8zrcwQT\n\n— Aparna Dhinakaran (@aparnadhinak) December 15, 2023\n\n\nThis is a powerful analysis. Sure, Anthropic will find a way to improve or challenge the results. But the point is clear: these technologies can remember hyper specific 7-digit random numbers out of a batch of 126,000 tokens, where a token is roughly 4 characters. GPT is clear winner here, too.\nAlso, open source is getting incredibly good. This implies the future is open source.\n\n\nComparing @OpenAI #GPT4 Turbo to @MistralAI GPT-4 is pretty good in that region in general. Interesting to see how @MistralAI scales to larger context windows pic.twitter.com/WQo6MmGIHh\n\n— Aparna Dhinakaran (@aparnadhinak) December 15, 2023\n\n\n\n\nImpact\nRAG can be used to make retrieval more efficient. But if retrieval is already super efficient maybe RAG is only a short term thing. Context lengths of 10m tokens…probably by next year right?\nStart of the year we were at 4K tokens. Now there are 126,000 tokens. 30x improvement. So to do another 30x improvement is 3.76M. So yea, by next year you should be able to just load the entire RAG database into memory. But…gonna be super expensive.\nPoint is: would GPT be this effective if it was using RAG over a database? Or is it more effective loading it all into context?\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "book-reviews/2022-06-24-getting-things-done/index.html", - "href": "book-reviews/2022-06-24-getting-things-done/index.html", - "title": "Getting Things Done", + "objectID": "posts/2022-06-25-how-i-use-ticktick/index.html", + "href": "posts/2022-06-25-how-i-use-ticktick/index.html", + "title": "How I use TickTick", "section": "", - "text": "Principles and Core Insights\nAfter 21% my takeaways are:\n\n“My mind is weighed down by all of the ideas of things I can do.” I waste my time on todos that are just “go to doctor”, but should be “schedule appointment to go to doctor”. Anything that only takes 2 min should be done immediately. Anything longer later. But I love that clarity - I’ve often written lots of todos but not from the “next action to take” perspective.\n“Visions can be built from the ground up rather than just top down.” I’ve tried writing down big visions for my 10 year future and it never works for me. I’ve got anxiety when I try to think where I want to be in 10 years. I mean, I know I want to be happy, be best friends with my wife and kids and have meaningful relationships but whether I’m still a data scientist or a farmer by then is anyones guess. (I wanna keep my options open.) But as I look at the things on my todo list and “eventual” to do list, a different picture emerges. I know I want to be a writer (hence this blog), I know I want to travel to XYZ location, to be involved in giving back, etc. TLDR: I know things I want to experience in life. I don’t have to craft value statements and invent ideas of what to do (seems forced). Instead I can reflect on what’s currently exciting and important to me and categorize those things into high levels values/missions. This will help me when I need to prioritize so not every whim of an idea gets my attention.\nGTD book just lays out what a todo is. It breaks down the problem of doing things (big and small) into what they are (time sensitive, someday, etc). Whether I’ll follow the system is up for debate, but I love the ideas so far. It very much fits my naturally organized mind, but may not work for more spontaneous folks that don’t like as much structure and list keeping.\nMost of my “todos” have been “intended outcomes”, but not “next actions”. For example, I see I have “change car battery” on my list right now and “plan yosemite trip”. But these aren’t todos. I can’t organize and prioritize outcomes. I can only organize and prioritize actions, he says. Changing these to “call mechanic to book oil and battery change and identify an hour in your calendar”. And “open recreation.gov when walking around the house and find a campsite.”\nOrganize tasks around where you’ll do them. This is in line with Atomic habits which states to be hyper specific about where and when you’ll do something. “Call grandma when I get into my car tomorrow morning to go to work.” Or “take a moment at my desk during lunchtime to find a mechanic by opening Google Maps and plan an oil change. Find 1 open hour on the calendar.”\n\n\n\nPutting it into practice\nI’ve been using TickTick for my task manager, which has Lists (folders) where I can put my tasks and tags so I can label and categorize each task. Here’s my organization strategy:\n\nWhen jotting ideas write intended outcome and next action as my todo.\nTag with where I’ll do it and provide day or time it’s due (if applicable)\n\nMove each item to a respective list:\n\nASAP - there’s a useful urgency to this task (begin memo)\nEventually - there’s no urgency but I know I’ll want to do this\nSomeday maybe - no urgency and no commitment, but it’s an idea of something I want to do.\n\nTagging system: tag each item with either Work or Personal. Then within that, some meaningful themes:\n\nProjectName (work deliverable or personal project like “ImproveMyHealth”, “BuildApp”)1\nLocation (where I’ll do it). Around the house. At desk. In car. While cleaning the house, etc. this is habit stacking. Most work stuff is done at my desk.\nwhen I’ll do it. Stack with other activities. Examples: Before lunch.\nDuration (how long it takes: 1, 2, 4 hours, 5, 30min). This might be useful for planning.\n\nList system. Move from inbox to list when properly categorized. I like “Work” and “Personal” lists. I think since you can use unlimited tags, and tags can be nested in TickTick, there’s no substantive differ ne between list and tag. Not sure yet how to use the TickTick lists when tags are so useful. Lists of work and personal.\n\n1 Deciding Vision: As I write this, choosing a project might be a good place to insert a goal (intended outcome) as a project name. Instead of Exercise, the intended outcome is improving health. The goal is being able to run a 5k. So perhaps goal/objective is “ImproveHealth” and KR is “run 5k”. These goals can be identified by asking the 5 whys. If I have an idea if “go running” as my task, a good grounds-up vision exercise would be to ask “why do I want to run a mile tomorrow? Is it to accomplish something or to relax my mind? Why is relaxing my mind important to me? Why is my mental health important? Etc. I think subconsciously ideas come of what to do next all the time “I should work out” but rarely do I take the time to ask “why do I see the need to work out? What’s the greater vision here for this task?” Understanding that vision can help prioritize and build a desire to accomplish the task. If the idea “learn a new language” comes up, asking why can help me realize “oh, this is just for fun and won’t be for anything meatier than having fun! No pressure on this task and maybe I’ll never do it.” The nag to run a mile might help me realize “I need to take care of my health, and this can’t wait.”In summary:\n\nIdea/task comes.\nDocument in inbox.\nClarify the intended outcome and the next action.\nOrganize: tag. Set up reminder. Move out of inbox to list.\nReview and Prioritize: understand where these ideas will take you and choose your adventure.\nDo!\n\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "I’ve recently read “Atomic Habits”, “Deep Work”, “The Power of Habit”, “Getting Things Done”, “Essentialism” and “Effortless”. These productivity paradigms influence this post.\nInspired by this Reddit post, I’ve tried thinking how I want apply the principles of GTD and these other paradigms. I think GTD is great for me because it helps me get ideas out of my head and Essentialism is a better pursuit to make sure I’m not caught up in minutia. I don’t see them as incongruent, but one as an ideation organization approach and the other as a relentless focus.\nFive steps of GTD:\n\nCapture\nClarify\nOrganize\nReview\nEngage\n\n\nCapture\nI have an iOS shortcut that lets me quickly add a TickTick task to my inbox. I put this on my Home Screen for instant access and to avoid distraction. I want to capture the idea, not open TickTick and get distracted by other ideas.\nOr I use the TickTick today widget and upload it to today directly. Depends on the task and how detailed I want to be.\n\n\nClarify\nHere’s the system I use to clarify.\nDefinitions:\n\nTask: an action item.\nProject: an intended outcome with multiple tasks.\nEpic: an intended outcome with multiple projects.\nKey Result: high level, long term accomplishment. (Increase revenue 10%)\nObjective: a squishy, feel-good purpose statement. “Deepen relationships with loved ones.”\n\nTask grooming process: Groom the inbox every night and identify the intended outcome and next action. Tag the task.\n\nIf the task was “send Birthday card”, that’s really an intended outcome and is a small project. The tasks are 1) buy card from CVS, 2) put in envelope with stamp, 3) drop in mailbox. These three subtasks need to be understood. But a separate inbox entry may be “pay phone bill by sitting down at my computer at 10pm”. This isn’t a project. It’s just a one off thing. But it can still be clarified with details.\nLabel if it’s a project or not. Use iOS shortcuts to make this really easy. For example, gg = “🎯 #Project”\nThe challenge is if I should have things as projects or as individual tasks. I would say that as much as things can be independent, keep them tasks. Like “apply for credit card1” and “apply for credit card 2” are both personal finance tasks. But they are independent.\nA task isn’t necessarily short and a project isn’t necessarily long. It’s just whether this Indy ended outcome has multiple steps or not that might be done over a few days, whereas a task is probably done in one sitting.\nIt’s assumed that unless something is a task, it’s a project.\nEvery epic has its own name. I nest epics under “Work > #Epic1, #Epic2”, etc. This helps me organize my work deliverables. I have like 5 epics right now at work that will span several quarters.\n\nThen I may choose to add tags with metadata, which I haven’t figured out if this is useful yet. But “Atomic Habits” says the best way to get stuff done is to stack it. So here is my tagging system to help me stack:\n\nCommitment: ASAP, Eventually, Someday Maybe. Will I do this task eventually? Pay a bill - yes. Learn a language - someday maybe.\n\nDuration: 5min, 30min, 1hr, 2hr, 4hr. 9hr (all day)\nLocation (where to do the task): Home, Desk, Car, Backyard. Most work things are done at my desk. But perhaps some can be done while taking a walk. Most personal things are done around the house or on the couch at night.\nTime of Day: “1: Pre work”. “2: start of workday. 3: lunchtime, 4: afternoon, 5: after work, 6: nighttime”\nFocus: “Deepwork” or “shallow”. Deep work should be uninterrupted and be 3 hours long.\nSeverity: S1: if I don’t do this nothing will happen. S3: not doing this will have bad consequences or lots of regret. S2 - in between :).\nDeadline: I’m still thinking about this one. To me there’s a difference between mowing the law which has a linear cost of looking worse each day for not being cut and failing to pay my taxes, which has festeringly worse consequences the longer I put it off (pay a fine, end up in jail, etc.). I guess this is captured implicitly in “ASAP” commitment. But paying my taxes is only a cost (preventing negative outcomes) versus the ASAP of getting my project finished (positive consequences).\n\nNone (default): no consequence for never doing this.\nBinary: You either make the deadline or never and this opportunity ceases forever.\nRolling: If you miss the deadline there will be another.\nFestering: the longer you put this off the worse it becomes, but no deadline.\n\n\nAs I write this, this sounds like overkill…classic me. I sincerely doubt it’s useful to of all of this. But having the system available will let me use what I need when I need it. If I’m still using any of this in a month that’ll be a miracle. But I’m going to start with something in mind and go from there.\n\n\nOrganize\n\nOnce clarified, move out of inbox into a list “work” or “personal”.1\nPrioritize.\nDelegate. (Myself, someone else.)\nAssign due dates and times (if not already done)\n\n1 Tags and lists are identical except Lists have sections and views (such as Kanban). In a list you can sort by tag and vice versa. But each task can only appear in one list whereas tags are infinite. I noticed that choosing which list something belongs to can be cumbersome if it’s in a nested list, so I want only high level lists (no folders) and have this be simple. I also have “personal” and “work” tags which have projects within them, so I don’t really see why I’d need to duplicate this. On second thought, each task can only belong to one work project so it’d make sense for this to be my grouping. I suppose I just don’t want to manage all that. Or, I chose to use tags to manage my projects because I was cheap and I can only have 9 lists on the free version but unlimited tags? Either way this is easy to reorganize later if I choose to switch. Tags it is for now.\n\nReview\n\nEach night I will review the days tasks and re-prioritize as needed.\nPin the one task/project I want to get done that day.\n\nEssentialism says to take the 6 tasks of the day and choose just one. Then identify what else you need to say no to to ensure you have the energy to accomplish that task.\n\nWeekly planning session to review all of this.\n\n\n\nEngage\n\nDon’t work on any tasks in a day/week that weren’t planned for that day (unless something comes up).\n\n\n\nFinal Thoughts\nA task system should be saving me time, not consuming it. It should be relaxing me and my anxieties, not amplifying them. I’m going to give this 30 days and see if my stress decreases and productivity increase. If so, I’ll keep using this system.\nGTD states that by not writing down all the ideas, you waste energy because things come back to nag you later. But surely energy is wasted by organizing a valueless idea.\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "lists/ai/index.html", - "href": "lists/ai/index.html", - "title": "Cool AI Tweets", + "objectID": "posts/2022-07-20-de-sciencing-data-science-and-talking-like-a-normal-person/index.html", + "href": "posts/2022-07-20-de-sciencing-data-science-and-talking-like-a-normal-person/index.html", + "title": "De-sciencing Data Science and Talking Like a Normal Person", "section": "", - "text": "TL;DR: AI is wild. Last updated per last headline. First created 2023-12-14\n\n\n\n\n\n\n\nv0.dev\n2023-12-15\nv0.dev a UI generator by vercel. React.\n\n\nCoffee by Coframe\n2023-12-15\nBuild React UIs super fast. GitHub\n\n\nAnnouncing Coffee: build and iterate on your UI 10x faster with AI ☕️👇https://t.co/0vBssgp0ue pic.twitter.com/JqwC8WpDzs\n\n— Coframe (@coframe_ai) December 13, 2023\n\n\n\n\nPrompt Engineering\nAdded 2023-12-15\nPrompt Engineering tips by OpenAI\n\n\nGenerate a Website from Screenshot\n2023-12-14\n\n\nscreenshot-to-code: upload a screenshot of any website, watch as AI progressively builds the html, iteratively improving the generated code by comparing it against the screenshot repeatedly. pic.twitter.com/TCrbJj3VS0\n\n— Siqi Chen (@blader) November 21, 2023\n\n\n\nGitHub\nhttps://screenshottocode.com/\n\n\n\ntldraw\n2023-12-14\n\n\nLooking to learn about the AI thing we made?👇Link in the next post pic.twitter.com/1FjY3eMSSF\n\n— tldraw (@tldraw) November 21, 2023\n\n\n\nhttps://makereal.tldraw.com/\nhttps://open.substack.com/pub/tldraw/p/make-real-the-story-so-far?r=2ri91a&utm_medium=ios&utm_campaign=post\n\n\n\nCursor\n2023-10-10\nhttps://cursor.sh/\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "Building a Data Science culture\n\n\n\n\n\n\nTL;DR: Always keep it simple and always bring it back to the business need.\n\n\n\nA coworker once asked me for advice on how to bring technical rigor into a non-technical culture.\n\n\nWhen the Simple Solution Wins\nA few years back I wanted to see if I could predict which NBA team would win in their next match. FiveThirtyEight is a blog that does this every day. Could I build a model as good as theirs?\nI built a few models and put up a site. Below I have a table of accuracies for each of my models compared to FoveThirtyEight’s.\n\nWhat I learned is that Nate Silver’s FiveThirtyEight three models are only 66% accurate. In 20 hours I got a model as accurate (V02 above) as his using just team level data (win %, recent win streak, etc.) and no player data (injuries, etc.). Also my model was built using data from 2005-2017 to predict 2019 performance. His model was updated daily with recent stats.\nBut even more glaring is that if I made a prediction on a single feature (Home % > Away %) I could achieve 63.7% accuracy. This feature is a 1 if the home teams win % is greater than the away teams win %, 0 otherwise. Meaning, the home team wins 63.7% of the time their season win % is higher than the away teams season win %.\nWas it worth building an XGBoost model with 30 features to get 65.8% accuracy when just a simple calculation is 63.7% accurate? Depends on business context and how valuable that 2% gain is and what the development/engineering cost of deploying a model is. But if I were you I’d start with the simple model to get it into production to start generating value and then come back later to optimize.\nCaveat: it took a lot of work to discover that feature. 90% of the problem was building the data set. So at the end, building a model was pretty simple once I had the data. (This is where cloud AutoML will take over going forward, sorry!.) And I needed the model to see the feature importance (this was the top feature.) This is a valid data science approach: use modeling to discover the patterns. But just because you have a model doesn’t mean it’s worth deploying.\nKeep it business focused: when building a recommendation system, start with “what’s most popular”. Why would you need K-means or whatever to begin? And can’t you build your own K-means by creating heuristic filters? For example: if you want to recommend me a shirt based on shirts I’ve searched, you can find all shirts of same color, price, and size and recommend those. Building a model to take into account dimensions, patterns, what others buy, etc is fine but should be a V2.\n\n\nMindsets\nThere’s a temptation to act like an academic professor and use fancy jargon when working with your coworkers. Even worse, there’s a temptation to think you’re smarter than your coworkers because you know this mathy thing that they don’t. But remember this quote:\n\nWhen they are learned they think they are wise…1\n1 2 Nephi 9:28\nThis pride power struggle is your downfall for two reasons:\n\nIt blinds you to thinking your solution is good just because someone else can’t understand it.\nIt blinds you from focusing on what matters most: getting the simplest and best solution.\n\nYour coworkers aren’t your students eating you. They’re your smart coworkers solving the same problems you are.\nA better mindset is that of a professional athlete, like a football player. They might be dumb as bricks at times but they’re all incredibly smart players. Can you explain your technical solution like a pro football player would?\n\nBad: “I built an XGBoost classification model that reduces the RMSE by minimizing the Gini coefficient on each node…”\n\nBetter: “I noticed that most users close the app after they reach this page. I tried looking at some reasons why and found a few common behaviors (DISCUSS, get feedback). I think we can predict when this will happen and here’s a framework to do that.”\n\nThere’s a temptation to think “I did all this technical work, I should get credit for it!” My manager once coached me, “Your stakeholders should be amazed by how simple you made it. Not by how complicated the problem is.”\nThe best example I know of this is Chris Voss, an FBI negotiator. Listen to his podcasts or YouTubes. He’s a humble guy and doesn’t get into the technical stuff. He knows the principles and keeps the explanations simple. He helps you feel smart when you listen to him. He’s one of the best negotiators in the world and if you were having dinner with him you’d think he was a normal guy. This is how data scientists should be.\n\n\nBugs\nThere are two types of bugs in data science: Software bugs and data bugs. You’ll spend 80% of your ramp up time on a project setting up your environment, learning the data, trying to understand the primary keys and logging and unique values, etc.\n\n\n\n\n\n\nNobody cares about how you do any of this (the same way you don’t care about how cereal ends up in your grocery store), but they do care that you do it because it shows that you’re thinking about the right things.\nThey’ll also worry that you’re spending too much time on the wrong thing, so make sure you believe your actions are solving a business purpose.\n\n\n\n\n\nTakeaways\n\nFocus on principles, not technical details.\nGet the simplest, useful solution into production first to start creating value. Then figure out if it’s worth optimizing. If your product gets deprecated in 3 months then the fancy model will be wasted time anyway.\nYour stakeholders should be amazed by how simple you made it. Not by how complicated the problem is.\nIf you can’t explain a trend with a simple bar/line chart, a fancy regression model won’t do.\nStart with the non-technical (basic math) solution. Then see if you can beat the basic math with a fancy model. Evaluate the cost/benefit of the technical solution relative to the dumb version.\nwhen you have a fancy solution, make sure you compare it to the basic solution. Make sure you can beat the solution your teammates come up with. And make sure you carefully lead them from “their” solution to yours. “At first I tried X. X was fine. But X didn’t account for Y. So I built a model M and saw that M out performs X by 10%.”\nJust because you know/use math, doesn’t mean it’s right for the business. Data Scientists can easily be myopic because the work we do is challenging and deep in the weeds.\nYour boss doesn’t care about the nature of the bugs, but you should try to bring first principles to the table so she can cover for you. “I keep hitting this bug in the data. Can we ask/work with Infra team to solve this because it eats my time.”\n\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "about.html", - "href": "about.html", - "title": "About", + "objectID": "posts/2023-12-24-twas-the-night-before-christmas/index.html", + "href": "posts/2023-12-24-twas-the-night-before-christmas/index.html", + "title": "Twas the Night before Christmas", "section": "", - "text": "Last updated: 2022-12-14\n_________________________ For coaching on data analytics or machine learning, reach out.", - "crumbs": [ - "About" - ] - }, - { - "objectID": "about.html#bio", - "href": "about.html#bio", - "title": "About", - "section": "Bio", - "text": "Bio\nData scientist with 7 years of experience building complex, large-scale data pipelines and inferential and machine learning models. Experience running online A/B experiments, managing complex compute infrastructure and confidently presenting to VP-level audiences. Passionate about innovation, creativity, tech, data, engineering, leadership, mentoring and team building. Former startup co-founder.", - "crumbs": [ - "About" - ] - }, - { - "objectID": "about.html#experience", - "href": "about.html#experience", - "title": "About", - "section": "Experience", - "text": "Experience\nSee LinkedIn or Resume for details.\n\n\n\n\n\n\n\n\n\n\n\nPresent\n\n\n\n\n2022/01\nHopper\n\n\n\n\nRemote\nSenior Data Scientist, Hotels Marketplace\n\nApp Experience: recommendation systems, A/B testing, product insights, user analysis. Price Merchandising: pricing and markup optimization, competitive pricing intelligence.\n\n\n2022/01\n\n\n\n\n2020/03\nGoogle: Maps, YouTube\n\n\n\n\nSan Bruno, CA\nData Scientist, Engineering\n\nGoogle Maps: A/B testing, product insights, user analysis. YouTube Music: A/B testing on music recommendation system enhancements, user insights, marketing analytics, user-targeting and churn analysis\n\n\n2020/03\n\n\n\n\n2017/07\nCapital One\n\n\n\n\nWashington, D.C.\nData Scientist, Machine Learning\n\nMachine learning and ML data pipeline development, cloud compute (AWS), risk modeling\n\n\n2017/07\n\n\n\n\n2015/08\nBates White Economic Consulting\n\n\n\n\nWashington, D.C.\nAnalytics Consultant\n\nEconometric and financial modeling in the context of antitrust litigation\n\n\n2014/08\n\n\n\n\n2013/01\nNovi Security\n\n\n\n\nProvo, UT\nCo-founder\n\nInnovative, wireless home security. Top 2% Kickstarter. Successfully raised seed round of investment", - "crumbs": [ - "About" - ] - }, - { - "objectID": "about.html#education-and-service", - "href": "about.html#education-and-service", - "title": "About", - "section": "Education and Service", - "text": "Education and Service\n\nM.S. in Statistics, 2013/08 - 2015/05, Brigham Young University, Provo, UT\nB.S. in Statistics, 2008/08 - 2015/05, Brigham Young University, Provo, UT\nFull-time Humanitarian Service, 2009/08 - 2011/08, Tegucigalpa, Honduras", - "crumbs": [ - "About" - ] + "text": "Link to the 1912 publication, Twas the Night Before Christmas\noriginal poem was 1820’s\nSt Nick was 4th century\nDutch brought the name “Sinterklass” to the U.S. in the 1600’s.\nSt Nick becomes red by 1931, thanks to Coke\n\n\n\n\n\n\n\nThe OG St. Nick\n\n\nEverything below is produced by GPT:\n“How long has the concept of Santa been around? Where did”st nick” come from?”\n\nThe concept of Santa Claus has evolved over many centuries, originating from the historical figure of Saint Nicholas. Saint Nicholas was a 4th-century Christian bishop in Myra, which is now part of modern-day Turkey. He was known for his generosity and for performing miracles, which earned him a reputation as a protector of children and sailors.\n\n\nThe name “Santa Claus” evolved from the Dutch “Sinterklaas,” a short form of Sint Nikolaas (Saint Nicholas). Dutch immigrants brought the traditions of Sinterklaas to America in the 17th and 18th centuries. In these traditions, Sinterklaas was depicted as a serious, religious figure who rewarded good children and punished the naughty ones.\n\n\nDuring the 19th century, especially in America, the image of Santa Claus as we know it today began to take shape. The 1823 poem “A Visit from St. Nicholas” (commonly known as “Twas the Night Before Christmas”) played a crucial role in shaping the modern character of Santa Claus, including his physical appearance and the tradition of delivering gifts to children.\n\n\nLater, in the 19th and 20th centuries, Santa’s image was further popularized through various media, including advertisements, films, and songs, which contributed to the jovial, red-suited, and reindeer-driving character recognized globally today. This character represents a blend of the historical Saint Nicholas, folk traditions from various cultures, and modern commercial and media influences.\n\nHow did St Nick become red?\n\nThe transformation of Saint Nicholas into the red-suited Santa Claus is a gradual evolution influenced by cultural, artistic, and commercial factors. The image of Santa Claus wearing red clothes began to become popular in the 19th century, but it was solidified in the 20th century, particularly through advertising.\n\n\n\n19th Century Literature and Art: In the 19th century, Santa Claus was often depicted in various colors of robes, including blue, green, and brown. However, by the latter half of the 19th century, the image of Santa in a red suit began to appear more frequently in literature and illustrations. Thomas Nast, a prominent American cartoonist, played a significant role in popularizing this image. In his illustrations for Harper’s Weekly starting in the 1860s, Nast depicted Santa Claus in a variety of outfits, including the now-familiar red suit.\n\n\n\n\nCoca-Cola Advertising in the 20th Century: The standardized image of Santa Claus in a red suit with white fur trim was popularized and became iconic largely due to Coca-Cola advertising campaigns. In 1931, Coca-Cola commissioned illustrator Haddon Sundblom to create a Santa Claus for their Christmas advertising campaign. Sundblom’s Santa was jolly, rotund, and dressed in a red suit with white fur trim, which matched the company’s color scheme. These advertisements were widely circulated and became immensely popular, cementing the image of Santa Claus in a red suit in the public’s imagination.\n\n\n\nWhile the red-suited Santa Claus is now ubiquitous, it’s important to note that the evolution of his image was influenced by a blend of historical, cultural, and commercial factors over several decades.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "christianity/2023-12-17-christmas-celebrates-a-living-christ/index.html", - "href": "christianity/2023-12-17-christmas-celebrates-a-living-christ/index.html", - "title": "Christmas celebrates a Living Christ", + "objectID": "posts/2023-12-16-humanity-and-ai/index.html", + "href": "posts/2023-12-16-humanity-and-ai/index.html", + "title": "What is humanity", "section": "", - "text": "Away in a manger.\n\n\n\nOld news\nElder Neil Anderson’s invitation here is worth listening to. It’s an invitation to ponder the reality of the birth of our Savior. It’s rather simple, but it evokes a profound question we should all consider.\n\n\nHow wonderful it is to celebrate the birth of our Savior and Redeemer. Jesus Christ is the central figure of all human history.I know He lives. I know He was born. I know He has been resurrected. I know He is our Savior and Redeemer. And with you I rejoice in this beautiful… pic.twitter.com/YDQpIzgk0n\n\n— Neil L. Andersen (@AndersenNeilL) December 17, 2023\n\n\n\n\nDid He come?\nNothing Elder Anderson shares here is new. It’s rather repetitive. Same old story. Same-old old-guy telling me to believe in a Jesus.\nIf you consider the most currently interesting things in this world, Artificial Intelligence, some may tell you that there exists a future utopia where we’re supported by infinitely intelligent digital agents who can solve complex world problems and bring us to…utopia.\nOk. We’ve also heard this before. The Tower of Babel tried to approximate heaven, and now humanity is trying to approximate Godlike intelligence.\nThe void of Christ in one’s life produces a desire to create Christ. A savior. Something to literally save us from our woes.\n\n\ni think AI is going to be the greatest force for economic empowerment and a lot of people getting rich we have ever seen\n\n— Sam Altman (@sama) February 13, 2023\n\n\nLet’s be real. I’m a tech optimist. I say bring it on. But I’m also a Christian. In my view, the most important question isn’t “what will AGI do to/for humanity?” Instead, the most important question is “was Jesus Christ the promised messiah?”\nIf Christ came, and was indeed the prophesied Christ, then all of life’s ultimate questions are already answered.\n\nWhy are we here? To die and be resurrected to live again.\nWhere did we come from? The same place He came from: the presence of God.\nWho are we? We are sons and daughters of God worth saving.\n\nYes, the questions are already answered: it doesn’t matter what happens with AI. Because the end is known: the Lord will come again.\nLet us treasure this time to reflect on a Savior who already came. Who lives. Who loves us beyond mortal (or AI) comprehension.\n\n\nWhat can we do?\nLet’s take a moment, perhaps an hour, to consider the miracle of Christmas:\n\n\nAs Christmas approaches, I realize that some may have concerns and perhaps some anxiety about the future. There may be a lot of “noise” in your life: more or less constant engagement online without downtime, without time to be quiet and reflect and think, without time to look… pic.twitter.com/4rqS2F6No9\n\n— D. Todd Christofferson (@ChristoffDTodd) December 15, 2023\n\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "AI and humanity\n\n\nI code in cursor. I use ChatGPT when that fails. I see Pika and Runway for text to video. I see midjourney for photos. Other things that just use GPT to make blog posts.\nWill AGI even solve the problem of getting everything to connect to everything?\nDo we want a stochastic assistant to have access to my bank account, text messages, medical records, social media accounts, etc?\nWill LLMs be the space between human communication? If we’re all using bots to generate material to send to each other, and all use bots to summarize that, then where will the real human connection exist?\nWe all want a world where our problems go away, but if we don’t have problems then are we human? To be naturally human is to be discontent and desire more, and it takes the wise to overcome these impulses. But the masses are not and never have been wise. Only the individuals.\nThe future is bright. But where does humanity fit into all of it?\nWhen problems are too easy to solve with AI, humanity gets to focus even more on the really hard problems: agreeing on how to get along.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "christianity/2023-12-24-the-christ-child/index.html", - "href": "christianity/2023-12-24-the-christ-child/index.html", - "title": "The Christ Child", + "objectID": "posts/2022-06-20-blogging-with-quarto/index.html", + "href": "posts/2022-06-20-blogging-with-quarto/index.html", + "title": "Blogging with Quarto, and why I don’t use Medium anymore", "section": "", - "text": "The story of the Savior’s birth brings many wonderful concepts to memory and can teach us a lot about what will bring us true joy and happiness in this life.\n\nThis is my favorite video of the Christmas story. The most powerful part is the moment when Mary sings a lullaby to Jesus. I remember reading somewhere that this moment was completely impromptu by the actress, and it speaks volumes to the sacredness of the moment where Mary first laid eyes on her beloved son.\n\nSo what does this story give me perspective on at this time of year?\n\nChrist was the rightful, bloodline heir to King David’s throne. He was the King of the Jews. But he never sought authority. He never sought a throne. He instead taught “Render therefore unto Caesar the things which are Caesar’s”. He didn’t engage in turf battles. In rebellion. In insurrection. He just wanted people to find happiness in their circumstances by living with lovingkindness in their hearts for their God, their neighbor, and themselves.\nIn his role as a Savior and Judge of the world, he sought to not condemn the sinner trapped in the act of sin. Instead he came to liberate. To forgive. To support.\nIf you believe Christ was the Creator and Savior of the world, consider how He chose to come into the world. He was born in a stable, mucked with animal feces and rotting food scraps, covered with the stench of…a stable. He was rejected of a room in the inn. He was laid in a manger, perhaps a feeding trough. Maybe Mary had help giving birth, maybe she didn’t. He was born generally alone. I wonder if He chose to do his birth this way because nobody can say he had it easy. He didn’t have the special treatment of a King’s birth. No, he was born to an exhausted, weary traveler, likely on the cold hard floor of a dirty barn.\nIf we think about the Savior being the architect of this birth, think about how he planned for angels to show up to shepherds. Not King Herod. The shepherds. He would be the prophesied sacrificial Lamb. He would be the Good Shepherd. Yet these people were perhaps the minimum wage, forgotten ones outside the city gate. Yet these are those who had the privilege to see Him first. And He invited them to come and see. His whole life was an invitation.\nHe also invited the rich wise men. All are invited. He wanted all to see, and he wanted the world to know that He was for everyone regardless their circumstances. And that all of us, whether destitute or traveling with caravans, can bring the gifts of our heart to Him. We don’t need to bring gold. He just wants a “broken heart and contrite spirit.\n\nHow can we apply these things to our life, today?\n\nSeek out the forgotten. The people in our life that seem forgotten. The servants in our life (person on the other end of the customer support line, the checkout person, your supervisor) but even, your best friend who seems to be doing great…\nSeek not riches or wealth. Harod sought these things. Christ sought relationships and truth.\nDon’t seek for power. Christ deserved it. Christ had it. He turned water to wine, cursed a tree, and made a host of men fall over at the sound of his voice. Yet he didn’t touch the Romans.\nSeek to invite. To share. To uplift. Christ made shepherds feel important. He invited them to his crib side. And ” his hand is stretched out still.” (Isaiah 9:12)\n\nHe came like all of us, as a child. But he came to show us how a God would live. And he did.\n\n\n\nThe Christ as a Child, before worshipping Wise men\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "Been here before, eh?\nI probably shouldn’t write this post considering I’ve also written posts “blogging with Jekyll”, “Blogdown”, and “distill” before. I’m flaky, what can I say. I’ve changed my blogging framework 7 times in 5 years (I started with blogger.com and Wordpress before Jekyll, and even used Medium for 25 posts.)\nBut it’s not my fault. There are too many static site generators and it seems that Rstudio is as flaky as me. Meaning, they built rmarkdown, created hugodown, blowdown, bookdown, and distill. Hugodown is a lightweight version of blogdown, and I never figured out why it exists. Then there’s workflowr and so many other great, random products out there.\nWhy quarto for me? It seems to have all the stuff that distill has, and then some. And given its design and collaboration with Wes McKinney (pandas guy) in building quarto, and given that Wes wrote his latest book with it, I think this will be here to stay for at least 5 years.\n\n\nWhy do I avoid Medium\nWhy don’t I blog with Medium? I wrote 25 posts there over 9 months and loved it. It makes writing and publishing incredibly easy, which is why I did it. With distill/blogdown the limiting factor was I’d have to be at my computer to get a post in. I love writing on my phone - I have over 2000 journal entries with Day One over seven years, several of which are “draft” posts for a blog that won’t see the light of day since I don’t care about them after I’ve written it. I want to be able to blog frequently, a short little blurb to keep up my writing, and medium enabled this.\nBut 1) I didn’t get many views (not that I care) and 2) my writing is stuck on their platform (confirmed to me this week as I’ve tried several old, broken tools that attempt to export posts out of medium).\nI got 50x the views on my blogdown site just from organic google searching. From reading other people’s posts about leaving Medium, it’s seems that most traffic to Medium posts comes from outside of Medium.\nSo while I’m certainly not into blogging for the money, I wouldn’t mind getting the content to people who it can help. And if medium didn’t enable this, what is its purpose?\nSo I’m back and finally decided that I’m going to own my own platform. Seth Godin wrote a blog about this topic once. Why be on Medium, substack, Facebook, etc or any other up an coming platform? We’ll they’re all skewed toward the 1% of people who make money on the platform. Everyone else is wasting their time. So might as well own your content. And better to focus on writing than waste time catching up on every platform.\nAlso, it’s fun! There’s a fuzzy feeling to blogging.\n\n\nFuture of quarto?\nI’m speculating here, but Quarto can be used withR Studio, Jupiter or VS Code. The last editor seems excitingly suspicious.\nPerhaps R Studio sees the writing on the wall that VS Code is taking over the IDE world and perhaps taking over the long term future of R Studio IDE. I personally don’t see why anyone would pay for R Studio when VS Code is free and has a better interface. And while R Studio has a few better integrations for R at the moment, it won’t once enough people see the light for VS Code and turn their contributions there. I’ve been using R on VSCode for two years now and it rivals R Studio in 95% of the feature set, but 100% has better window management.\nSo Quarto seems like a great opportunity for R Studio to begin monetizing on a publishing platform like R Studio connect. Platforms like Notion and Confluence are great for everyone except data scientists trying to share reproducible research. But a quarto server seems like a great way to finally bring in Python data scientists into the markdown-flavored documentation world. (Man, I personally can’t use Jupyter/Google colab notebooks when I can use R Markdown!) I’d heartedly welcome this prospect, though I have no idea what their plans for Quarto really are.\nTill next blog post about what blogging tool I’m going to use…\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "index.html", - "href": "index.html", - "title": "Recent Posts", - "section": "", - "text": "“All blogs are wrong, but some are useful.”\n\n\n\n\n\n\n \n \n \n Order By\n Default\n \n Title\n \n \n Date - Oldest\n \n \n Date - Newest\n \n \n \n\n\n\n\n\n\n\n\n\n\nWrite despite AI\n\n\n\n\n\n\nai\n\n\nhumanity\n\n\n\nI’m fully aware an AI is listening and all that I write just trains it. Perhaps this is a perversion of my work (if I made money off it). Why write if everything I write just trains an AI agent to do their job better? \n\n\n\n\n\nTue Dec 26, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nI’m grateful for blankets\n\n\n\n\n\n\ngratitude\n\n\n\nMy grandma made blankets cool \n\n\n\n\n\nTue Dec 26, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nI’m grateful for doctors\n\n\n\n\n\n\ngratitude\n\n\n\nDoctors of the body. Doctors of the mind. Doctors of the soul…Any engaged in the pursuit of healing. \n\n\n\n\n\nMon Dec 25, 2023\n\n\n3 min\n\n\n\n\n\n\n\n\n\n\n\n\nAI Robots are mastering tasks faster than humans\n\n\n\n\n\n\nai\n\n\ntech\n\n\nfuturism\n\n\n\nFrom walking to labyrinth, the future looks bright for these machines. The key is the objective functions, time, and training data. \n\n\n\n\n\nMon Dec 25, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nTwas the Night before Christmas\n\n\n\n\n\n\nchristmas\n\n\nask gpt\n\n\n\nThe origin of the story, and a link to the 1912 publication. \n\n\n\n\n\nSun Dec 24, 2023\n\n\n3 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Christ Child\n\n\n\n\n\n\nchristianity\n\n\n\nThe birth of Jesus Christ teach us what we can do to have greater peace in this life \n\n\n\n\n\nSun Dec 24, 2023\n\n\n4 min\n\n\n\n\n\n\n\n\n\n\n\n\nLight\n\n\n\n\n\n\ngratitude\n\n\n\nI set up 72 lights today. \n\n\n\n\n\nSun Dec 24, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nHis is the light that we should share\n\n\n\n\n\n\nchristianity\n\n\n\nWho is the source of light? \n\n\n\n\n\nSun Dec 24, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Best of Edgar Allen Poe\n\n\n\n\n\n\nbook review\n\n\n\nYou think me mad? \n\n\n\n\n\nSat Dec 23, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nDune\n\n\n\n\n\n\nbook review\n\n\n\nThe plans and risks of generations \n\n\n\n\n\nSat Dec 23, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Killers of the Flower Moon\n\n\n\n\n\n\nbook review\n\n\n\n\n\n\n\n\n\nFri Dec 22, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Allegory of the Dodo\n\n\n\n\n\n\nproductivity\n\n\nbusiness\n\n\nkids books\n\n\n\nWhen in having solved a problem we inadvertently create problems for ourselves \n\n\n\n\n\nThu Dec 21, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nGitHub copilot levels up\n\n\n\n\n\n\nai\n\n\nproductivity\n\n\ntech\n\n\n\nWhat will it do next? \n\n\n\n\n\nThu Dec 21, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Little Red Hen\n\n\n\n\n\n\nbook review\n\n\nstartups\n\n\n\nPeople love to enjoy the fruits, but who will bake the bread? \n\n\n\n\n\nWed Dec 20, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nHow to encourage your kids\n\n\n\n\n\n\nparenting\n\n\n\nUnexpected advice on how to be a great parent when fostering talent \n\n\n\n\n\nTue Dec 19, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\n101 Essays that will Change the Way You Think, by Brianna Wiest\n\n\n\n\n\n\nbook review\n\n\nphilosophy\n\n\nmindfulness\n\n\n\nWe all started as strangers. It’s a choice who remains one. \n\n\n\n\n\nTue Dec 19, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nHitchhiker’s Guide to the Galaxy\n\n\n\n\n\n\nbook review\n\n\nstorytelling\n\n\n\nHow did it take me so long to finally read this? \n\n\n\n\n\nMon Dec 18, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nChristmas celebrates a Living Christ\n\n\n\n\n\n\nchristianity\n\n\nai\n\n\n\nChrist is the way, the light and life of the world. Always has been. Always will be. \n\n\n\n\n\nSun Dec 17, 2023\n\n\n3 min\n\n\n\n\n\n\n\n\n\n\n\n\nWhat is humanity\n\n\n\n\n\n\nai\n\n\n\nHumanity seeks to resolve problems. What happens when they’re too easily solved? \n\n\n\n\n\nSat Dec 16, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nPrompt techniques\n\n\n\n\n\n\nai\n\n\n\nOpen AI strategies \n\n\n\n\n\nFri Dec 15, 2023\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nLLMs can find a needle in the haystack\n\n\n\n\n\n\nai\n\n\n\nGPT outperforms Claude. \n\n\n\n\n\nFri Dec 15, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nThree Little Pigs\n\n\n\n\n\n\nbook review\n\n\nchristianity\n\n\n\nA story with a terrible but incredibly relatable morale \n\n\n\n\n\nWed Dec 13, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nLearn by doing\n\n\n\n\n\n\ndata science\n\n\ntech\n\n\n\nYou don’t need a PhD. Or a masters. You just need to hustle \n\n\n\n\n\nWed Dec 13, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nScientific Freedom\n\n\n\n\n\n\nbook review\n\n\n\nInnovation comes by varied incentives: intellectual curiosity and economic incentive \n\n\n\n\n\nTue Dec 12, 2023\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nFuture of Coding\n\n\n\n\n\n\ndata science\n\n\n\nAs our jobs are automatable, we need to discover what’s not \n\n\n\n\n\nTue Dec 12, 2023\n\n\n4 min\n\n\n\n\n\n\n\n\n\n\n\n\nHow do you want to be remembered?\n\n\n\n\n\n\nleadership\n\n\nservice\n\n\n\nIt’s a question as old as time, but misses the mark and is distracting from the more important question. \n\n\n\n\n\nFri Dec 23, 2022\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nBuilding a complex R Shiny Dashboard Using ChatGPT\n\n\n\n\n\n\ndata science\n\n\nr\n\n\nshiny\n\n\nfuturism\n\n\nchatgpt\n\n\n\nChatGPT can create amazing boilerplate code and can point you in the right direction, but it cannot debug data problems easily (yet). It can read in data from the internet, make time-series forecasts, and visualize the data (with a little assistance). \n\n\n\n\n\nThu Dec 15, 2022\n\n\n8 min\n\n\n\n\n\n\n\n\n\n\n\n\nModels as a Service and the Future of Data Science\n\n\n\n\n\n\ntech\n\n\nstartups\n\n\nbusiness\n\n\ndata science\n\n\n\nData Scientists shouldn’t be scared their jobs will disappear. They should be excited that they’ll be joining companies that automate what they’re currently doing and offer it as a service. \n\n\n\n\n\nTue Dec 6, 2022\n\n\n4 min\n\n\n\n\n\n\n\n\n\n\n\n\nWriting a Tech Resume\n\n\n\n\n\n\ncommunication\n\n\n\nHow to write a resume to get into a FAANG company. \n\n\n\n\n\nFri Nov 18, 2022\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nResume Substance over Style\n\n\n\n\n\n\ncommunication\n\n\n\nThe content of your resume is more important than the design. \n\n\n\n\n\nFri Nov 18, 2022\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nWhat is a model?\n\n\n\n\n\n\ndata science\n\n\n\nPutting the mysterious in context. \n\n\n\n\n\nSat Nov 12, 2022\n\n\n5 min\n\n\n\n\n\n\n\n\n\n\n\n\nDe-sciencing Data Science and Talking Like a Normal Person\n\n\n\n\n\n\ndata science\n\n\ncommunication\n\n\nprinciples\n\n\n\nHow can data scientists bring their technical knowledge to a non-technical audience? Here are my lessons learned from seven years in the data trenches. \n\n\n\n\n\nWed Jul 20, 2022\n\n\n6 min\n\n\n\n\n\n\n\n\n\n\n\n\nWhen data collection goes too far\n\n\n\n\n\n\nproductivity\n\n\nfuturism\n\n\ntech\n\n\nsurveillance\n\n\n\nIt’s important for us to track certain things about ourselves. But this is clearly not exactly healthy IMO. \n\n\n\n\n\nSun Jul 3, 2022\n\n\n4 min\n\n\n\n\n\n\n\n\n\n\n\n\nPomodoro Principles\n\n\n\n\n\n\nproductivity\n\n\nticktick\n\n\n\nThe art of focus through 25min work blocks. \n\n\n\n\n\nTue Jun 28, 2022\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nIncrease Focus through Writing Down Everything\n\n\n\n\n\n\nproductivity\n\n\nmusings\n\n\nticktick\n\n\n\nTo be more present, get it all down and into a system. \n\n\n\n\n\nTue Jun 28, 2022\n\n\n3 min\n\n\n\n\n\n\n\n\n\n\n\n\nHow I use TickTick\n\n\n\n\n\n\nproductivity\n\n\n\nAn overview of how I apply the principles of “Getting Things Done”, or GTD. \n\n\n\n\n\nSat Jun 25, 2022\n\n\n7 min\n\n\n\n\n\n\n\n\n\n\n\n\nGetting Things Done\n\n\n\n\n\n\nbook review\n\n\nproductivity\n\n\n\nA powerful system to be more present. \n\n\n\n\n\nFri Jun 24, 2022\n\n\n6 min\n\n\n\n\n\n\n\n\n\n\n\n\nWhat is the best todo list manager?\n\n\n\n\n\n\nproductivity\n\n\napp review\n\n\n\nI’ve reviewed 20+ apps. I think I’m done reviewing them. \n\n\n\n\n\nThu Jun 23, 2022\n\n\n11 min\n\n\n\n\n\n\n\n\n\n\n\n\nNew ideas are distractingly exciting\n\n\n\n\n\n\nproductivity\n\n\npriorities\n\n\nideation\n\n\n\nBe careful of recency bias with your ideas. \n\n\n\n\n\nThu Jun 23, 2022\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nDownstream Impact\n\n\n\n\n\n\ndata science\n\n\nexperimentation\n\n\n\nWhen you do an online experiment, you’re changing the future forever. \n\n\n\n\n\nWed Jun 22, 2022\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Power of Party Pay by Visible\n\n\n\n\n\n\nstartups\n\n\nstrategy\n\n\n\nVisible wireless, owned by Verizon, offers users $25 off per month if they join a meaningless party. What’s the effect? \n\n\n\n\n\nTue Jun 21, 2022\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nProducts for dads\n\n\n\n\n\n\nproductivity\n\n\nfatherhood\n\n\n\nWhat products am I still using 5 years later? \n\n\n\n\n\nTue Jun 21, 2022\n\n\n6 min\n\n\n\n\n\n\n\n\n\n\n\n\nBlogging with Quarto, and why I don’t use Medium anymore\n\n\n\n\n\n\ndata science\n\n\n\nI’m trying out quarto and I like it. \n\n\n\n\n\nMon Jun 20, 2022\n\n\n4 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe Author’s Angle Matters\n\n\n\n\n\n\ncommunication\n\n\nwriting\n\n\n\n\n\n\n\n\n\nSat Jul 17, 2021\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nProductivity notes\n\n\n\n\n\n\ndata science\n\n\nproductivity\n\n\n\nRunning list of productivity ideas. \n\n\n\n\n\nSat Dec 19, 2020\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nHow to mock the value of an ML solution\n\n\n\n\n\n\ndata science\n\n\ninnovation\n\n\n\nSell your solution before training your model. \n\n\n\n\n\nWed Dec 16, 2020\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nGet rid of the todo list. Calendar everything.\n\n\n\n\n\n\nproductivity\n\n\n\nIf you’re not willing to block time for it, does it event matter? \n\n\n\n\n\nTue Dec 15, 2020\n\n\n1 min\n\n\n\n\n\n\n\n\n\n\n\n\nData Beats Opinions\n\n\n\n\n\n\ndata science\n\n\ndecisions\n\n\n\nOpinions from the customer shape the product. Their behavior (captured as data) speaks louder than their words. \n\n\n\n\n\nTue Dec 15, 2020\n\n\n2 min\n\n\n\n\n\n\n\n\n\n\n\n\nSemantic Versioning for Data Science Models\n\n\n\n\n\n\ndata science\n\n\nmachine learning\n\n\n\nMeaningful versioning for data science models and machine learning pipelines. \n\n\n\n\n\nMon Jul 2, 2018\n\n\n5 min\n\n\n\n\n\n\n\n\n\n\n\n\nBuying a used car the data science way: Part 2\n\n\n\n\n\n\nwebscraping\n\n\nr\n\n\nregression\n\n\nanalysis\n\n\npricing\n\n\nbuying things\n\n\n\nHow I analyze used car data to find under-valued cars, and why none of my analysis matters.\n\n\n\n\n\nSun Feb 19, 2017\n\n\n14 min\n\n\n\n\n\n\n\n\n\n\n\n\nBuying a used car the data science way: Part 1\n\n\n\n\n\n\nwebscraping\n\n\ncars\n\n\npricing\n\n\nr\n\n\n\nHow I scrape used car data.\n\n\n\n\n\nSat Feb 18, 2017\n\n\n4 min\n\n\n\n\n\n\n\n\n\n\n\n\nThe DataViz battle: Plotly vs ggplot2\n\n\n\n\n\n\ndataviz\n\n\nr\n\n\nggplot\n\n\nplotly\n\n\n\nWhat can you do with plotly vs. ggplot2 and how do they compare on a simple chart?\n\n\n\n\n\nFri Feb 10, 2017\n\n\n7 min\n\n\n\n\n\n\n\n\n\n\n\n\nStarting with Jekyll\n\n\n\n\n\n\nproductivity\n\n\nblogging\n\n\njekyll\n\n\n\nHello world.\n\n\n\n\n\nThu Nov 17, 2016\n\n\n5 min\n\n\n\n\n\n\nNo matching items\n\n\n \n\n_________________________ For coaching on data analytics or machine learning, reach out.", - "crumbs": [ - "Recent Posts" - ] + "objectID": "posts/2022-12-06-more-new-businesses-than-ever/index.html", + "href": "posts/2022-12-06-more-new-businesses-than-ever/index.html", + "title": "Models as a Service and the Future of Data Science", + "section": "", + "text": "Businesses are Launching Like Crazy\nThere’s never been a better time to start a business. The Census shows there are over 200,000 new business applications per month more than pre pandemic.\n\nWhat’s driving this?\nListening to The Unintended Consequences of Working from Home it dawned on me that there’s a hyper acceleration of innovation happening.\nConsider the rise of AI tools like ChatGPT and StableDiffusion. Chamath Palihapitiya discusses the expansive applications for these services. What was once SaaS will become MaaS (models as a service). There will be models for everything: copy writing, code debugging, converting wireframes into working apps, ad generation, book writing…\nWhile tools like ChatGPT are just in demo mode, it’s wildly apparent they’ll be an impetus for new ideas and reducing the friction of getting to the answer. For example, as a data scientist if I need boilerplate code to clean some data, I can ask ChatGPT for the 80% solution. I’m already spending 30% of my day copying code snippets from StackOverflow and making it work for my problem. ChatGPT will just accelerate that process. 10 years from now if Neuralink can read my thoughts I don’t even need a keyboard to do this…we’ll build things at the speed of thought.\nConsider this for writers and marketers. They’ll use ChatGPT to unblock them, generate ideas, and get started. Innovation across the board will accelerate because the kinetic friction to getting started will reduce to zero. You can then spend your time on the editing and refining.\n\n\nThe Best Time to Start a Business\nI digress. Why is now the best time to build a software business?\n\nCompute is cheap. Gone are the days of having to build a server to prototype and idea.\nBarriers to prototyping are nearly free and scaling with the cloud is nearly infinite. Consider how the Gas App can launch to 100,000 new users per day with just a few developers.\nModeling is now easy. All cloud services have their own AutoML tools to build machine learning models for you.\n\nThe center of all of this is scalable data infrastructure and AI.\n\n\nFuture of Data Science\nThe data scientist of today may still be using sklearn to manually do hyperparameter tuning, but the data scientist of tomorrow will either be exclusively building MaaS B2B products or be the one person in their organization who will leverage all the MaaS tools.\nIf we can ask ChatGPT for complex answers it learned from the internet, why couldn’t something similar be trained on your company’s internal data? If that’s possible, then why couldn’t you just have a Q&A session with your internal ChatGPT? Consider the following example:\n\n“Hey KITT, what are the user segments generating the most revenue on Tuesdays at 5pm?” (Analytics)\n“How many sales do we anticipate from these users next Tuesday?” (Machine Learning)\n“What ads have been most effective for us in driving new sales in the past 7 days?” (Statistics)\n“Okay, KITT, generate 3 variants of that ad for next Tuesday” (StableDiffusion generating a new Ad)\n“I like ads A, B and C. launch an experiment on Facebook/TikTok, run it for three days and dynamically allocate ad spend to the best ad.” (Business integrations, statistics, ML models)\n\nThe data scientist of the future will be the one with deep understanding of these tools and an awareness of their biases. It will be very difficult to know when they’re lying to you. The in-house data scientist will be keen on knowing the biases in the data fed into these algorithms and how to make judgments on where to go next.\nEarly stage companies won’t need data scientists because most of this stuff will be off the shelf and easy for an engineer to integrate. That means that the data scientists will join these MaaS companies to build out optimized products that solve these niche problems.\n\n\nTakeaways\nData Scientists shouldn’t be scared their jobs will disappear. They should be excited that they’ll be joining companies that automate what they’re currently doing and offer it as a service.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "gratitude/2023-12-26-i'm-grateful-for-blankets/index.html", - "href": "gratitude/2023-12-26-i'm-grateful-for-blankets/index.html", - "title": "I’m grateful for blankets", + "objectID": "posts/2020-12-15-data-beats-opinions/index.html", + "href": "posts/2020-12-15-data-beats-opinions/index.html", + "title": "Data Beats Opinions", "section": "", - "text": "A blanket\n\n\nI’m outside right now enjoying the warmth of a blanket. It’s a special thing. It’s warm. It’s fuzzy. And the only question I have is: is it warm because it’s fuzzy? Or is it fuzzy because it’s warm?\nIn the Hitchhiker’s Guide to the Galaxy the most important item any many could carry was a towel. It’s a multifaceted tool. Perhaps a blanket is the towel’s cousin.\nMy grandma loved to quilt, so me and all my family have hand crafted blankets. Even great grandchildren have blankets long after my grandma deceased because she had a surplus in her basement.\nThere’s something special about being wrapped in something warm, especially if it’s made by someone who loves you. Kinda sends a special hug in a way that a towel just can’t.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "When I co-started a company several years ago, my founders and I would canvass neighborhoods knocking doors. We’d discuss our ideas for a new product one door at a time. After each conversation, the product took a new form. Eventually, the product took shape and we had a successful kickstarter launch.\nSince that time, I’ve thought about how valuable it was to get information straight from the source.\nAlberto Savoia’s new book, “The Right It”, is re-teaching me this principle. Data beats opinions, he says. In another book I’m reading, “Trustworthy Online Controlled Experiments”, the former CEO of Netscape is quoted saying,\n\nIf we have data, let’s go with data. If all we have are opinions, let’s go with mine. - Jim Barksdale\n\nData sourced from your manager, your stakeholder, or your customer are invaluable to help you know if you’re solving their problem. Too often it’s easy to get stuck in the original solution that comes to our mind.\nData from customers directly shape the product. Data sourced at scale from online experiments refine it.\nOpinions from the customer shape the product. Their behavior (captured as data) speaks louder than their words. Frequently, it’s challenging to correlate the two. We’re left to guess why someone actually clicked, bought, churned. It’s a beautiful cycle.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2021-07-17-authors-angle-matters/index.html", - "href": "posts/2021-07-17-authors-angle-matters/index.html", - "title": "The Author’s Angle Matters", + "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html", + "href": "posts/2017-10-19-used-cars-analysis/used-cars.html", + "title": "Buying a used car the data science way: Part 2", "section": "", - "text": "Imagine the following story:\n\n“In recent events, a ferocious fox savagely attacked a Turkey, who fortunately was able to escape to safety by pecking out the fox’s eyes.”\n\nSimple story. A bit gruesome. But, what in today’s news cycle is positive? How can we be better readers of the news when it’s targeted at making us angry?\nFoxes and turkeys are highlighted in the news all the time and it’s often the worst of humanity. The goal of many authors is to evict emotion from you so you’ll keep reading. Anger. Fear. Worry. Those keep you hooked.\nWhat’s the author’s motive? Often we have to guess it. Wouldn’t it be nice instead if authors were transparent about why they were writing a story:\n\nAuthor 1: I’m a Turkey conservationist with a passion for protecting turkeys from the rampant fox problem we have. Growing up, a Turkey saved my life when I was drowning in a lake.\nAuthor 2: I’m a narcissist who hates foxes because one time they ate my cat. I really just need therapy, but I can’t fathom talking to anyone about my problems. I want you to be as angry as I am.\nAuthor 3: I’m here to get promoted and if my boss sees that I have a 10% increase in viewership then our company’s bottom line increases. Im an opportunist who will say anything and take any side that will maximize company profits. How do these three perspectives change the storyline?\n\nWouldn’t it be great if we could know the author in addition to what the author is writing about? Every article should have not just “about the author” but, “three people’s perspectives about the author’s intent in writing this that know the author well.” Of course, you’d need to verify the three verifiers, but it’d be a start\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "[Update 2021-11-16] This analysis was originally written on my old blog here. You can find the source code for it here.\nThis is part 2 out of a two-part series on scraping used car data. Check out part 1 to learn how to scrape the data.\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2016-11-07-starting-with-jekyll/starting-with-jekyll.html", - "href": "posts/2016-11-07-starting-with-jekyll/starting-with-jekyll.html", - "title": "Starting with Jekyll", - "section": "", - "text": "Hello world.\nI wanted to start a blog. I wanted to set it up for free, use a custom URL (and not something.bloggingplatform.com), and be able to both blog and create tutorials. I didn’t mind it possibly being technical1. Enter Jekyll.\n1 Specifically, I was interested in being able to use the command line for my posts. Additionally, I didn’t mind seeing or using a little bit of code.If you want to get your blog in 10 minutes, skip to below.\n\nWhy Blog with Jekyll?\nHere’s why you can and should blog with Jekyll (if you’re a data scientist):\n\nJekyll has beautiful, free, open-source templates.\nGitHub will host your website for free2.\nJekyll is static.\nJekyll can be simple to set up3.\nI tried Wordpress and blogger.com and got frustrated.\nThe blogging content you create is very portable (easy to take your posts from one blog site to another).\nCreating blogs in Markdown syntax is a dream (even for non-technical folks).\nYou can manage your blog from your terminal\nYou can manage your blog from your phone (if you have a GitHub-editing app)\n\n2 Someone has to host it (i.e., store and display all the files). I started off trying to set up a WordPress blog, but you have to pay another company to host. I didn’t want to bother.3 If you try to set it up by following the instructions on jekyllrb.com, that’s the complicated way. That’s how I originally started, got lost for five hours, and stopped. Six months later, I found a better way.But if you don’t like debugging occasional errors, you probably shouldn’t blog with Jekyll.\nWhat is Jekyll, you ask? Jekyll is an open-source blogging platform. Anyone can write a template and post it, and anyone else can use that template. Perusing Jekyllthemes.org, you can pick out any template you’d like.\n\n\nHow did I get started with Jekyll?\nAs a blogging noob, I’ve discovered there are hundreds of ways to generate a blog (e.g., WordPress, Squarespace, blogger.com, Weebly, etc.). But when my colleague Arthur Lui showed me his blog, I wanted something similar. I first tried Wordpress, then tried blogspot, then gave up and followed Arthur’s example and landed with Jekyll.\n\n\nSet up a blog in 10 minutes!\nI followed this Jekyll tutorial to set up my first blog. I’ll simplify those steps here to get you up and running quickly:\n\nGet a GitHub account. (2 min)\nGo to Jekyllthemes.org. All of these blog themes are free. Find one you like, and Fork the repo (i.e., “repository”). (2-60 min, depending on how long you peruse)\nIn GitHub, rename the newly-forked repo from “REPO name” to “yourgithubusername.github.io”. (1 min)\nNow go to “githubusername.github.io”. Voila, you have a blog.\n\nAnd if you want to start writing posts, go to your “_posts” folder. Then create new files and follow the default templates that the repository provides. (The blogs will need to be written in Markdown syntax.)\nThat was my 10 minute promise. If you feel a bit cheated or lost, go to the well-done tutorial and do all the steps. But the steps I listed are the essential steps to setting up a blog from scratch. So if you want to make a few blogs really quickly, after you figure out the first one the others follow nicely. For example, once I finished the tutorial, I followed those steps above to try two other themes before deciding on the Centrarium theme.\nTo get Centrarium to work, I did have to change some configurations in the “_config.yml”, so there can be some minor debugging depending on the theme you choose. But with a little patience and some Googling, you’ll get it.\n\n\nAdd to Jekyll a custom URL from GoDaddy\nYou’ll notice I have a custom URL and not “bryanwhiting.github.io”. I used GoDaddy to get a domain. (I have no affiliation with GoDaddy.) Here’s how I linked GoDaddy with my GitHub Jekyll blog:\n\nGet a domain.\nIn your Github repo, change (or create) a CNAME file in the main directory. (See my CNAME file for an example). And for the CNAME file contents, just type in the new “www” that you registered through GoDaddy.\nThen, on GoDaddy, go to the section “DNS Management”. Here’s where you tell GoDaddy how to connect your newly purchased “www” with GitHub. Create the following connections:\n[Type, Name, Value, TTL] = [A, @, 192.30.252.153, 600 seconds]\n[Type, Name, Value, TTL] = [A, @, 192.30.252.154, 600 seconds]\n[Type, Name, Value, TTL] = [CNAME, ftp, yourgithubusername.github.io, 600 seconds]\n[Type, Name, Value, TTL] = [CNAME, www, yourgithubusername.github.io, 600 seconds]\n\nIf you have the CNAME file in your GitHub folder, GitHub and GoDaddy will talk and after a few minutes your custom “www” will work. You don’t technically need the two [A] steps, but those connections allow users to type “bryanwhiting.com” instead of “www.bryanwhiting.com”. It can take up to 24 hours before these [A] connections enable, so don’t be worried if the short URL doesn’t work first try. But the full URL should work soon enough.\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#youre-in-the-market", + "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#youre-in-the-market", + "title": "Buying a used car the data science way: Part 2", + "section": "You’re in the market", + "text": "You’re in the market\nSo you want to buy a car, but you don’t know anything about them? Welcome to my life.\nYou show up at the dealer and there’s a sticker on the window. You know the difference between make and model, but you soon learn what a trim is. Some versions come with leather. Some have a sun roof. Some have all wheel drive. Some have 20k in miles, and a similarly priced car in a higher trim is at 40k miles. How do you know what you’re really paying for, and what these features are worth? And how do you know what it’ll be worth when it’s four years older and has an additional 40k miles?\nPretty advanced questions for someone who just learned what a powertrain is.\nIn this analysis, I’ll dive into how you can use data to learn a lot about an industry in a short amount of time. I’ll first dive into knowing what you’re buying (now and later). Then, I’ll dive into how Truecar and others might be finding their ‘deals’." }, { - "objectID": "posts/2020-12-15-calendaring-todos/index.html", - "href": "posts/2020-12-15-calendaring-todos/index.html", - "title": "Get rid of the todo list. Calendar everything.", - "section": "", - "text": "I’ve had less meetings and more unstructured time during WFH. It can be isolating, which can slow down productivity.\nHere’s a tip I read today on how to be productive with unstructured time: put your to-do list directly into a calendar.\nThat way, you’ll always have time for the important things. Remove the things that take up your time and aren’t as important. I like it.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#what-am-i-paying-for", + "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#what-am-i-paying-for", + "title": "Buying a used car the data science way: Part 2", + "section": "What am I paying for?", + "text": "What am I paying for?\nTo do any analysis, you need data. Please see my most recent post if you’re interested in learning how I got the data for this analysis. Suffice it to say, I webscraped it. The data is not my own, but belongs to Truecar.\nI love using linear regression to understand my data on a granular level. In my data set, I was able to extract the make, model, year, mileage, trim, and a flag for whether the car was all wheel drive (awd == 1) or not. Putting this data into a linear regression, we can see some interesting results. First let’s look at the data we have:\n\nlibrary(dplyr)\nload('../../data/used-car/tc-ford-edge.Rda')\n# Get the prices into the appropriate scale and remove some extraneous\ndf$price = df$price*1000\ndf %>% select(-stats, -url, -int, -vin, -v6, -trueprice, -resid) %>% head()\n\n## price year mileage trim awd location ext deal\n## 1 16000 2014 28.477 SE 1 Sterling, VA <NA> 6514\n## 2 13300 2013 64.315 SE 0 Chantilly, VA <NA> 1784\n## 3 13800 2013 72.111 SEL 0 Fairfax, VA Mineral Gray Metallic 3331\n## 4 16000 2014 27.490 SE 0 Manassas, VA Oxford White 5448\n## 5 12000 2013 66.825 SE 0 Clarksville, MD Mineral Gray Metallic NA\n## 6 14900 2014 65.157 SE 0 Manassas, VA Tuxedo Black Metallic 4436\n## mpyr\n## 1 7.12\n## 2 12.86\n## 3 14.42\n## 4 6.87\n## 5 13.37\n## 6 16.29\nNow let’s see the regression results.\n\nmod <- lm(price ~ as.factor(year) + mileage + trim + awd, data = df)\nsummary(mod)\n\n## \n## Call:\n## lm(formula = price ~ as.factor(year) + mileage + trim + awd, \n## data = df)\n## \n## Residuals:\n## Min 1Q Median 3Q Max \n## -4755.7 -854.6 -2.7 877.5 5024.2 \n## \n## Coefficients:\n## Estimate Std. Error t value Pr(>|t|) \n## (Intercept) 22216.400 788.885 28.162 < 2e-16 ***\n## as.factor(year)2013 1267.037 625.804 2.025 0.0442 * \n## as.factor(year)2014 3160.017 645.152 4.898 1.92e-06 ***\n## as.factor(year)2015 5664.470 710.322 7.975 9.56e-14 ***\n## as.factor(year)2016 6166.658 821.469 7.507 1.68e-12 ***\n## as.factor(year)2017 9082.971 878.956 10.334 < 2e-16 ***\n## mileage -91.951 5.625 -16.347 < 2e-16 ***\n## trimSE -4983.725 409.765 -12.162 < 2e-16 ***\n## trimSEL -1822.889 291.400 -6.256 2.17e-09 ***\n## trimSport 3419.270 374.977 9.119 < 2e-16 ***\n## trimTitanium 99.242 568.428 0.175 0.8616 \n## awd 1277.734 222.680 5.738 3.30e-08 ***\n## ---\n## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n## \n## Residual standard error: 1450 on 211 degrees of freedom\n## Multiple R-squared: 0.9231, Adjusted R-squared: 0.9191 \n## F-statistic: 230.2 on 11 and 211 DF, p-value: < 2.2e-16" }, { - "objectID": "posts/2022-06-23-new-ideas-are-distractingly-exciting/index.html", - "href": "posts/2022-06-23-new-ideas-are-distractingly-exciting/index.html", - "title": "New ideas are distractingly exciting", - "section": "", - "text": "When a new idea comes to my mind, I want to act on it right away. Perhaps it’s an exciting analysis idea, a new business strategy I want to scope out, or a question to ask a team member.\nBut as I look back at my backlog of things to work on, all of these ideas were also equally exciting.\nWhy is it that new ideas have more weight than old ideas?\nThey say that effectiveness is working quickly on tasks. Efficiency is knowing what to work on. Discipline is the ability to overcome the excitement of a new idea and place it in proper context of all ideas. Sanity is actively saying no to many ideas so you don’t get inundated.\nPerhaps a good strategy is to have a “gut check” for ideas. If they don’t pass the highest threshold then let them go.\nProcess:\n\nWhat’s the new idea?\nWhat’s the potential impact? What would I do with the output of this idea?\nHow feasible is it?\n\nStep 3 is tricky because I don’t want a good idea to go to waste just because it’s hard. Judgment is weighing the trade off between impact and feasibility.\nI like Google Forms for logging ideas. It’s easy to save a Google Form URL to the home screen of my iPhone to make logging new ideas easy. Grooming those ideas is important. Letting go of old ideas is essential. If only I could do the essential…\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#interpretation-matters", + "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#interpretation-matters", + "title": "Buying a used car the data science way: Part 2", + "section": "Interpretation matters", + "text": "Interpretation matters\nFirst, we see the (Intercept). This is the average value of a car for every level of every feature not show. So it represents the average price of a year 2000 with 0 miles, Limited trim, without all wheel drive. This allows us to now see what the average effect of, say, year is, holding all else constant. Every unit is in terms of dollars, so we can see that for as.factor(year)2013 that 2013 cars are worth $1,267 more than 2012 cars. This makes sense.\nI scaled mileage to be in the thousands so that it’s a little easier to interpret. So we see that for every 1,000 miles you drive a Ford Edge, it decreases the value of the car by $91 dollars. This tells you a few things. One, if I’m being offered two cars that are 10K miles different, there should be about a ~$900 difference in the car.\nSecond, if I’m planning on driving my car 30k miles over the next two years, how much should I expect the price to drop just due to mileage? Well, about -$91 * 30 = -$2,730. And maybe if you bought a 2014 model, two years later it could perhaps be like owning a 2012 model today. What’s the two-year difference between a 2014 and a 2012 model? About $3,160 dollars." }, { - "objectID": "posts/2022-11-18-writing-a-tech-resume/index.html", - "href": "posts/2022-11-18-writing-a-tech-resume/index.html", - "title": "Writing a Tech Resume", - "section": "", - "text": "TL;DR: Use the “Accomplished [X] as measured by [Y] by doing [Z]” format.\n\n\n\n\n\n\nWriting resume is painstaking, but let me help jumpstart you. My resume below has gotten me dozens of interviews with top tech companies (Apple, Google, Facebook, Amazon, Microsoft, Waymo, LinkedIn, Hopper, etc).\nIt got me in the door, but let me be clear I didn’t pass most of those interviews 😝. That’s the point of the resume: open the door.\nLet me help you get in the door.\n\nMy template\nHere’s the google doc link to my resume template, also posted below.\nhttps://docs.google.com/document/d/1n8W79UBiWYhMWHeF4sNDtwaWxySRwU3t9isodbUuycI/view\nYou can copy this template and put in your own content.\nI designed and wrote my resume the way I did by following the guidance of these resources: \n\nBlog: Google’s Accomplished X as measured by Y by doing Z formula\nYouTube Video: Google’s How to write a resume\nBlog: Cracking the Coding Interview: how to write a resume\n\n\n\nCommentary\n\nIt takes some practice, but the XYZ formula is very powerful.\nEmboldening words can be helpful to people who have 3 minutes to scan your resume.\nI’ve never gotten commentary on how long my resume is or crammed. I’m guessing people just glance for a few keywords and some decent content and assume the rest of the resume is good.\nI’ve had a lot of discussions in phone calls about my Personal Projects sections. Fellow techies all have their own personal projects and they want to know about mine. It sends a signal you’re intrinsically motivated.\nWhile my resume is long-ish, I try to think: what story does this bullet point tell? What story am I trying to convey?\n\n\n\nHow can I Help?\nI hope this helps! Send me a message at bryanwhitingcoaching@gmail.com if I can help review a resume or give more tips.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#inference", + "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#inference", + "title": "Buying a used car the data science way: Part 2", + "section": "Inference", + "text": "Inference\nNow it’s getting interesting! You’re now starting to remember how your mom told you to never buy a car new, because once you drive it off the lot, it’s worth significantly less. Well, we can see that if you own a brand-new 2017 model and a 2016 model, they’re about $9082 - $6166 = $2916 different. So yea, just by getting the 2017 model you’ll lose $3,000 in the first year. See how 2016 is only $502 dollars more than the 2015? Having the 2015 model is practically the same price as a 2016. So you might as well buy the 2016 model and save a year of wear.\nWell, my theory kind of starts breaking down because 2015 cars and 2014 cars are similarly spaced as 2014 and 2013 ones. So maybe I shouldn’t read too much into this. But the ability to see these trends shouldn’t stop you from asking important questions, like, why is there a difference between years?\nWhen investigating the Nissan Murano, I observed a $5430 difference between 2015 and 2014. That’s non-trivial considering the other years were equally spaced. Doing a little research I saw that Nissan changed the 2015 Murano style, and the new style was apparently worth a lot more. Turns out the same thing happened here for the Ford Edge - the 2015 model is slightly longer with redesigned interior.\nYou can also use this framework to get a decent sense for what features are important to you. Like, is having all wheel drive really worth $1,277? If you live in an area where it snows, it probably is. But if you live in Florida, you may not need it.\nNot only is this framework helpful for comparing within-make-model differences, it helps you get a sense of between-make-model differences. Say, comparing the Ford Edge with the Nissan Murano and the Toyota RAV4. The coefficient for milage on the Edge is -$91. On the Murano it’s -$83, and on the RAV4 -$61. Remember this is the cost per 1,000 miles. That tells me that if I ‘spend’ 30k miles on a car over two years, I’ll lose -$2,730 on the Edge, but only -$1,830 on the RAV4, saving me $900. This also validates that Toyotas hold their value more." }, { - "objectID": "posts/2022-11-18-substance-over-style/index.html", - "href": "posts/2022-11-18-substance-over-style/index.html", - "title": "Resume Substance over Style", - "section": "", - "text": "Earlier in my career I got feedback from a prospective recruiter telling me my resume was “visually imbalanced”. Of course, the recruiter wanted my business.\nBut I went on to get over 70 interviews with that same template. I got a job at FAANG and a top startup using that resume template. I haven’t changed it.\n\nTakeaway\nHow you write your resume and what’s on it will take you farther than how you design it.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#identify-a-good-market-deal-and-how-truecar-might-do-it", + "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#identify-a-good-market-deal-and-how-truecar-might-do-it", + "title": "Buying a used car the data science way: Part 2", + "section": "Identify a good market deal (and how TrueCar might do it)", + "text": "Identify a good market deal (and how TrueCar might do it)\nBeyond the research above, you can use such a model to identify deals in the market and guide your buying decision. Here’s how:\n\nMake a PriceFinder: Get the residuals (actual minus predicted value) for each car. The more negative the residual, the more this car is a good price! This may be how TrueCar and CarGurus get their ‘deals’. They fit a model (probably one better than what I’ve created here) and use its residuals to value each car.\nIdentify ‘overpriced’ cars and try to possibly haggle those dealers down. Again, use the residuals here.\nUse this model to predict ‘out-of-sample’ cars. You can use this model built on TrueCar data and find a car on the classifieds or another site and evaluate whether it’s a good deal or not.\n\nHere’s an example of how we do that. First, let’s predict a hypothetical 2015 SEL Ford Edge FWD with 27.6k miles:\n\nthat_car <- as.data.frame(list(\n year = 2015,\n mileage = 27.6,\n trim = 'SEL',\n awd = 0\n))\n\npredict(mod, newdata = that_car)\n\n## 1 \n## 23520.13\nWe’d expect, on average, such a car to cost $23,520.13. Is what the dealer’s offering you above or below that? If they’re offering $25,000 then you know the car is $1,479.87 higher than what you might expect." }, { - "objectID": "posts/2017-02-10-ggplot-plotly/ggplot-plotly.html", - "href": "posts/2017-02-10-ggplot-plotly/ggplot-plotly.html", - "title": "The DataViz battle: Plotly vs ggplot2", - "section": "", - "text": "R users fall in love with ggplot2, the growing standard for data visualization in R. The ability to quickly vizualize trends, and customize just about anything you’d want, make it a powerful tool. Yet this week, I made a discovery that may reduce how much I used ggplot2. Enter plot_ly().\nFor this post, I assume that you have a working knowledge of the dplyr (or magrittr) and ggplot2 packages. I caveat that this post is backed with only 4-5 hours using plotly(), so some statements here may not be fully vetted.\nPlotly and ggplot2 are inherently for different purposes. plotly allows you to quickly create beautiful, reactive D3 plots that are particularly powerful in websites and dashboards. You can hover your mouse over the plots and see the data values, zoom in and out of specific regions, and capture stills. Here’s a basic histogram:\n\nset.seed(1)\nlibrary(plotly)\nplot_ly(x = ~ rnorm(1000), type = \"histogram\")\n\n\n\n\n\nAfter a brief dabble this week in plotly, I realized quickly the many advantages that plotly has over ggplot2.\nSeveral initial impressions:\n\nPlotly handles multiple wide data columns. I always find it annoying that to color different series in ggplot2, your data had to be in long format. Granted, it takes one simple melt() command to get the data into wide format.\nPlotly also handles long format (see below).\nCustomizing the layout (plot borders, y axis) is easier.\nCustomizing the legend is easier (in ggplot2 I’ve wanted to remove just one series, which isn’t always easy).\nDocumentation is better in Plotly.\nPlotly syntax is very intuitive (learning how aes() in ggplot2 works is tricky at first)\nPlotly also works for Python, Matlab, and Excel, among other languages.\nIt’s very easy to add new series and customize them (one line, one scatter, and one bar, for example)\nYou can use other fonts (which is possible in ggplot2, but I’ve never gotten to work on my Windows machine)\nYou can toggle series on and off by clicking the series name in the legend\n\nBenefits of ggplot2 over plotly:\n\nFacet wrapping is very easy in ggplot2. (I think you have to do subplots in plotly.)\nggplot2 is probably quicker for exploratory analysis.\n\n\nConverting ggplot2 into plotly\nAn additional benefit of plotly is that you can convert your ggplot() graphs into a plotly object.\n\nlibrary(ggplot2)\np <- qplot(x = rnorm(1000), geom = \"histogram\")\np\n\n\n\n\n\n\n\n\nThen, invoking the ggplotly(p) command, we see the transformation:\n\nggplotly(p)\n\n\n\n\n\nA draw back of ggplotly() is that if you do refined customization (like putting your legend on the bottom of the graph), ggplotly() doesn’t seem to pick this up by default.\n\n# ggplot with legend on the bottom\np <- qplot(\n data = iris,\n x = Sepal.Width,\n y = Sepal.Length,\n geom = \"point\",\n color = Species\n) +\n theme(legend.position = \"bottom\")\np\n\n\n\n\n\n\n\n# Plotly doesn't pick up the legend change\nggplotly(p)\n\n\n\n\n\nBut since Plotly also saves to an object, you can use the %>% notation to pipe and add additional plotting commands. This is similar to the + operator in ggplot().\n\np <- qplot(\n data = iris,\n x = Sepal.Width,\n y = Sepal.Length,\n geom = \"point\",\n color = Species\n) +\n theme(legend.position = \"bottom\")\np2 <- ggplotly(p)\n# Use the plotly layout() command for legend customization\np2 %>% layout(legend = list(orientation = \"h\"))\n\n\n\n\n\nThe legend doesn’t do exactly what we want, but you can manipulate the legend location manually using x and y coordinates. The orientation = 'h' setting in the docs puts the legend on the bottom for default plot_ly() objects. Graphing the same series, we see the legend at the bottom:\n\nplot_ly(iris,\n x = ~Sepal.Width,\n y = ~Sepal.Length,\n type = \"scatter\",\n mode = \"markers\",\n color = ~Species\n) %>%\n layout(legend = list(orientation = \"h\"))\n\n\n\n\n\n(You notice the Plotly X-axis title can get cut off1, so let’s put that +1 to ggplot2.)\n1 This may depend on your screen.Plotly seems very intuitive relative to ggplot2 in doing layout customization. Things that took me many iterations on StackOverflow to figure out, like adding a black line on y = 0, are built in to Plotly.\n\np <- plot_ly(iris,\n x = ~Sepal.Width,\n y = ~Sepal.Length,\n type = \"scatter\",\n mode = \"markers\",\n color = ~Species\n)\n# Put legend on bottom, change the x-axis range, and turn on the x-axis line. \n# Also, make the zeroline visible, and turn it red.\np <- p %>% layout(\n legend = list(orientation = \"h\"),\n xaxis = list(\n zeroline = T, # Turns x = 0 on\n zerolinecolor = \"red\", # colors x = 0 red\n showline = T, # Shows xaxis border line\n range = c(-2, 7)\n )\n)\n# Or, save parameters into a list. Use new fonts (a huge plus)\nf1 <- list(\n family = \"Arial, sans-serif\",\n size = 18,\n color = \"lightgrey\"\n)\nyax <- list(\n title = \"Sepal length\",\n titlefont = f1\n)\np %>% layout(yaxis = yax)\n\n\n\n\n\nThings I’d like to further explore:\n\nYou can export static plotly images out to file. My hypothesis is that Plotly images take longer to generate than ggplot2. So if I’m mass producing 30,000 plots (which I had to do last month), which is the faster approach? I would assume ggplot2.\n\n\n\nPlotly in RShiny Dashboards\nThe goal in learning Plotly was for me was to eliminate the Excel-VBA dashboard I created using for my manager. Excel has (some) benefits over ggplot2 static charts: you can easily hover your mouse over a series to see the data value, and most industry users know how to manage an Excel axes. Grated, you can build in an RShiny widget to allow the user to control the axes, but Excel comes with that knowledge base built-in. ggvis allows for the powerful library of Google charts, but I think for a reactive dashboard, plotly is a great way to go2.\n2 Of course, this is relative to the chart you’re trying to make.So Plotly solved the Excel problem for me. Now my manager can click and zoom to the parts of the graph that are interesting, and hover the mouse to see the values. Just use renderPlotly() instead of renderPlot() in the server.R file, and plotlyOutput() instead of plotOutput() in the ui.R file.\nMore info here: RShiny and Plotly\n\n\nRShiny vs Plotly Dashboards\nBoth RShiny and Plotly allow for creating dashboards. Plotly allows you to build dashboards as well. If you’re just interested in only visualizing charts and trends, Plotly dashboards seem like the way to go. But to build reactivity into your dashboard (like subsetting your sample, changing date ranges, etc.), RShiny still seems like the more customizable solution.\n\n\nFinal thoughts\nOverall, it seems that ggplot2 is quicker to build and find what you want. With facet wrapping, the qplot() command, and ggsave(), you can whip something up fast. Plotly is better for dashboards, as you can interact with the plots. I feel like Plotly has a better syntax and documentation, and so it may be easier to get a basic plot to look how you want it to. But ggplot2 seems to have more advanced features, so if you want to get into refined customization, you may want to stick with ggplot2. They’re both great, and serve different purposes, but I’ll be using plotly for my RMarkdown and RShiny visualizations going forward.\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#how-to-improve-our-model", + "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#how-to-improve-our-model", + "title": "Buying a used car the data science way: Part 2", + "section": "How to improve our model", + "text": "How to improve our model\nNow, this is a pretty naive model, but it’s a model. As George Box said, “All models are wrong, but some are useful.” But here are some quick ways to improve this model:\n\nCheck for interactions. An interaction between miles and year would tell you whether the effect of miles would change across different years. For example, I think adding 10k miles to a 2017 would devalue the car more steeply than adding 10k miles to a 2012 model. During my quick research I checked for interactions, but I didn’t find many to be significant and I chose to ignore them for simplicity.\nUse a linear trend for year rather than a ‘factor’ trend. I’ve chosen here to treat year as a factor, which implies that I think that each year is completely different. Had I used year as a numeric feature, I could have possibly interpreted year as, “Each additional year increases/decreases the price by X on average, holding all else constant.” I liked the simplicity of thinking that each year was different, and since cars usually update models every four years, I wanted to be able to see where this happened. You couldn’t easily see this if year were a linear trend. Objectively, what would be a good way to choose? Fit both models and see which had better R-squared or AIC.\nDo model diagnostics. Check the residual plot to make sure the errors are normally distributed. Check for outliers. Each of these affects the accuracy of your residuals. I did some brief checks and was genearlly satisfied." }, { - "objectID": "posts/2022-12-15-chatgpt-rshiny/index.html", - "href": "posts/2022-12-15-chatgpt-rshiny/index.html", - "title": "Building a complex R Shiny Dashboard Using ChatGPT", - "section": "", - "text": "ChatGPT is nothing short of amazing, but I think I’ll still have a job as a data scientist for at least another year or so.\n_________________________ For coaching on data analytics or machine learning, reach out." + "objectID": "posts/2017-10-19-used-cars-analysis/used-cars.html#takeaways", + "href": "posts/2017-10-19-used-cars-analysis/used-cars.html#takeaways", + "title": "Buying a used car the data science way: Part 2", + "section": "Takeaways", + "text": "Takeaways\nSo, a data scientist walks into a dealership with a computer with a registry of thousands of used cars on it. He negotiates with the front-office salesman. And the salesman says…\n\nNon-statistical considerations\nWhen you’re buying a car from a dealership, remember that it’s their job to sell you that car. Here are other random things I learned to think about during the car-buying process.\n\nHow many miles has it been driven, and how old is it? (We found a car with 45,000 miles in one year. That’s almost two trips around the entire world in a year! This is also 3750 miles per month (a cross-country US trip), or about 125 miles per day. What kind of driving do you have to do in a year to get that?\nHow many prior owners were there?\nWas the car previously a rental? A lease? A fleet?\nRental: Abused by X number of people? But also perhaps better maintained by rental companies?\nLease: What kind of person would lease?\nFleet: Probably a corporate car. Like a rental, but different kind of drivers.\nWhere did the car come from?\nIs there snow where they live? And do they use salt on the roads there? (Salt = rust underneath)\nWhat else does the geography tell you about the possible wear on the car (causing long-term problems)\nWhat does the CarFax or Autocheck say?\nWas the car sold at auction? When? What could the time between sales tell you about the car?\nIf someone gets into an accident and doesn’t report it, the CarFax won’t tell you. I drove 45 minutes to look at a ‘great’ deal only to learn the door was nearly falling off.\nGood luck haggling the dealer down. Car dealerships don’t usually make that much on the car, but make their money on warranties and fees. Your best chance is to haggle on the deals being offered (terms and agreements).\nDon’t get the powertrain warranty. This is like the “french fries” of the auto industry. Pure profit.\nEvery dealership has quota. Going in at the end of the month might help you, but the dealership will be packed.\nUsed cars are bought at auction. Carmax buys all their cars at auction and only keeps 1/3 of them. Local dealers also get their cars this way, and they don’t always know what the car looks like till it gets to their lot. Check the Carfax to see if any prior dealers ‘flipped’ the car quickly.\n\nUsed cars have a shelf life. If a car isn’t sold in 45-60 days, some dealerships might have to auction off the car. That means you’ll see a tiering in the price. Less-favorable cars will see the price drop several times in its life cycle. Check CarGurus to see how many times the price has dropped, and try to guess for yourself if it might drop again (or just get sold). They know their prices. They’ve got their back-office guys looking at every price of every same car within 100 mile radius. While I’m also able to get as many of those cars as available on TrueCar, I’m not able to segment by all the various features. It’s easy to webscrape for Make, Model, Year, AWD/FWD, and maybe V6 engine, but it’s very hard to get the details like leather, sunroof, twin-turbo, etc. That’s where the pricing gets really interesting.\n\n\nFinal thoughts\nUltimately, a car is bought by irrational humans, and sold by more experienced ones too. So all of this data will probably go out the door when you try to make a deal.\nSo a data scientist walked into several dealerships, and left frustrated because nobody budged on their prices. Doesn’t matter how much data I have, or what I think I know, everyone’s got their price." }, { - "objectID": "posts/2022-12-15-chatgpt-rshiny/index.html#data-processing", - "href": "posts/2022-12-15-chatgpt-rshiny/index.html#data-processing", - "title": "Building a complex R Shiny Dashboard Using ChatGPT", - "section": "Data Processing", - "text": "Data Processing\nI asked it to create an indicator variable for me so that I could color my dygraphs chart by forecasts vs. historical:\n\nHere was my prompt:\n\nDon’t use add_series() since you’re wrong and it’s not a function in dygraphs. Instead, append the forecasts to the aapl in the stock_subset function and create a new indicator for the forecasted values where 0 is past data and 1 is forecasted data. Then, color the dygraphs chart based on the indicator value. Re-write this script below accordingly.\n\nLook at that code! It knew to filter appl2$ds > max(appl$ds). That’s exactly how you subset a prophet dataframe (which returns all historical and future forecasts in one dataframe). It knew that appl was the first dataset and appl2 was the derived dataset. It knew that it had to take the max date from appl. This is absolutely amazing, hands down.\naapl2 <- bind_rows(aapl2, forecast_subset)\naapl2$indicator <- ifelse(aapl2$ds > max(aapl$ds), 1, 0)" + "objectID": "posts/2023-12-21-github-copilot-levels-up/index.html", + "href": "posts/2023-12-21-github-copilot-levels-up/index.html", + "title": "GitHub copilot levels up", + "section": "", + "text": "TL;DR:\n\n\n\n\n\n\n\n\ncan debug failed terminal errors\nshows git diff of revisions\ncan explore workspaces now with @workspace (still lags behind Cursor, which indexes everything in your code base)\nauto-commit messages (I’ll take this)\nauto-pr messages (sounds good to me)\n\nMore here:\nhttps://code.visualstudio.com/blogs/2023/11/13/vscode-copilot-smarter\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2022-12-15-chatgpt-rshiny/index.html#data-inspection", - "href": "posts/2022-12-15-chatgpt-rshiny/index.html#data-inspection", - "title": "Building a complex R Shiny Dashboard Using ChatGPT", - "section": "Data inspection", - "text": "Data inspection\nI then got this error:\nI'm getting this error: Error in `select()`:\n! Can't subset columns that don't exist.\n✖ Column `date` doesn't exist.\nChatGPT gave me the ring-around. It didn’t know that the dates were stored as the rownames, but confidently gave me answers like this:\n\nTo it’s credit, it recommended I inspect the data myself:\n\nOnce I figured out the problem, I told it that the rownames were dates, and that date wasn’t a column. It had just the solution for me:" + "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html", + "href": "posts/2022-06-23-the-best-todolist-manager/index.html", + "title": "What is the best todo list manager?", + "section": "", + "text": "Wirecutter reviewed the best todo list apps and declared “ticktick” the winner. After all my research here’s what I’ve learned.\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2022-12-15-chatgpt-rshiny/index.html#misleading-functions", - "href": "posts/2022-12-15-chatgpt-rshiny/index.html#misleading-functions", - "title": "Building a complex R Shiny Dashboard Using ChatGPT", - "section": "Misleading Functions", - "text": "Misleading Functions\nTwice, it told me that dygraphs had functions that it didn’t actually have. It even wrote code for me. For example, it recommended this to me:\ndygraph(stock_subset(), main = \"AAPL Stock Price\") %>%\n add_series(data = forecast_subset, col = \"red\") %>%\n dyRangeSelector()\nAnd it doubled down:" + "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#structured", + "href": "posts/2022-06-23-the-best-todolist-manager/index.html#structured", + "title": "What is the best todo list manager?", + "section": "Structured", + "text": "Structured\nThe highest rated app for planning on the App Store is “Structured”. Where this app excels is it’s simplicity. It’s likely best for someone like a student that wants to plan out when they’ll get their homework done. What I loved about this app, and what I wish many others apps had, is a duration estimation for a task. Why is it so hard for developers to realize that tasks take time? They obsess over list keeping and app design but ignore the second most basic question: how long will this take? Structured kind of solves this. What I don’t like about this app is the design. While others praise it for its beauty and simplicity I thought the visual feel of it was distracting." }, { - "objectID": "posts/2022-12-15-chatgpt-rshiny/index.html#data-conversion", - "href": "posts/2022-12-15-chatgpt-rshiny/index.html#data-conversion", - "title": "Building a complex R Shiny Dashboard Using ChatGPT", - "section": "Data Conversion", - "text": "Data Conversion\nIt told me to use the xts package so that dygraphs could read the data in. This was accurate - dygraphs cannot read in tibbles.\n\nBut it was misleading me a little bit. Again, I had to look at the data, because the direct code it gave me was missing columns that it assumed it had." + "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#microsoft-to-do", + "href": "posts/2022-06-23-the-best-todolist-manager/index.html#microsoft-to-do", + "title": "What is the best todo list manager?", + "section": "Microsoft To Do", + "text": "Microsoft To Do\nMicrosoft To Do used to be a favorite of mine. I loved its daily planner and smart suggestions. It has the philosophy that every day you should start fresh. All unfinished tasks will be removed from today and you’re left to pick and choose what you want to do. The fatal limitation however is that it lacks the ability to plan tomorrows a tasks the day before. So this forces people to have to populate their tasks at the start of the day. This is the worst time for planning for me because I want to get up and get going ASAP. (But honestly most times I wake up 15 minutes before my first meeting or am spending time pouring milk into my kids’ cereal.) Morning is not the best time to plan a day for me, so I lost interest here.\n\n\n\nTo Do has smart text parsing.\n\n\n\n\n\nTo Do has “smart suggestions” that you can add to your day." }, { - "objectID": "posts/2022-11-12-what-is-a-model/index.html", - "href": "posts/2022-11-12-what-is-a-model/index.html", - "title": "What is a model?", - "section": "", - "text": "_________________________ For coaching on data analytics or machine learning, reach out." + "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#todoist", + "href": "posts/2022-06-23-the-best-todolist-manager/index.html#todoist", + "title": "What is the best todo list manager?", + "section": "Todoist", + "text": "Todoist\nI’ve tried many times to get into Todoist. It has smart text parsing which is apparently best in class from my Reddit research.\nThings it has:\n\nProjects can have section labels. This lets you organize your list more meaningfully. This is great, only that TickTick does it better. Each project in TickTick can have subprojects. These subprojects act like sections. You can also move subproject from one list to another.\n\n\nThings it lacks:\n\nCan’t nest labels (tags)\nCan’t create labels dynamically - you need to manually add them on the label screen before a task can leverage them.\nCan’t pull in my calendar.\nDoesn’t have check items, only subtasks." }, { - "objectID": "posts/2022-11-12-what-is-a-model/index.html#im-building-a-model-you-know", - "href": "posts/2022-11-12-what-is-a-model/index.html#im-building-a-model-you-know", - "title": "What is a model?", - "section": "I’m building a model, you know", - "text": "I’m building a model, you know\nThe first time I heard the word “model” was from an engineering professor in college. I had no idea what he meant so I asked him. He looked at me like many who have forgotten their own ignorance and just said “Some calculations in excel. You know.”\nNo, you don’t know. But nod your head so you don’t look like an idiot. “Right, of course.”\nWhy this moment was intriguing to me is one of my personal mysteries. But it was one of those odd moments that stuck. I’m now here to help my old self make sense of the world." + "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#sorted3", + "href": "posts/2022-06-23-the-best-todolist-manager/index.html#sorted3", + "title": "What is the best todo list manager?", + "section": "Sorted3", + "text": "Sorted3\nThis app takes a different design. It’s main selling point is the ability to auto schedule your day based on the tasks you have for that day.\nPros:\n\nRich formatting on description. Supports markdown.\nclean UI. Good shortcuts.\nintegrates with calendar to plan your day.\nEasily plan duration.\n\nReally nice widgets.\n\nCons:\n\nDoesn’t have subtasks, but has check boxes\nNo prioritization or smart filters. Just tags and lists.\nCan’t easily see across lists like you can in TickTick\n\nAuto schedule is nice but could be kind of gimmicky. If you have 8 meetings in a day and five 30 min free blocks but all your tasks for the day are an hour, it would put all your tasks at the end of the day. I found it kind of buggy." }, { - "objectID": "posts/2022-11-12-what-is-a-model/index.html#the-same-name-for-different-things", - "href": "posts/2022-11-12-what-is-a-model/index.html#the-same-name-for-different-things", - "title": "What is a model?", - "section": "The Same Name for Different Things", - "text": "The Same Name for Different Things\nWhen I told my mom I build models for a living she shook her head. Turns out my dad had been telling her for years that he builds financial models, yet she never figured out exactly what it was that he did.\nLet’s be clear on the common ground. A “model” per the dictionary is “simplified description, especially a mathematical one, of a system or process, to assist calculations and predictions.” By this definition, my dad and I do the same thing. We use numbers to put structure on the world." + "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#automated", + "href": "posts/2022-06-23-the-best-todolist-manager/index.html#automated", + "title": "What is the best todo list manager?", + "section": "Automated", + "text": "Automated\nMotion became popular as a calendar organizer. Add a task and Motion will figure out when to do that for you. If you change your meeting then Motion will adjust when your tasks will get done. Cons: it’s expensive ($20-$35 per month). It’s mobile app is horrid. It didn’t seem like it offered sub tasks and all that. So you really need to trust the algorithm.\n\nIt gets the notion of task-duration right. But if you want to jot down notes of all the next actions you need to take on a project, your up the creek. I’m also not sure how it handles task dependency - if I put in 5 tasks for a project will it know their order? Not sure. Again I’ve never tried this app so take this all with a grain of salt.\nReclaim is another app claiming to do the same thing and offers a free tier. I did as much as set up my account with this.\nPerhaps if I gave these more attention they’d prove their worth. I’ve tried calendaring my todos in the past and it hasn’t been very effective for me. Perhaps these apps would solve it but I think I need a good mobile app.\nAnyway, you can’t beat free and free is working for me on TickTick right now. Also, my calendar is very open generally so I don’t have the same problems a busy manager might have.\nI think these apps would be best for people who have meeting heavy workflows. It handles the schedules as you need." }, { - "objectID": "posts/2022-11-12-what-is-a-model/index.html#types-of-models", - "href": "posts/2022-11-12-what-is-a-model/index.html#types-of-models", - "title": "What is a model?", - "section": "Types of Models", - "text": "Types of Models\nA financial model is different than a statistical model is different than a physical model or a 3D architecture model. But they all do the same thing: use numbers to put structure on the world.\nEvery model has a few things in common: - They make assumptions about the world - They use data - They probably make some calculations to help someone make a decision\nA financial model might make assumptions in a spreadsheet about how many customers you’ll get per month for the next 12 months. This doesn’t seem complicated, and it shouldn’t: models don’t have to be complicated.\nA data science model is one that might try to predict whether a customer is going to click on an ad." + "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#akiflow", + "href": "posts/2022-06-23-the-best-todolist-manager/index.html#akiflow", + "title": "What is the best todo list manager?", + "section": "Akiflow", + "text": "Akiflow\nThis app seemed expensive ($15/mo), no mobile app, but has an awesome calendar. The philosophy is you have to assign every task to a date and time to move it out of the inbox. That seemed like a headache to me, and seemed like I’d be constantly managing the inbox. That and I’m cheap and want a mobile app." }, { - "objectID": "posts/2022-11-12-what-is-a-model/index.html#how-does-a-model-work", - "href": "posts/2022-11-12-what-is-a-model/index.html#how-does-a-model-work", - "title": "What is a model?", - "section": "How does a model work?", - "text": "How does a model work?\nThe purpose of a math model is to imitate the “data-generating process”. Meaning, if you have some data on your customers (what they purchased and when), you would hope that there’s some rules that your customers are operating under. If you knew their income, their budget, their preferences, etc then you can guess how much they have to spend at a given time. Thus, if you know how much gas is in their tank, the mileage of the vehicle, the MPG of the vehicle, you can predict when they’ll stop to fill up on a road tip. When they fill up, they generate some data. “Bob purchased $34.52 of gas on Monday at 5:43pm.” Why did they purchase at that time of day? And why did they spend exactly $34.52?\nIf all you have outcome/results data then you can’t ever make predictions. But if you know what type of car Bob drives, how often he drives, how much gas he had in the morning when he left his house, etc, you can start to predict when he’ll next fill up.\nThe assumption behind a model is that what was true in the past will remain true in the future.\nWhy have there been so many issues because of COVID? Nobody could have predicted a world wide pandemic. The world wasn’t the same. All the models stopped working. Supply chain models. Financial models. Default models. All of these assumptions across all industries started breaking down." + "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#sunsama", + "href": "posts/2022-06-23-the-best-todolist-manager/index.html#sunsama", + "title": "What is the best todo list manager?", + "section": "Sunsama", + "text": "Sunsama\n$20 per mo or $192/year. Super fast customer support.\nFeatures: * Mobile app, Mac app. * Duration\nPros: * Channels (lists) * great shortcuts * can align tasks with objectives * more of a mindful daily planner * Integrates with Todoist and other apps. You can pull in all to foist metadata including subtasks and check them off in Sunsama. Additionally, you can add duration and calendar your Todoist tasks. * Can export all the tasks to csv. * Can split calendar events.\nCons: * Widgets are weak * No priority labels * No task tags/labels. (But you can use Todoist for this if you want.)" }, { - "objectID": "posts/2022-11-12-what-is-a-model/index.html#how-do-you-build-a-data-science-model", - "href": "posts/2022-11-12-what-is-a-model/index.html#how-do-you-build-a-data-science-model", - "title": "What is a model?", - "section": "How do you build a data science model?", - "text": "How do you build a data science model?\nMost people build models every time they calculate the “mean”. This is the most ubiquitous model and anybody can use it. Sum your revenue and divide by number of purchases.\nIf you want to predict revenue for next Monday, just take the average revenue for every past Monday. That’s a model.\nIf Monday is a holiday or the Monday after Black Friday, your model might be very wrong. So you estimate black Friday’s sales by looking at last year’s sales. “Last Cyber Monday we sold 2x more than we typically do on a Monday. So I’ll predict that on this upcoming Cyber Monday I’ll do 2x more than what I did in the most recent Monday”\nNow that you’re taking in some data, your building a model. You’re translating a theory on how the world works into numbers. You’re taking last year’s sales and using it to predict tomorrow’s sales." + "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#reclaim.ai", + "href": "posts/2022-06-23-the-best-todolist-manager/index.html#reclaim.ai", + "title": "What is the best todo list manager?", + "section": "Reclaim.ai", + "text": "Reclaim.ai\nTask manager isn’t as good as Sunsama. Only $8/mo for pro. Has todoist integration too, but that’s a pro feature.\nThis is one I’ll want to try later. It has the habit tracking and smart flexible calendaring. Not sure how good of a task manager it is. TBD." }, { - "objectID": "posts/2022-11-12-what-is-a-model/index.html#start-simple", - "href": "posts/2022-11-12-what-is-a-model/index.html#start-simple", - "title": "What is a model?", - "section": "Start Simple", - "text": "Start Simple\nWhenever I build models, I always try to start simple and see if something more complicated can beat it.\n\nUse averages\nBuild a rules-based model\nBuild a regression model/machine learning model\nBuild a ML model with rules on top of it\n\nIf I’m trying to predict whether a user will click an ad, the simplest model is “what % of all users clicked this ad in the past?” If 20% of all users who see an ad click on it, then my “model” is “predict a 20% chance of click”.\nThen to make it more complicated, you can segment your users. “10% of men click on this but 25% of women do.” You now have more data and better predictions.\nA “decision tree” is a machine learning algorithm that just finds those segments in your data. “If man age 30 in Chicago then 22.3% chance of clicking based on all past behavior of all 30-year old men in Chicago”. It’s called a decision tree because it will put every user into mutually exclusive groups.\nSome “business logic” model might be making predictions around how your business operates. For example, if there’s a sale you may know that clicks increase." + "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#vimcal", + "href": "posts/2022-06-23-the-best-todolist-manager/index.html#vimcal", + "title": "What is the best todo list manager?", + "section": "Vimcal", + "text": "Vimcal\nFast calendar. Not for tasks or backlogs it seems though. Didn’t try." }, { - "objectID": "posts/2023-12-15-prompt-techniques/index.html", - "href": "posts/2023-12-15-prompt-techniques/index.html", - "title": "Prompt techniques", - "section": "", - "text": "How to Prompt Engineer\n\n\n\n\n\n\nTL;DR: Prompt Engineering\n\n\n\n\n\n\n\n\nOpen AI released a great Prompt Engineering guide (link in comments). Here is a summary of their 6 strategies for getting better results when prompting GPT-4 pic.twitter.com/QiBASsbOHD\n\n— MindBranches (@MindBranches) December 15, 2023\n\n\nThe summary above is from here:\nPrompt Engineering\n\n\nTakeaways\nIf prompt engineering is the future of coding, then coding is going to change from a deterministic, imperative experience to a stochastic one. That seems odd. 95% chance your output code will do what you want it to do, with a 5% change it does something drastically wrong. How do you unit test that?\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#asana", + "href": "posts/2022-06-23-the-best-todolist-manager/index.html#asana", + "title": "What is the best todo list manager?", + "section": "Asana", + "text": "Asana\nOh man, how many times have I downloaded Asana? I started with it in 2014 and thought it was cool. Trying it again in 2022 it had a similar feel.\nAsana is the only task manager app I reviewed that has dependency management. Sure, Jira has blockers and all that but Jiras more aimed toward high level project management. It’s not fast at the\nOther things I remember liking:\n\ninfinite subtasks. This was fun and also distracting.\nAutomation features. You can create workflows for what happens to a task\nCommunication. It has a nice inbox feature that let me communicate with my manager easily.\n\nCons:\n\nClunky on the board management. If I want to start a new project things get messy and overwhelming." }, { - "objectID": "posts/2018-07-02-semantic-versioning-for-data-science-models/semantic-versioning-for-data-science-models.html", - "href": "posts/2018-07-02-semantic-versioning-for-data-science-models/semantic-versioning-for-data-science-models.html", - "title": "Semantic Versioning for Data Science Models", - "section": "", - "text": "If you’ve ever wanted to tag your data science model, you’ve probably wondered how to version it. Which will it be: vx.4.1, v34.1231.51.21, or v91.x4.dev34? After reading about semantic versioning, I propose a method for versioning data science models.\n_________________________ For coaching on data analytics or machine learning, reach out." + "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#jiragithub-projects", + "href": "posts/2022-06-23-the-best-todolist-manager/index.html#jiragithub-projects", + "title": "What is the best todo list manager?", + "section": "Jira/GitHub projects", + "text": "Jira/GitHub projects\nGreat at a high level but messy to manage the gritty day to day. Doesn’t let you schedule or put due dates. So eventually I’d need some other tool to manage all the minutia of getting things done." }, { - "objectID": "posts/2018-07-02-semantic-versioning-for-data-science-models/semantic-versioning-for-data-science-models.html#an-example", - "href": "posts/2018-07-02-semantic-versioning-for-data-science-models/semantic-versioning-for-data-science-models.html#an-example", - "title": "Semantic Versioning for Data Science Models", - "section": "An Example", - "text": "An Example\nI build data science models by building python packages and committing the code to GitHub. The python package contains all of the support files and a main.py file to run the pipeline from start to finish. The support files could contain either helpful loggers to tell me where the pipeline is breaking down, diagnostic tools such as an AUC-ROC plot, files to engineer features, or files to train different model types. So there are really these three things that could happen to my code at any time. It doesn’t matter where those changes occur, or how many lines of code changed. What matters is what’s happened to the model. Each time I get a pull request approved, I’ll update the version number in my repo.\n\nChanging BETWEEN\nIncrement the BETWEEN version for the following changes:\n\nWhen the structure of your data changes\nIf your target variable changes (how you coded it, or data that produced the target changed)\nThe underlying population you’re training on changes\n\nAssume I discovered that I had a bad join. The join change might have been a minor one, but it’s now difficult to really compare the two models because my target was affected as a result. What I was predicting, even if slightly different, is now something different. If you ever feel like you’re comparing apples to oranges when looking at an AUC-ROC curve, update the BETWEEN version.\nWith each BETWEEN change, there should be a clear communication in the release notes of why the model is inherently different from prior models. These changes should be less frequent.\n\n\nChanging WITHIN\nIncrement the WITHIN number when the following happens:\n\nFeatures are added\nData sources are added or updated. (You might have several data sources today that help contribute to the target. But adding a data source might just mean adding new features. If you add data in such a way that it changes what you’re ultimately modeling, update the BETWEEN version.)\nNew modeling types are added. (You might be using a logistic regression, but add a mo)\n\nSo if I added files that allowed me to train different model types, or added files that engineered new features, I’d incrememnt the WITHIN version. In my mind, this shouldn’t be a count of features you include, but should just be incremented every time you do something that affects the model performance.\nAt any time, you might what to view different subsets of features and their effect on the model. So, you might not change the number of features, but add some functionality into your pipeline that now produces three different models in each run. I would increment the WITHIN version number in that case.\nRemember, the goal of this type of versioning is to show generally what’s changed in your pipeline.\n\n\nChanging PROCESS\nIncrement the PROCESS version when the following happens:\n\nA minor bug is fixed (unless this updates BETWEEN or WITHIN)\nEnhance a logger or aspect of the pipeline\nAdd a diagnostic plot or table\n\nBasically, any time you add something that doesn’t ultimately affect the performance of the model, you should update the PROCESS version. Your changes might improve the flow of your code and make you a much happier developer, but if it doesn’t improve the model, then the key priority of your code hasn’t improved." + "objectID": "posts/2022-06-23-the-best-todolist-manager/index.html#not-considered", + "href": "posts/2022-06-23-the-best-todolist-manager/index.html#not-considered", + "title": "What is the best todo list manager?", + "section": "Not considered", + "text": "Not considered\nI didn’t look at Things3 or OmniFocus, which are considered of the best tools. Things3 was too expensive and seemed like it had many of the same features as TickTick, except I personally didn’t like the UI." }, { - "objectID": "posts/2020-12-18-productivity-notes/index.html", - "href": "posts/2020-12-18-productivity-notes/index.html", - "title": "Productivity notes", + "objectID": "posts/2023-12-13-learn-by-doing/index.html", + "href": "posts/2023-12-13-learn-by-doing/index.html", + "title": "Learn by doing", "section": "", - "text": "Time Management\n\nCalendar my ToDos.\nShorter work is better. Less to edit. Less mistakes. Keep it simple.\n\n\n\nDistractions\n\nBlock 30 min for email and review team members work twice a day.\nAggressively filter email spam.\n\n\n\nAnalysis\n\nStart with a story. End with story.\nIterate quickly with stakeholders.\nalways have one nights sleep before sending a presentation. Edit.\n\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "TL;DR: Yes, unintelligent people can use things without fully understanding them\n\n\n\n\n\n\n\n\nMany people have their noses up their ass when they claim you can't use an algorithm you don't fully understand.They give themselves this fake moral superiority. They must be the only ones who belong because they know every detail.This is all bullshit.Here are a few simple…\n\n— Santiago (@svpino) December 12, 2023\n\n\nWhile the language is perhaps a bit strong, I agree with the sentiment here.\nI don’t have a PhD but have been limited twice in my career by those who wish I had one. What would having a PhD give you that I don’t have?\nWell, I trust you more if you had one.\nJeremy Howard, a world renowned research and creator of fast.ai and answers.ai started his lectures on deep learning with “you don’t need to have a math degree, you just need to know a little bit of code”. With that philosophy he’s helped entrepreneurs create amazing products that left his free online program.\n\nBlindspots tho\nConcepts are important to understand. Understanding your training data and how the machines learn from them and the biases they’re prone to is very useful, perhaps mission critical, to creating value.\nSo what’s the line? Well, if you got a PhD you’d probably spend 80% of your time on your dissertation and taking some non relevant coursework. How does that help you today?\nWell, you should learn as many concepts as you can. Like driving a car, you don’t need to know hydroplaning but you should learn hydroplaning. You don’t need to know how to drive in snow but you should know that driving a car in the snow with rear wheel drive is a different experience.\nIf you live in Arizona you don’t need to know how to drive in the snow. Your bias is you’ll never know why that would be necessary.\n\n\nPrinciple\nBe so curious that you explore the boundaries of your space such that you learn “oh, cars work differently in snow, but I don’t have snow so I’m safe”. Once you reach the boundary you probably know enough. Then ship your code and learn by how you messed things up.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2023-12-12-future-of-coding/index.html", - "href": "posts/2023-12-12-future-of-coding/index.html", - "title": "Future of Coding", + "objectID": "posts/2023-12-25-ai-robots-are-mastering-tasks-faster-than-humans-/index.html", + "href": "posts/2023-12-25-ai-robots-are-mastering-tasks-faster-than-humans-/index.html", + "title": "AI Robots are mastering tasks faster than humans", "section": "", - "text": "The Essence\n\n\n\n\n\n\nTL;DR: The future belongs to those whom it’s always belonged\n\n\n\n\n\n\nA blogger data scientist Santiago recently said on Twitter, (paraphrasing) “I’m going to focus on what won’t change”. He was worried about how coding and AI will be automated, but Jeff Bezos wasn’t worried about so much of the world changing with the Internet. Bezos focused on what wasn’t changing.\nThis thought hit me, because I think it’s relevant to what our future looks like in 18 months.\n\n\nEvery day, a new winner\nNothings more apparent that the world is going to be wildly different than the past than to hop on X and see new academics one upping themselves with the next greatest LLM. Mistral just announced a 2Bn valuation as a 6 month old company. Fast is the new pace. And it’s oddly the case that big businesses are capable of massive disruption from upstarts. They can’t afford to stay glacial much longer (5-10 years).\nWith all of this, what about this blog post won’t change? Well, the timeless principle is that the nature of the game has changed permanently. Pandora’s box was opened.\n\n\nThe rise of a new equalizer\nGo into a poor part of town and you’re guaranteed to see one thing: poor people using smart phones.\nThey have access to all the same information that the rich people have. The same excellent software. Same excellent hardware. All for a fee of $50/mo for the hardware and $25/mo for an unlimited data plan.\nSo that out the rich and the poor on the same level.\nWell now, knowledge and reasoning is as accessible as Google Maps. You don’t have to pay $20/mo for ChatGPT plus. You can use Bing, Claude.ai, bard.google.com, You.com, or perplexity.ai for free. Now.\nSure people hate on bard and want to use the latest and greatest. But even the crappiest of the four I mentioned above (granted Bing/You.com use GPT in the background), is still leaps ahead of where we were just a year ago. If we were stuck only using one of these tools forever we’d still be massively more productive than not.\nSo knowledge and intellectual reasoning is going to be commonplace amongst the plebes.\n\n\nif you value intelligence above all other human qualities, you’re gonna have a bad time\n\n— Ilya Sutskever (@ilyasut) October 7, 2023\n\n\n\n\nMore of the same\nSo…what’s going to happen? Well, I’m not sure human nature will change much.\nThey say “being rich doesn’t make you happier. It just makes you more of what you already were before being rich”.\nAnd so, the mentally poor will remain so. They’ll use AI for entertainment. Better video games. Better, faster content. More consumption.\nThe creatives will be more creative. Nobody will be at a barrier of being silo’d. So what if you’ve only done data science for 10 years. You know coding. It’s easy to now do web design. Or copy writing. Or art. Or…\nAnd I won’t be able to stop the masses from using Code Interpreter to do data science. The systems will only become more powerful, so cloud companies will make it easier to write sql or whatever. Heck, 5-10 years English will be the only programming language. (Who here does firmware/bit mapping anymore? Only a select few.)\n\n\nThe hottest new programming language is English\n\n— Andrej Karpathy (@karpathy) January 24, 2023\n\n\nPython programmers will become like the engineers who create the seeds. And the rest of us just get bigger, better, and more efficient farms. There will always be those who specialize, as there are people who write compilers today, but fewer and farther between. Perhaps intellectual interest and economic incentives will equalize.\n\n\nFestivus for the rest of us\nCompanies will become smaller. But the same human needs will need to be met:\n\nfood\nshelter\nclothes\nphysical toys\ndigital entertainment\n\nMore people will just be able to do more things. Perhaps there will be more prosperity as a result.\nAnd more people will unionize and try to prevent the change. But that’s a short term thing. Can’t last forever. A union is only as good as it’s needed.\n\n\nTakeaways\nGet ahead by focusing on what’s essential. Leverage what’s around you to develop new skills to prepare for the future. And be excited. It’s going to be a wild ride.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "With a proper objective function, machines can do really hard, isolated tasks\n\n\n\n\nthey can walk\nthey can solve complex physical challenges\nthey can play the toughest strategic games on earth and win (AlphaGo 2017, AlphaStar 2019)\nbut can they determine the objective function by themselves?\n\n\n\n\nReinforcement Learning\nGreat article written at Techradar going over the advances in reinforcement learning that allow a robot to finish labyrinth faster than humans. The video does the feat even more justice:\n\nThis stands out to me in a few ways, principally that they crippled the machine to not take shortcuts. It still won.\nReminds me first of AlphaGo:\n\nWhich reminds me of AlphaStar. Here’s a video with commentary on AlphaStar’s performance:\n\nThe thing I connect this video (or some other I watched) with labyrinth is that AlphaStar devised brand new strategies. Players against AlphaStar remarked how they felt like it was indeed being creative. Likewise, Cyberrunner (labyrinth) found shortcuts.\nAll of this points to reinforcement learning as a viable solution to getting stuff done both in the digital and physical worlds. Take, for example, how RL is used to teach a robot how to walk.\n\n\n\nAn AI robot learning to play StarCraft for the first time…\n\n\n\n\nWhat’s the objective?\nThe goal for Super AI will be to figure out what the objective is. If we can marry digital and physical worlds, teaching the systems how to solve objective functions, the possibilities become…super/human.\nThe unique thing about a human, it seems, is that we have our objective function hardwired into us: survive. First this is “food/shelter”. Next it’s social survival.\nHow do humans figure out objective functions so fast? A human looking at labyrinth will know what to do within a second. Does it have interest/patience to sit there and learn it? Does GPT 4Vision have the ability to figure out these objective functions?\nWe learn by objective functions. Minimize wrong answers on a test. Minimize missed baskets on the basketball court. Minimize rejections in a sales funnel. Maximize great conversation and connection at a dinner party.\nHumans learn very quickly. For now, robots are being isolated to specific tasks and their results are impressive. But perhaps to become our overlords all they need is the one objective function to rule them all. Er, uhm, and by “them” I of course don’t mean “us”…\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2022-07-03-when-data-collection-goes-too-far/index.html", - "href": "posts/2022-07-03-when-data-collection-goes-too-far/index.html", - "title": "When data collection goes too far", + "objectID": "posts/2023-12-21-the-dodo/index.html", + "href": "posts/2023-12-21-the-dodo/index.html", + "title": "The Allegory of the Dodo", "section": "", - "text": "Self Surveillance\nI came across this article in Flowing Data and thought it was fascinating.\nI’ve been on a productivity kick lately and notice these apps have habit trackers. I’ve tried using them in the past and have realized it gets too much too quickly. But that doesn’t mean as a data guy that I don’t think it’s a cool idea. It just overwhelms me.\nWe’ll I discovered that me tracking a few habits a day is junior varsity level. Felix’s blog is how it’s done to the extreme. Clearly this guy isn’t worried about Big Tech or Big Government harvesting his personal data. I love the boldness!\nThis is just 1/20th of the full page screen shot:\n\nThe number of slices and views he has is endless. It’s crazy to see everything he’s tracking, partly I’m sure because he has fun with it and the other part because he deep down hopes there’s something there.\nHis quote on Flowing Data has stuck with me:\n\nOverall, having spent a significant amount of time building this project, scaling it up to the size it’s at now, as well as analysing the data, the main conclusion is that it is not worth building your own solution, and investing this much time. When I first started building this project 3 years ago, I expected to learn way more surprising and interesting facts. There were some, and it’s super interesting to look through those graphs, however retrospectively, it did not justify the hundreds of hours I invested in this project.\n\nThis guy probably knows himself in a way that none of us ever will. He can’t ever lie to himself and say “yea, I’m good at exercising every day” because he’s got the data to back it up. But is this the life we want?\n\n\nSelf Surveillance as a Service\nSSaaS? Apparently. Exist.io tries to find patterns in your personal data and tell you when your most happy.\n\n\n\nExist.io\n\n\nWhen I researched the Apple Watch team a few years back I came to appreciate what they were/are trying to do: correlate heart monitoring with insurance claims data to proactively identify preemptive signs of cardiac arrest and other health issues.\nThat seems meaningful in theory because information about other people can be correlated with information about me.\nBut does info about myself correlate with info about myself? Probably. I have cycles. I have common traps and pitfalls like any human walking this earth. Some pitfalls are daily, some are quarterly or seasonal.\nBut I can also take 5 minutes to ponder reflectively or talk to a close friend and identify those patterns. What’s more human?\nAnd what’s more: if you end up changing your behavior then your past can’t really predict your future. So all of the data becomes moot once it achieves its purpose: true lasting change. Because if you truly change your behavior based on the insights you glean about yourself, those past triggers and anomalies no longer affect you in the way they did. So when you experience a personal step change in life, you’re a new you. Maybe not. But maybe.\nAlso, the new generations growing up on smartphones have a unique challenge: their online identities are given to them before they’re really conscious enough to determine if that’s what they want to show the world. Parents posting YouTube or TikToks of their kids are cementing for these kids an identity they themselves didn’t choose. We’ve all gone through phases of deleting Facebook photos from 15 years ago because it doesn’t reflect our current self image. What’s to be said of giving people an opportunity to change if everything they’ve ever said or done is recorded somewhere? Twitter. Instagram. TikTok. Facebook. Every post is cementing us in a way.\nI think it’s better to forget yesterday. Because it doesn’t have to have any bearing on where you’re going tomorrow. It can if you let it. But your past doesn’t have to define you.\n\n\nTakeaways\nWould you rather spend hours setting up digital automatic and manual tracking systems just to learn what you could by opening a gratitude journal every day? Sometimes less is more. I don’t think digital self surveillance is a direction we should go. (Not to mention the moment you do get hacked you’ll deeply regret it.)\nEven blogging can be dangerous for your career. Never know what’s gonna come back to haunt you years later.\nSo I should be careful what I say here, that is if I ever care to work for a self surveillance company in the future.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "The scoop\nThere’s a great kids book, called “There’s a dodo on the wedding cake”.\nSo there’s this dodo, right, who walks in and hops on a cake. The attending violinist then scares it away and is praised for protecting the cake.\nTo the reader’s delight, more animals start appearing and the violinist excitedly protects the cake through hilarious misadventure. (My favorite is when he says, “begone beavers!”)\nTwo funny things happen though:\n\nThe guy soon realizes that all these creatures are wedding guests.\nThe guy has such a big nose and he’s allergic to marshmallows, that when he’s offered some cake he sneezes and the cake goes flying.\n\n\n\n\ndodo on a cake\n\n\n\n\nMorale?\n\nWhen you praise someone for doing something good, they do it again and again. → There’s a natural hero inside all of us.\nBut only the first animal was a problem. The beavers were the chefs. So he ends up creating all these problems thinking they’re problems. → In tech, when you fix a bug you then think other things are bugs and go off fixing those too. No, just do the first. Then check in.\nThe irony is that, despite saving the cake, he sneezes and ruins the cake. → Despite all the effort, the greatest protection to the cake was him staying away from it. Sometimes by trying to solve a problem we can make things way worse and create all these problems. (Politics? Create problems by creating solutions to problems that need solutions.)\n\nDon’t mistake a beaver for a dodo. But don’t mistake a dodo for a wedding guest.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { - "objectID": "posts/2023-12-19-how-to-encourage-your-kids-/index.html", - "href": "posts/2023-12-19-how-to-encourage-your-kids-/index.html", - "title": "How to encourage your kids", + "objectID": "posts/writing-is-enlivening/index.html", + "href": "posts/writing-is-enlivening/index.html", + "title": "Writing is truly enlivening", "section": "", - "text": "Foster talent by:\n\ncreating stress free environment\nfinish before they’re tired\ndon’t pamper them at the country club\ntreat them for 10 minutes after\nno need to teach. Kids will figure it out\npeople who are great don’t necessarily love what they do, but those who love what they do will be great\n\n\n\nThis from Padraig Harrington should be required viewing for parents. Some really great advice.pic.twitter.com/ExE5rZpg7a\n\n— Kendall Baker (@kendallbaker) December 18, 2023\n\n\nI love it.\nThis is probably good management advice in any capacity.\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." + "text": "Hamilton is running out of time\n\n\nI’ve been writing for my whole life. I have at least 15-20 journals. I have 3000 notes in one app, 2200 notes in another, at least 1800 digital journal entries over 10 years, I’ve built and replaced probably 5 blogs. This blog has 57 entries so far. What have I learned?\n\nMake writing daily as easy as possible. I set up some automation so I can write from my phone for daily blogging.\nWriting makes things feel real for me. It helps connect the dots. It’s a far more productive way to read the news. Less stuff, more thinking. Because if I can’t write at least one useful note about something I read, I realize it wasn’t worth reading.\nPerhaps reading is the more important daily duty. Well, to write I need something to inspire me. Usually that comes from the news. Sometimes inspiration comes from yesterday’s post. This inspiration came from editing my prior post.\n\nI’m not gonna worry about who reads this. But instead focus on writing every day because…\n\nI think it helps me practice storytelling\nhelps me practice communication\n\nHamilton wrote like he was “running out of time”. I’m writing because I want to use my time how I enjoy it.\n\n\n\n\n_________________________ For coaching on data analytics or machine learning, reach out." }, { "objectID": "posts/2022-12-23-who-do-you-want-to-be-known-for/index.html", diff --git a/docs/sitemap.xml b/docs/sitemap.xml index de4270f69..99cb7b149 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -2,242 +2,246 @@ https://www.bryanwhiting.com/christianity.html - 2023-12-26T19:24:17.760Z + 2023-12-26T19:39:39.762Z https://www.bryanwhiting.com/posts/2022-06-21-the-power-of-party-pay-by-visible/index.html - 2023-12-26T19:24:17.980Z + 2023-12-26T19:39:39.982Z https://www.bryanwhiting.com/posts/2022-06-28-pomodoro-principles/index.html - 2023-12-26T19:24:18.008Z + 2023-12-26T19:39:40.010Z https://www.bryanwhiting.com/posts/2022-06-28-increase-focus-through-writing-down-everything/index.html - 2023-12-26T19:24:18.008Z + 2023-12-26T19:39:40.006Z https://www.bryanwhiting.com/posts/2022-06-21-products-for-dads/index.html - 2023-12-26T19:24:17.976Z + 2023-12-26T19:39:39.978Z https://www.bryanwhiting.com/posts/2020-12-16-pretotyping-ml-solutions/index.html - 2023-12-26T19:24:17.976Z + 2023-12-26T19:39:39.978Z - https://www.bryanwhiting.com/posts/2023-12-21-the-dodo/index.html - 2023-12-26T19:24:18.076Z + https://www.bryanwhiting.com/posts/2023-12-19-how-to-encourage-your-kids-/index.html + 2023-12-26T19:39:40.070Z - https://www.bryanwhiting.com/posts/2023-12-25-ai-robots-are-mastering-tasks-faster-than-humans-/index.html - 2023-12-26T19:24:18.080Z + https://www.bryanwhiting.com/posts/2022-07-03-when-data-collection-goes-too-far/index.html + 2023-12-26T19:39:40.026Z - https://www.bryanwhiting.com/posts/2023-12-13-learn-by-doing/index.html - 2023-12-26T19:24:18.052Z + https://www.bryanwhiting.com/posts/2023-12-12-future-of-coding/index.html + 2023-12-26T19:39:40.054Z - https://www.bryanwhiting.com/posts/2022-06-23-the-best-todolist-manager/index.html - 2023-12-26T19:24:17.992Z + https://www.bryanwhiting.com/posts/2020-12-18-productivity-notes/index.html + 2023-12-26T19:39:39.978Z - https://www.bryanwhiting.com/posts/2023-12-21-github-copilot-levels-up/index.html - 2023-12-26T19:24:18.072Z + https://www.bryanwhiting.com/posts/2018-07-02-semantic-versioning-for-data-science-models/semantic-versioning-for-data-science-models.html + 2023-12-26T19:39:39.974Z - https://www.bryanwhiting.com/posts/2017-10-19-used-cars-analysis/used-cars.html - 2023-12-26T19:24:17.968Z + https://www.bryanwhiting.com/posts/2023-12-15-prompt-techniques/index.html + 2023-12-26T19:39:40.062Z - https://www.bryanwhiting.com/posts/2020-12-15-data-beats-opinions/index.html - 2023-12-26T19:24:17.976Z + https://www.bryanwhiting.com/posts/2022-11-12-what-is-a-model/index.html + 2023-12-26T19:39:40.030Z - https://www.bryanwhiting.com/posts/2022-12-06-more-new-businesses-than-ever/index.html - 2023-12-26T19:24:18.036Z + https://www.bryanwhiting.com/posts/2022-12-15-chatgpt-rshiny/index.html + 2023-12-26T19:39:40.042Z - https://www.bryanwhiting.com/posts/2022-06-20-blogging-with-quarto/index.html - 2023-12-26T19:24:17.976Z + https://www.bryanwhiting.com/posts/2017-02-10-ggplot-plotly/ggplot-plotly.html + 2023-12-26T19:39:39.950Z - https://www.bryanwhiting.com/posts/2023-12-16-humanity-and-ai/index.html - 2023-12-26T19:24:18.068Z + https://www.bryanwhiting.com/posts/2022-11-18-substance-over-style/index.html + 2023-12-26T19:39:40.034Z - https://www.bryanwhiting.com/posts/2023-12-24-twas-the-night-before-christmas/index.html - 2023-12-26T19:24:18.076Z + https://www.bryanwhiting.com/posts/2022-11-18-writing-a-tech-resume/index.html + 2023-12-26T19:39:40.034Z - https://www.bryanwhiting.com/posts/2022-07-20-de-sciencing-data-science-and-talking-like-a-normal-person/index.html - 2023-12-26T19:24:18.028Z + https://www.bryanwhiting.com/posts/2022-06-23-new-ideas-are-distractingly-exciting/index.html + 2023-12-26T19:39:39.990Z - https://www.bryanwhiting.com/posts/2022-06-25-how-i-use-ticktick/index.html - 2023-12-26T19:24:18.008Z + https://www.bryanwhiting.com/posts/2020-12-15-calendaring-todos/index.html + 2023-12-26T19:39:39.978Z - https://www.bryanwhiting.com/posts/2023-12-15-llms-can-find-a-needle-in-the-haystack/index.html - 2023-12-26T19:24:18.060Z + https://www.bryanwhiting.com/posts/2016-11-07-starting-with-jekyll/starting-with-jekyll.html + 2023-12-26T19:39:39.950Z - https://www.bryanwhiting.com/gratitude/2023-12-25-grateful-for-doctors/index.html - 2023-12-26T19:24:17.928Z + https://www.bryanwhiting.com/posts/2021-07-17-authors-angle-matters/index.html + 2023-12-26T19:39:39.978Z - https://www.bryanwhiting.com/gratitude/2023-12-24-light/index.html - 2023-12-26T19:24:17.928Z + https://www.bryanwhiting.com/gratitude/2023-12-26-i'm-grateful-for-blankets/index.html + 2023-12-26T19:39:39.930Z - https://www.bryanwhiting.com/lists.html - 2023-12-26T19:24:17.936Z + https://www.bryanwhiting.com/index.html + 2023-12-26T19:39:39.938Z - https://www.bryanwhiting.com/christianity/2023-12-13-three-little-pigs/index.html - 2023-12-26T19:24:17.760Z + https://www.bryanwhiting.com/christianity/2023-12-24-the-christ-child/index.html + 2023-12-26T19:39:39.766Z - https://www.bryanwhiting.com/christianity/2023-12-24-he-is-the-light-that-we-should-share/index.html - 2023-12-26T19:24:17.760Z + https://www.bryanwhiting.com/christianity/2023-12-17-christmas-celebrates-a-living-christ/index.html + 2023-12-26T19:39:39.762Z - https://www.bryanwhiting.com/books.html - 2023-12-26T19:24:17.760Z + https://www.bryanwhiting.com/about.html + 2023-12-26T19:39:39.746Z - https://www.bryanwhiting.com/book-reviews/2023-12-20-the-little-red-hen/index.html - 2023-12-26T19:24:17.752Z + https://www.bryanwhiting.com/lists/ai/index.html + 2023-12-26T19:39:39.942Z - https://www.bryanwhiting.com/book-reviews/2023-12-22-the-killers-of-the-flower-moon/index.html - 2023-12-26T19:24:17.752Z + https://www.bryanwhiting.com/book-reviews/2022-06-24-getting-things-done/index.html + 2023-12-26T19:39:39.746Z - https://www.bryanwhiting.com/book-reviews/2023-12-23-the-best-of-edgar-allen-poe/index.html - 2023-12-26T19:24:17.756Z + https://www.bryanwhiting.com/book-reviews/2023-12-18-hitchhiker's-guide-to-the-galaxy/index.html + 2023-12-26T19:39:39.750Z - https://www.bryanwhiting.com/book-reviews/2023-12-12-scientific-freedom/index.html - 2023-12-26T19:24:17.748Z + https://www.bryanwhiting.com/book-reviews/2023-12-23-dune/index.html + 2023-12-26T19:39:39.758Z https://www.bryanwhiting.com/book-reviews/2023-12-19-101-essays-to-change-the-way-you-think-by-briana-weist/index.html - 2023-12-26T19:24:17.752Z + 2023-12-26T19:39:39.754Z - https://www.bryanwhiting.com/book-reviews/2023-12-23-dune/index.html - 2023-12-26T19:24:17.756Z + https://www.bryanwhiting.com/book-reviews/2023-12-12-scientific-freedom/index.html + 2023-12-26T19:39:39.750Z - https://www.bryanwhiting.com/book-reviews/2023-12-18-hitchhiker's-guide-to-the-galaxy/index.html - 2023-12-26T19:24:17.748Z + https://www.bryanwhiting.com/book-reviews/2023-12-23-the-best-of-edgar-allen-poe/index.html + 2023-12-26T19:39:39.758Z - https://www.bryanwhiting.com/book-reviews/2022-06-24-getting-things-done/index.html - 2023-12-26T19:24:17.744Z + https://www.bryanwhiting.com/book-reviews/2023-12-22-the-killers-of-the-flower-moon/index.html + 2023-12-26T19:39:39.754Z - https://www.bryanwhiting.com/lists/ai/index.html - 2023-12-26T19:24:17.940Z + https://www.bryanwhiting.com/book-reviews/2023-12-20-the-little-red-hen/index.html + 2023-12-26T19:39:39.754Z - https://www.bryanwhiting.com/about.html - 2023-12-26T19:24:17.744Z + https://www.bryanwhiting.com/books.html + 2023-12-26T19:39:39.762Z - https://www.bryanwhiting.com/christianity/2023-12-17-christmas-celebrates-a-living-christ/index.html - 2023-12-26T19:24:17.760Z + https://www.bryanwhiting.com/christianity/2023-12-24-he-is-the-light-that-we-should-share/index.html + 2023-12-26T19:39:39.762Z - https://www.bryanwhiting.com/christianity/2023-12-24-the-christ-child/index.html - 2023-12-26T19:24:17.764Z + https://www.bryanwhiting.com/christianity/2023-12-13-three-little-pigs/index.html + 2023-12-26T19:39:39.762Z - https://www.bryanwhiting.com/index.html - 2023-12-26T19:24:17.936Z + https://www.bryanwhiting.com/lists.html + 2023-12-26T19:39:39.938Z - https://www.bryanwhiting.com/gratitude/2023-12-26-i'm-grateful-for-blankets/index.html - 2023-12-26T19:24:17.928Z + https://www.bryanwhiting.com/gratitude/2023-12-24-light/index.html + 2023-12-26T19:39:39.930Z - https://www.bryanwhiting.com/posts/2021-07-17-authors-angle-matters/index.html - 2023-12-26T19:24:17.976Z + https://www.bryanwhiting.com/gratitude/2023-12-25-grateful-for-doctors/index.html + 2023-12-26T19:39:39.930Z - https://www.bryanwhiting.com/posts/2016-11-07-starting-with-jekyll/starting-with-jekyll.html - 2023-12-26T19:24:17.948Z + https://www.bryanwhiting.com/posts/2023-12-15-llms-can-find-a-needle-in-the-haystack/index.html + 2023-12-26T19:39:40.062Z - https://www.bryanwhiting.com/posts/2020-12-15-calendaring-todos/index.html - 2023-12-26T19:24:17.976Z + https://www.bryanwhiting.com/posts/2022-06-25-how-i-use-ticktick/index.html + 2023-12-26T19:39:40.006Z - https://www.bryanwhiting.com/posts/2022-06-23-new-ideas-are-distractingly-exciting/index.html - 2023-12-26T19:24:17.988Z + https://www.bryanwhiting.com/posts/2022-07-20-de-sciencing-data-science-and-talking-like-a-normal-person/index.html + 2023-12-26T19:39:40.030Z - https://www.bryanwhiting.com/posts/2022-11-18-writing-a-tech-resume/index.html - 2023-12-26T19:24:18.032Z + https://www.bryanwhiting.com/posts/2023-12-24-twas-the-night-before-christmas/index.html + 2023-12-26T19:39:40.078Z - https://www.bryanwhiting.com/posts/2022-11-18-substance-over-style/index.html - 2023-12-26T19:24:18.032Z + https://www.bryanwhiting.com/posts/2023-12-16-humanity-and-ai/index.html + 2023-12-26T19:39:40.070Z - https://www.bryanwhiting.com/posts/2017-02-10-ggplot-plotly/ggplot-plotly.html - 2023-12-26T19:24:17.948Z + https://www.bryanwhiting.com/posts/2022-06-20-blogging-with-quarto/index.html + 2023-12-26T19:39:39.978Z - https://www.bryanwhiting.com/posts/2022-12-15-chatgpt-rshiny/index.html - 2023-12-26T19:24:18.040Z + https://www.bryanwhiting.com/posts/2022-12-06-more-new-businesses-than-ever/index.html + 2023-12-26T19:39:40.038Z - https://www.bryanwhiting.com/posts/2022-11-12-what-is-a-model/index.html - 2023-12-26T19:24:18.032Z + https://www.bryanwhiting.com/posts/2020-12-15-data-beats-opinions/index.html + 2023-12-26T19:39:39.978Z - https://www.bryanwhiting.com/posts/2023-12-15-prompt-techniques/index.html - 2023-12-26T19:24:18.060Z + https://www.bryanwhiting.com/posts/2017-10-19-used-cars-analysis/used-cars.html + 2023-12-26T19:39:39.970Z - https://www.bryanwhiting.com/posts/2018-07-02-semantic-versioning-for-data-science-models/semantic-versioning-for-data-science-models.html - 2023-12-26T19:24:17.972Z + https://www.bryanwhiting.com/posts/2023-12-21-github-copilot-levels-up/index.html + 2023-12-26T19:39:40.070Z - https://www.bryanwhiting.com/posts/2020-12-18-productivity-notes/index.html - 2023-12-26T19:24:17.976Z + https://www.bryanwhiting.com/posts/2022-06-23-the-best-todolist-manager/index.html + 2023-12-26T19:39:39.994Z - https://www.bryanwhiting.com/posts/2023-12-12-future-of-coding/index.html - 2023-12-26T19:24:18.052Z + https://www.bryanwhiting.com/posts/2023-12-13-learn-by-doing/index.html + 2023-12-26T19:39:40.054Z - https://www.bryanwhiting.com/posts/2022-07-03-when-data-collection-goes-too-far/index.html - 2023-12-26T19:24:18.024Z + https://www.bryanwhiting.com/posts/2023-12-25-ai-robots-are-mastering-tasks-faster-than-humans-/index.html + 2023-12-26T19:39:40.082Z - https://www.bryanwhiting.com/posts/2023-12-19-how-to-encourage-your-kids-/index.html - 2023-12-26T19:24:18.068Z + https://www.bryanwhiting.com/posts/2023-12-21-the-dodo/index.html + 2023-12-26T19:39:40.078Z + + + https://www.bryanwhiting.com/posts/writing-is-enlivening/index.html + 2023-12-26T19:39:40.086Z https://www.bryanwhiting.com/posts/2022-12-23-who-do-you-want-to-be-known-for/index.html - 2023-12-26T19:24:18.044Z + 2023-12-26T19:39:40.046Z https://www.bryanwhiting.com/posts/write-despite-ai/index.html - 2023-12-26T19:24:18.084Z + 2023-12-26T19:39:40.086Z https://www.bryanwhiting.com/posts/2022-06-22-downstream-impact/index.html - 2023-12-26T19:24:17.984Z + 2023-12-26T19:39:39.986Z https://www.bryanwhiting.com/posts/2017-10-18-used-cars-scrape/used-cars-scrape.html - 2023-12-26T19:24:17.968Z + 2023-12-26T19:39:39.970Z https://www.bryanwhiting.com/gratitude.html - 2023-12-26T19:24:17.928Z + 2023-12-26T19:39:39.930Z