From 94d18f925364c30d27cae6a8eddf061536646721 Mon Sep 17 00:00:00 2001 From: Erol Aliyev Date: Wed, 13 Jan 2021 18:58:48 +0100 Subject: [PATCH 01/71] Trying to add new pages --- src/Hosted/.vs/Hosted/v16/.suo | Bin 0 -> 14336 bytes src/Hosted/.vs/VSWorkspaceState.json | 6 + src/Hosted/.vs/slnx.sqlite | Bin 0 -> 331776 bytes src/Hosted/Hosted.fsproj | 1 + src/Hosted/Main.fs | 22 + src/Hosted/careers.html | 641 +++++++++++++++++++++++++++ src/Hosted/consulting.html | 377 ++++++++++++++++ src/Hosted/research.html | 187 ++++++++ 8 files changed, 1234 insertions(+) create mode 100644 src/Hosted/.vs/Hosted/v16/.suo create mode 100644 src/Hosted/.vs/VSWorkspaceState.json create mode 100644 src/Hosted/.vs/slnx.sqlite create mode 100644 src/Hosted/careers.html create mode 100644 src/Hosted/consulting.html create mode 100644 src/Hosted/research.html diff --git a/src/Hosted/.vs/Hosted/v16/.suo b/src/Hosted/.vs/Hosted/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..57213928db0bd3cc13109e1eca6b7576a624be62 GIT binary patch literal 14336 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
  • Qg7dzu|BTQ5R>)?n?XZu=D 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 HRl_2Z82IXHOT;l^n32XNaabbF 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%0A|7O1h1dkLTN*`8Z%|jXXQk)WJF$}D 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

    o%;Z+WYb?vHkNW_icAhp3&ZHUnUr}J=2 z%4GxAB^`RtxKuXX4L{K1Fd6D=Z{{JrvzgH`x|)8E&?Kt5{zNdE4-W1tET?}PC7q9XG@ zGk=5wxAw;m`Hy(rfht^1wLgj?{6{#MYJU{<`H%1{)&3~2&wqpmsrE-HDg1GO3UASa zO!V~BV@9j+3#IT4ZLrIO&q6rR-qy%b%>JILm|-fsLdhj@*^F+Vja1?w$Y`6-qPYyC55pfJ34pQOfNp*@WljdhqKN+pUsgsorAjeg0 zZ8!pRAr4>lRO&0ERQPd{e`T}{!P+|E(#UbJ(w`4g;k!v1MZ>jlT%fQA>CZ-~@Z03y zHiep_$mB`^VsxL6P~p2tkq>KGON zloZFHIndA&sz=zK)^IDbq3T~~xC&oMdT1ybM({oAt(meqOofBwar7Z11mR2-s0&hj zq0Bdis&I@Pg>N(*wm-_V)>KX~%ku$7c>RZFq)zl#D)^ylE^8=~R#;B{LlyU_BOMPdwx>DMt zA>|PZr4tQ`a2Eph^*L%(thS;Rtn-lway&idv)l zbfWQ7idUoibb|3yid3Wfbi9134aof5+fvURu2#tipnXb@)qPlL_>i8O{&1vPk>iEZ zACFMWjY=6Lk5J2upBhAuP)m)U(hH>}AEA~=O-k@i6d2-HQB6@mylYY~HbyO`R!tp} zLVWVK;H^R#AkyDCTs=WzHe`}SbQd&QEusO!Zq0nDyBvQyI#IWXq8Wvbmu_YV^~AM- z2u)fT4D~n}j11q=0vM&fg3OLIUKzfk#V<;IrH6=7@|9jAM#Lp@S>PttZ z%Sa!*)S!7U5u;K{^&BxO^}HS7q&*^zJ!gl*rLVjH;1#ctxt( zhp3}uc%%qY)QZ!e3{ywS8r2A}` z{xfOrLLfz7CCH2#hS~Kb#BI@Weq$E=x4ps-ta-G#Nr~f`oJy;$W zZRPYty<4d|89tSkd$VmO-eKU$w+m83|XxaZKgEH z9HshXj%h}+4TKO&#hgtkbhzr3CY&`_8H5Z|J@Q5}gBU(LOm%10DXGAjhHs2kUDCVt zlZdfc4p*I`MLJ5KF4S#G)k9PV$^el}u*wd#wnYz1eQ>a9M@8TRe#i8m2dXw~2k>WT zlm6py)r$H?$di^pM@>MBjhhlQRJGte@nIvJ(u`rxhO3JFP9J7B^}FG!Sw7SU+)aHr zS}jChgHU>XDxgg0-PBho{$Hi(S`%*mpY#3Hca5*hx6wD(=fDmAHQuOqwRa*i{r%JP zkmn@#zugzPk8}Oj)#;k-DsX<+xy=+@58YFK@g!Jxum-A1`yVR*#pb>a7o48sV#TN5Vt_BF9}BK5HSCzV1| zEQ+laxvsv*t$^nz)-GATR<(_R7VJ-;<&xMMk>=ZXX{6n%*y=u(C2Ts`(Uj6KBRMlp z1mMl*XQw4BYqlZ)6dST(`$c8Bs*h#acd4Xpb!?@`_4oGnumeMoo`AnT5XE@_Yt|GD zAXu*6n28K7;hH1m4YfDMR*3kL10bICpAuW{pq9I>cllLDukBKQ85EorTgJa{->ct~ z1}DXq$}7UjujjslutG@kOu-qVNaY=+lP-U_-d`W3kfAUKCEGO=CM-kAY>^@!QvojN za{=zDbPiFnGPYPAFsu*i!)%boO~gk*oQKqMD7XXj65{@1J?p2O;?R0^Y>@~ZwcmtN zQ8&aEir87bi_MBC71ctjp=lxvWJ^1ubZf3;G%#S+MEqCofe3z$7YM}`$dl$B*eB6j zZHmp8XO->!vufHyP3&A9@V9Lb^Zdiz5^s&S3B=~f6RHl(6X-1#$L7j2Fw^zi4T|A0 zH^ConMKsRPPAdH^2oxt1z8FVS3tAeRBjOI)58_C_&9T`cu%ZtFk=R~mT-p|fXD*Tq z;0QF_j80pp*BFuSso-fQsfo>!M@%?CkD&LM9-GMn*7n|?QDXE=F2>kgMd6TU#%8dH zQ}$K_>9H|3U0$}=ksWb&FwNBk>jUiwAxDe;wn#f2y36#&;~`2A0S~c$XbsT7M=`86 z$ENkU!uH|;^bRM+rphCZ>7^u)(z>*y1pDWvx`-e4_w*k%$Ry>5#)x}>!zB#m^%y^p z;IW0G=Qr1#6q_Qldz%*aSTBatrASP;@=5EJ5OMMd@XL-QD6$Cle z2GF*(fqPwSlE^)xFD24fxuo&<*hFr04Sf(y*69rhZlEbOF*bpJx^+)~DkU|(?)k@w3k@gl{uSfl^i&gc#r1~tEG_H+RisVUsdEfE8pa|{=*0yuF#As^}0~D4O z!9b*`)87&GH_Xm8C5U4%Rv}NBcHo{uZ?h>@F3;(0cB7UG_i>8yh~*=;AYAy! zlYkL{W(kfDu{GFbQ96gjPT=nz zC6C6aLwQ|D%E(v|e{zEU6F*0$r;m@0`T1j6EFm)kHWby`^39ODVqENaoi^GRX`Mvb zi?Z@qOpP7K-(6!u3JDKdRrN}QszvsuYE&F9-h$WwmKBv$YavjPFGBnL)EO~P!CVB6@}SpK`TfOVNz-7})C z_?RNh4vihdUy<6-ePzvpk+GxsBPmDSN0LNlaO^1ELo*)_j2+2;mp${6KxAuOs9|vI z2;G;pDo0We+W%LWPB$Uz-$vh|u-?DUTjO=%p1;vE5?1sb?kd-3u6tcOT@#$2Ie+Rr z-8lyL_@_Cl?C;vYZQo!&*!C+}dRJLLu-;@n**ehjE7)mIRQ|2pr-YTG&99g*Hcu^l zx3H<;y@Kx)Y$_ON`XwHv`)6)kn=T5Zsqp?joz{i+^%ZEz6LJI=tH?M{Q9qa;*X9T0 zLrAakx(VtQGXncYJ|JjquR%tIM%)NC*DZ`sly2+TM^U8Lthh`Or{$9cr<;<>9PgJ2 zWCxYz##9Q}4RYtA^S%nX*oBpO&dK_Hu^=5HdCw%e+cE~$4jLl=j{{am?e4@ zBs!IdsQfx{Sjuhz01=qd(30oJi+j_lFM>#?$#I!~@;4^Tt2u@a{Efm4PmRkY70p|7 zJ^Y-WKPxWNSpKd}^LqDcGREqh8$Z7HlI=~5RMByJEvO_jm{PMjw)ZN^qmfRK=rpc( zov={p-fXJirmAy>n;#$ByH33el4_IrwufpPUz%GbokDZtNB8<>y^4_{I;wX;Ih%21 zb`c%fYY|cKx9(+a5F|w;YlWVQDA%}wiOf($hxg&latuFuF;YZhdKZLgqx+lD4S-Ig z`SH=c7g6tmq=*jVp+ ztMU;r6tf!dzuC@FRQ5-4S%R$tbleahDWb>aA1L=qH0eDtK7xxe|8fLs=Ndz41fLuq z&Oh#90?7AcdiLb_uwH+TE2ZvLSfb4zL;2@D%pa9`e=g4-();tvaz4L==dVM0e}2B7 zOW6-*0X>y{uCQq(^z_N`gL_v#SH+bS(X*Gu2T7yKzY;61K&1NZnIMFzg8~XOfsI`~ zR$%(Ry&^tPB<5d(wtvvIbynW>u0h| zn-X{Pul4t6SudLR*Yb2%Z%?NX205Ni&3sDS+1u0e{+gb?B<_$R_2qwg3d3CQ#{q4m zla7zlS5|boCkIY}nov`yjWUHUi`zwB5B;X^@<>D4{|`64Xo8Qw*L$|-f1Z&0758-4 zeJ;hh*zs$}dix9ZWwuvsv#r-!KC!G(?o?dnjfLMUv=po{y@)u0lYJGwBHuB-(Y|56 zfj*Z{@&4EQvG*T{1MnyB%iia_PkMjhebD<8L<0Dp_Xh7byq9{<^CrA!AQr$j?-p;Z zx7xeLyVN@m(EuiROTEW=kMxf69^&;O9zcQTGuR!x>-mf4HP4HP2=FVEU|1au*S8fdowK?Kf8soA z`0W;?=2_K=JLhKlBK<#X5+c|hN0qMQld><|wWyDeA3b)*_{wpahmBs#TkO%RIKm_y zgiNTO6>e^B$BBMt^^#RH>0T}K^=kRL_U)B{o#9C4!?fc3_agWNgc@2_Q_8utzN3?} z=iF7+M}7C8xI`O1*QdiYTraoO;o7RSs5q~Rc+=Jpj)&<4uyH5CO=vj+n^14}Yuh3~&^i|T3 z`V+=_BsflMctp}K8sbj)D^S<75I|RJoQ6(+cv6l>cHsp5E1@P`m9$F+uuNeNPRiNK zF07pTQA?U~WK5scPRU!^)=E09v|{0;c9gT?KbO#)iROf{xJRGXC$@rA}kyCbA?oET_|hvS_gBB@b=6Q(3(7k`&ZYh{j0%( z#fw8NTctqK>kjyLwMLcGliHaSHpKn&(wZ{qL8Uw?hgrK$>Z1mGw(Ow=P`IV4dco{D zyci0%%tTq{k=+1ajj2So2)mTMg)l~@by zxz>frBczFK@1xdzU$o_E?O%|SGSyof^A4gm(j|W zJWSRBxY_9^tx#{;_Gxt(8B^2MWlCzNq0#Z>YA`lZ3@vVM~h_AaAN=eXUDHizJL2Z^!?rUCgK3R;QI~Y|NYE& zpYKlJt-kO0uJv7k(}CT-UA|L%ZN6q-y>Am@0Iu*Y{0i^?$9l$ihI38 z4EQ(q8#vi`-u;yOG514=4frGXE$(l-uR-*J^W7?<19rM2?yc@R_sQyL;L_*>T#uAjT^cm3FPo9nxX5_pyCV%IsY znCmoGhbxRYfdSVB*DBXy*BsYWR}~@!j&mLE8sR$F<#Ab^|3j?651j8f|LpvO^LNgt zoxeo1z^gEAs9)_5K z2RWTiv*UBezZ~y5{)(u9zjr)~^O{E;4><02{1A~Au6JDRxWsX;Bknleu^o{ELyj89 zNsiTyC62j{X^0(I;yBiEgkz**u*2)HA$s7y?H}6zZhzDMDo%WUgZP0zv)^aG(|)V{ zJN9esS0IAmZu>6#DfTvdv%TKF2{8m$*caMo*(cj8>_zrt5Jhm9eW2ZCS8V^aeQf&& z;sgH4_Ok6c+mp6m*dDa~1d##1XS>1n4cn!*^K1#*8Hf$I&9=o>Ypb@cu`RXDLkz(Q zwo==1wj*t$Y=_u~{mlAL>$}#!SYNZgh*%K6vOZ${sr4@F4`6BXEyO3h$a=Q* zEbFP(c592Z0TBvMw63%+vd*?nL9~by5La-Fb+~nq)ory{zQD=V`Rnmh&wttX4WL5zAIfo#kZ9TFWxT7o1_4XeqNCk606jT83B# zSR9r@*ZzY4u2^cSHwh5jt`hR~mcUKjeK&}%}k3jIOo6`_}felPTr z(2GJZ2>njzd7mSJwiVbx?AYSLU#$>DRhU>kA!X)`k~NmLO&3?Rp|Rd zw+MYt=w_ks3f(019ibbAzAbcv(Dg#s34KfGTA^XuD8{P`gl@P*f-)v`wg0C@j<>)GX8_v{h(}P)Mjzs6nV+C@54XR4Y^? z6cE}hv`J{A(8)s8LMI7r5IRw4z0f+LwL)uzRtv2XS}C+bXt~fbp`}7ggcb`e5?Uy< zKxn?uJfXQlbA)CK%@Ud^G(%{*&@`c`LQ{k$3r!N5C^SK6yik=;rBH=XxloxXD6dEBkTxgik zP@y40hX@T8I#_6s&_JPsga!!tguFr?A-9lA$SLFyvJ2UStU?wcMaV2vC{!S1Vk-Qf z&=*4g75ZH0KSG}g{aff$p-+T97W$XaM?(J;`cUWtq4$OUA@rWm{|UV-^mn0mg#IS< zw$NXN-V*wY(3?Vk7J5VIPeQK?{ZZ&Op;v|eAoPmR%R;{wdP(R-p%;XHC-l6~b3)Gw z{Z{B1q2CBSE%cPolS021dP3+|LXQjmQs^XS|PMtXqnJbp(R3#g%$}d6j~rOUud4tT%kEavxQ~} z%@mp;G+k(#&{Ux*LX(9i2~8B5AT(a6N~lt(La1D*OsG_-M5tKk1fe1!ztHhQ#|a%P zG)`!&&@nPJ%B3p9#Jc zyaRj*xD|XcxDk92cr*Ay@OtnC;N@Us1t^>kJ`X${d@guA_#ALC_-yc4@NV#Ea1uNe ztbzxC6JR?y4mN>f7*sz6p9Ov&ybJs`xC{I`_)PFi;4{F_fZ-EW@HiOO#03w7PX*rt zJ_UR`cqjN~Fx{zM2i^g`5=<9A7lJ#$Nic#%6r2fe1MdLSL3%4V0&WD;srF`YD|kJa zE((`}Tfpaq!9Dhr!k0d%(CxG~Eu~0KOS~BKSJ+dhnItb>IuZ zYr#n{EQ3sEf>(ogfN}SVY!9C+E5VK672wU_<>2+;W#HxDrQrEsoVlB(gBOFxgJHd8 zDh4kEj|DFPj|R^N4+YNy4*<^v+rhGSP-N|($l5`XwSyvS2SwHnimV+JSvx4Qc2H#P zpvc-mk+p*&YX?Qv4vMTD6j?hcvUX5p?V!loL6NnCB5Mal)((oS9TZtRD6)1?WbL5H z+Ch=EgCc7OMb-|AtQ{0tJ1DYtP-N|(9KlNn<#3@fLZgKa6FO9Al+Z|_5kkX-h6xQ7 z8X|Ov&|sm1g$4-?6go&~fRInfE94P!3%P`xLJlFjkWI)cWD!z?%tD1i1wtk!^Z$gt z5c;ps=R*Gx`b_BGLZ1qKBJ{D)zl1&#`lrx`LLUgdFZ2(g_k{jW=v|?|3%w)sH=(zM z{wnmA&|ie!6#BE!8$y2)dR^#`LazzED)a}TSA<>``n}LgLN5xvAoM$-=Y^gVdRFMS zLeB{OM(Amwr-Ysq`nAv#LcbDvTp_tHFLc4^zgw7N?L+Es&(}YeHIz?!wP^Zuiq3uE)LhV9r zLQ$cJ&^Dn~p|DVkP_s~z&{m->LLs3>p$4IPp`cKmP_0mnP(Wz2&?cdcLMIDV3!Nmi zLFh!G^+M}})(Wi=S}n9nXr<5!q2)r$gq8{|5n3#?NNAzZ0-^ar^MvLK%@LX{G)riv z&Tju1LrXpGQkp~Hj@6&fWpQfP$GaG_yBLxqM29U?SX=wP8iLIZ^k z5*i@n6Y>gqgxo?dA*YZ-$S!2_VCgc#bf(F7wfA%HS)P|Y)7){_o363WR>x0pE4jUOmz)U4i;68>93-JzXKhCz)qh%I_AQeCP;yta#_C(O&%=TA%Ii=R2&;CW>nJp zdM@4UN%2P9W$sViG&9Bpa3InRK)$5-G4493KXlP-C}#&-gDvo?tL@BHJcUWk4U&!< z`ei(#suN@1bn`wXsrgUte}}F-gCZ%Bo)-or#o=;SU&q2dvusXT2y1ry)iV*lC}YI8 zB+vpw*Sew^^%Q$ErBg#vbJv`avsyS(OEps0kdbV(I^#)Ogt(qK#H=nasw}E1DlZl&MMOJ|>zQ#E$Rg9#`O_cZUj zy(_JB2^rnrQpJTA(iI~9SJ8q6tGW%FWl5Llio>NoweG#sHC3}|owFKv^#Zu)MB2ED zv$f8Ak}2Yfq*K(!nb}uQZE?@gy;4T;@}#)L9v~lqR8LBmv#v17fm8fRa`_Fgn`HLK z8NJ6R#r1X<4mH1m1)k&8GP;jS+N81g52)@KF?D_zMYAbZbc9@HwGk#=C#jE8Ls?g4 z(kcq#MEI*$xY~>4Y|cZH7SVjn0nxmVE-&2Qs-@SZ3-zd^BC1U}AgXomX$B``@oHHe z3^cC}M%#3~F!iT&^Xy2PSDu3OArL&i^IKpy=hmQERbTEkiYu&s#w+|JYl*FWdA?QG;U8+5UumlI=FzC~MO4s-;AUn_n~+7k<0YR&a*tY16EN z7YZ&Z=&~hEQjC4w1ntjaG`vlhUp+%q!Bx%y97xh_%((K9Hc!5+GjIpn84c-&L;auA z#owi*w)e?Q*E6if*{FK7f^)TA~@d zY1TfZ>j?D}QKpA(xesgGJ`VW#yaiXMB2XNw?i4j~M|l9sY#-IkcECjPOVRdA*)a6% zfZ1Kw9bclZ+U7<#%cZtEx#D^pqiz>nbMF!RXCtQ5RdXKArRqUyhp0OEfHc_DY9)6k zPnF@!AWUX-N1z_HU6jH!*{5E#A6;y6M@E=nNTXrLuuJ_L>qLiXvVYPXUNJ@1BkoeBoSbS{bh7nV?P&+F z%i7yo+uN20+8T9j$)&c4HvQJLHEnWVGuYK;QODe0g+mo4qhZzpD5N&ADqVB-zbbT8 zKo4%yRx!=$R(V!mSMz;urxe929X})WJghXgNICES;k8I>_&uC9r+mR>Ngh^1^761+ z+s|`PT9;ITYny34$KAo}&SNcL`% z(&O%Kb!TgE6=wm|DW3Tw!mDvUnbf`t`MpJD|Ce8+hT_*0#KOkpH(hD+-2uP;MTq3* z@c!NV8}E-0tM63rChr`t-+PefW6vv|pL=fhT;e&!v&Q{b_i3(=U5~pQ&JM?`j)46| zdxPzH+kES-*0Gk;m1mU|=Eu$c!XFe)DY&WNV2IwUe>&BmwEkd!lv`Fm@TzrEX}_C{Ngy*`gVR3Vy9+80v;jYZug zWkW{f{c=l7m&aOT9Yk3UrNCPnJqLFoy~I=jcOgP)DoPqU*Fi zmev87(ej-oX$K#grY7|ysn>q9jH0%#9T;dj3{^KsY4!DxvhUq5Pk+<;8dOQ!B+2$_ zIl`0TtN^APnr?RWMA5DPmgp%fscyRX)b*lEzZjA5sx769l#XtDF2&QVu9McYFEd4Y zT}D^6Sz(Q|(1+>ju&Qh2foJrwW9@TOq2`)n(b}o55k>a@LMBg}B}KGGIapmS4PjIt zOJUE3mp%@K`rAoOF`v3h6zgjX-802fr+w)bBX^_K9BD88$0E5f)l{0Kt`wE}YGJf@ zDy0q}HGmsZ(% zKpIA>{8KNRDRS*JLDXnamx&gAJ)Yi!PKsW@X9@D8t?E*F(tgzFI!pBPU!(Y5bxWY5CJ-s2{~o4J z<4;9<{**Ec@@FH|soB4*4~NO5j=ncSos#`&T_mtw`*e&tnLov)A9P{4^qQzt&S}gN zhN_eJJ5ojb9XR3gM+;OfryLG9@q2OQ?PvI7-ZFoE7TS*iH{C8m2#zVG@PeMcc?{}tZV-T|J6JYAj{o&xvJ z+#B7B>rvNMm(%$@=PJjij%yt&?fCFSHdfoLnI_iXN{g&*>IRm+hlt$BY5roygLE4hW>oqDV}ZU?L~?px4$o9ia1 z75q!gO?&i9dg@HIoPP@ogI<1H41aX^Ms$$d_s(EVB;apt-?<<#B^ zAzc=#rBba9ot$WWcspF?sr|zo6={lemDL_X)$BmZK?!XQANdl08UBxQsw`F|xPF&s zpM{ZbC#e$tzDouxsd%GqlvFj-H&eR7qaR(E3M~piOn_FH-1?DlG?g8I{O(UyC1`z@ zjCT7~I%&T_m5}pYGW6w;UxkD^lH$6Zay!wR7?jj9L3MjSC||8gwD>L=b@!)m(tW&2=JQO+BP>B%BwUBQ-4r(-**jG&4PM>`)<;pK*HTrBpN>^(y4AyI8BdC~ zgt);XJ1O#$YEcoWRB2NP?;@nnMDT?zlGdd;j0`T+i`J@Ibaefo)f}h|1-BG6g^^=? zYd~fJsw=dp&gR-6B1B-Gp`5}jQrG@;sm+$CTEKIhSf(}I5)L*M)ockzT99=&CD)Ka zJ}p|*#sAzA^;0VL`KlJaTwf!(6ppVp}bg8jZmb1FfmOwMIjc-BRi721p zqXQre1wvb7ij}KL%cZBUrW_BcC>bva%jpRLWH`ozj{gc_X^?6Ml)?w8s{(MXg5bp} z0`3$Pm<%IUPQge#hMdJbsK|;)Cy-h^0{9|ihN`95>!sGqkRv|TPx7?U_7LRNs9L7I zUJ93T&ZpH2_}dX>8be=03$nnnn)nNsd1fd{^$I*>x;mO?5_ps3Z>hzcbGw1ll{AHR z>Xn9wd8!1h?!sA14>FKD4v|cdAYCe7b8+hv!2m6NR{B`_^R7Q<9aq#1(>FWO@TuTnK1O4-2V?xG|b zQEO@fQS?XJ#h{~P(v;^=c%!O$MV9D`BG9rm%tPh`ESwFQd&~V5$i9{uB1K?5N;r%` zl}0ISpD1B_R1U6CA{$k4ckJ4O2aL~pfH4vf)-w}y4_K>;?_!r>R7tPM)i5Efz)Bw?3?%$*3wf-f=VZJneJ;NLgrETO8BQp9-5`hBWVqkxyH;+NKSQ0|{&b%Gq{60<35 zNKQ8agmr4E3)P|7LEsG4%j$IIkvHDBmn!#jb)hHgl$x%JznEc!PdBHk;;QVP$}%#Y z6>3aZCGB565tZ4c$|7itMsCO`N2i*viep!oVF{yC1F6o9CCf4@F{3xshj!>iO;;ri zU_Naq2cV&jG)X#bCaVrE*Kp2qMV?YL)3(N-KY}%cAGyZ$;!qxIRq;N`Gj_=D>u|gi z3Dva2ahiT_oC44_>vIgN*gBcYOy`<>ao?fdhrKJkKHT(g^GtC+=?=O6h1m9MoPR`#~uhde7 z>XewSnpsTl)>ctmid9Xwe3j^yIuSF~LKdOl@*6biO$6pOvqxQuOLHWS z#{SfhJa%@XvqxR}AVhT8(Tgs*+CGI&G?dHsUUcbIh_sXr7L%`~6dUItZYiaPDQHGQ z0zl?#DZNRM5^3wXM4(0YmV%_i#uAD4Tq3;-5nUp^=#nE}HqNuNTFSOwbm>)y=+fGg zF2xgaw%X$CmJ;qsm%a#*meRsv^0XA}bt)00vwXb20TD7%TanBlL(8s2GfT+RQhJpj zCDPP$i6F~z=AmdH7}-k8{gqj@v$f|E>0JovG9j^r#putgGZRpGaTQKdyS3VqGCw6< zo|FjjZ*xz=J^hxRydfbrtcG(?{i7?;AQ2I@wh_ThBRHgL!#$e64OX4BukS#9IP9## z5q(Lux6u}UMA2NBdiFfQoZNpXP6+oA-l=GL%M6(slQzj&*SdJS|p20|KB!u>bBIc_Y zIhB*^Gwd>IvE{-E1=kJE1v`U*NHj-V+?>$t0`*4$dfki5F$uMzQD9_h#=%At;wlHX z<4BP@pTD`I9lQTdT&|$DyUF+S@nuUw4F9@T>$jZbS&f(+Zm| z9J2&!5fY3KFzKudjk&3v{z_+aA-*^XcA!+KI!Y4NTpcIoejaV!aR7wYNYxl^4bX3v zB{Vy_+&!oSTRHTgXb9S1H<&tdjMfHQ(5b@R-W(DaB*ZGNOMl>~E7?kvEY{`z`T$-U zp{wyCQQS-+HUl@U%#;9G(-SB18|n8RI#CteSu($XRH|<}_lX3lx*%d}LX6M47UeFL z3S4rR`%$SFf42wd5D9MjHR149DdSWh#z3rniK`>KMe%2N+DQq`uuOkxXVAD9V`lCX z5ZXZU(Qs>1dqV?9^X8_IIb5nsXjWuX^1KT=a*4l*4u$zNj_R4qw z@LdD-%1jyJC3Yk-He%^llvlfAclXL+9R40PAKK6KSOpLdRP>_RrUB3s=0O2JRE z|1~|7_3xkd*3v(>UBKKf?GRbN--DlB`%bvo1?e)Y0#VN=AW_;#7(AJ}mXN89`ST)n zY0bjr`cOl;40|%>Nxd2tnoO4O;|d2)#D87S|0TYdeR=l2S&ZrZ((!P*qJkP&G4B0~ z!$>Nsg$fU=k?QTXC+&P26XvXXp%rm`@i}1(YQ08^>`*9Za zo^l20*bB7_?vR#_xv_6*=Nf9b$E7vnm{Vk_n7gIplavK~rm+{0fdfhpYs-F8L$hk` zHQ_Qw@(V;atVH@rw^>^H=Ujmck50~pIt8X((?}gp)~q1^v)8#HcZH=rC{q~MsZwBm6>08W)$~_MXPq1OnB)vm7n_a)U9Pjjt)0DVO5e&-@`&Vg zQ4*_}uZEIP5Icn|HIGS76E$b_hnmgs$q)9WIQffNs=AU>MO7Gq9q1C(dJD#pdTM*s zq>9#STH9-OG&d<-uH=+{Q>WY1k{YSfgUz<&WY(r@&4DW%n$l>vYfFVA8k?LXMKG(6 z58ba*{t_*K>bh|$QnSRKx4#~&8T&@7Ve?;HTvS{}h{LhgsM0kqDdyR`=Irg$ zq_{_~YHP0xg=r@_p_z@A_o(kd-#v&6aI5bo z-*vvLeV6*q_a%M1e5d+4e67AMzB=DV-+JFl-(uff-*n$ZU%9WyH`aH!Z=~-K-vFP} zr+B~ce(L?u`>yvb@9Xd^c;5T8_i^td-uu0G4?(^MA_b&IT?hbdWdyBgcz7gx)E8UCTbKTS36W!(RBKKJL;qH;{L)-)0PWVlH z;rbM3Det=8a=q?)+4a2ZX+%wU#C5;xZrAOuTUBX zYFyQ>wXWr^g|6AIsjl&^QrGdWqg|t2!(9ivye_+|(D}LZW9R$McbsoJUvs|XeAfA- z^D*bc&ikBqId5~`?7YEwjq`Hnh0e2`G3V*d9nOfe$yx8*?A+j7?Of`d@0{tJ?5uPa zJCAi9={(dq)H%@Uc3Pb#$7ha@9Pc^acD&*EgX0CqGma-5k2)T7+~c^zajWAd$90aY z9hW-JcO)IV9H%-u9IcKmjylIi$9l&~$707^$8^U;N4cZOG1hUoW2EB{#{h@Zq1eB$ ze`^2G{;vHk`|I|X?a$kvwm)uv#D2g1Zu{-_TkJR5ueD!kzu11RJz+o7zSG`jZ?QMp zYwXqbwf5!qh4$I@srK>qQv31tqwS;Z!|ey#y>`33(Du3QW83?-cWiIkUbDSqd)D@( z?J?WK$Wn0^;#A&jyTNvi?Q+|NwzF+9+v&C)wur6CR&U#E+hAL5TWXtcn`xVDtF#r{ zjw>)CG-*UI*cFQf68!gvbuC!ciIoFb~oN3uJJ@nOb?7$0POfbo9DpEBOZcrW8Uj6Y$#oAJktcQM|{ zcn9N;7;k6%A>(a~KVZC-@%xOoFn*8mX2$O_-o*GF#v2*G&3FUj^^Dgsev9#1#&0rS z!}txxs~N9iypr(>#>*KmW4x5{62^-eFJioq@dC#48P8)pm+>6Nvl(|YCK*-61Y?{r z#&{OvF2*j#Ga1idJe~10##0$jVcf~s$+&}YJ7Wi9J7XJTlrh4%jj@$6%-F)%%-F=Z zm2nGWh_R8efw7)3$XLf%%UHu0VBE~OiE$(2$&A&ECoyhdJdtrd<2uH*jB6NIGp=G> z$+&`XIpZ?MrHo4$7c(wmT*$b9aX#Zb#<`4h7-uuiVw}l1gK;|JG{&inQy3>RPGX$M zIDv6IV-;g1V+CV5V;N&9V+mt1;|YvKjDE)B8INN;mT?^8SjJ-*k7hiI@kqua7!PM0 z!#JApFvdd}M=_3M9Kkr8aTw!J#vzP{Fb-xsm~jx}K*oa@2Qc~=y^J14H=~Qu$>?CT zGujxfj21?P(ac!LSioo^Ec_qi7mWX9{G9PWjGr<7oAFb|PZ&RD{1@X#jQ?c(knsb? z_Zk1e_#Wf`F}}<6jxyV*Cr^n~Z;Ee1q{%jIT5Pk?}RgR~i4n_zL68 zjK61miSb3o7Z`uX_¬jL$OumhllnYqcrD{M8Lwgd2IJL?S2146cm?C- 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 + diff --git a/src/Hosted/Main.fs b/src/Hosted/Main.fs index a6fbecc6..14a31264 100644 --- a/src/Hosted/Main.fs +++ b/src/Hosted/Main.fs @@ -33,6 +33,9 @@ type EndPoint = | [] TermsOfUse | [] PrivacyPolicy | [] CookiePolicy + | [] Research + | [] Consulting + | [] Careers | [] Error404 | [] Debug @@ -368,6 +371,10 @@ module Site = type BlogPostTemplate = Templating.Template<"../Hosted/blogpost.html", serverLoad=Templating.ServerLoad.WhenChanged> type ContactTemplate = Templating.Template<"../Hosted/contact.html", serverLoad=Templating.ServerLoad.WhenChanged> type LegalTemplate = Templating.Template<"../Hosted/legal.html", serverLoad=Templating.ServerLoad.WhenChanged> + type ResearchTemplate = Templating.Template<"../Hosted/research.html", serverLoad=Templating.ServerLoad.WhenChanged> + type ConsultingTemplate = Templating.Template<"../Hosted/consulting.html", serverLoad=Templating.ServerLoad.WhenChanged> + type CareersTemplate = Templating.Template<"../Hosted/careers.html", serverLoad=Templating.ServerLoad.WhenChanged> + type [] RawConfig = { @@ -948,6 +955,18 @@ module Site = .Cookie(Cookies.Banner false) .Doc() |> Content.Page + let Research () = + ResearchTemplate() + .Doc() + |>Content.Page + let Consulting () = + ConsultingTemplate() + .Doc() + |>Content.Page + let Careers () = + CareersTemplate() + .Doc() + |>Content.Page // pageNo is 1-based let BLOG_LISTING (banner: Doc) (pageNo: int) f = let as1 = @@ -1185,6 +1204,8 @@ module Site = let doc = RSS_FEED (Some user) doc.Save(stream) ) + | Research -> ++ RESEARCH () | Refresh -> // Reload the master configs and the article cache config := ReadConfig() @@ -1296,6 +1317,7 @@ type Website() = CookiePolicy TermsOfUse PrivacyPolicy + Research ] [)>] diff --git a/src/Hosted/careers.html b/src/Hosted/careers.html new file mode 100644 index 00000000..3cb400af --- /dev/null +++ b/src/Hosted/careers.html @@ -0,0 +1,641 @@ + + + + + + + Careers + + + + + + + + + + + + + +

    + + +
    +
    +
    +
    +
    +
    +

    Join us at IntelliFactory

    +

    + We’re web applications using F#. Come join us here at the + IntelliFactory. Lorem ipsum dolor sit amet, consectetur + adipiscing elit. Nulla et mollis ex, id posuere purus. Vivamus + vel convallis tellus, eget bibendum felis. Duis ligula augue, + vestibulum ut dignissim quis, feugiat ac dolor. Quisque sapien + sapien, commodo a interdum eget, tincidunt nec massa. Nam + fringilla est non augue luctus, vitae mollis sem dictum. Duis + vel est ultrices, euismod odio nec, euismod diam. +

    + See open jobs +
    +
    +
    + +
    +
    +
    +
    +
    +
    +

    Who We Are

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do + eiusmod tempor incididunt utlabore et dolore magna aliqua. + Utenim ad minim veniam quis nostrud exercitation ullamco laboris + . +

    +
    +
    +

    What We Do

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do + eiusmod tempor incididunt utlabore et dolore magna aliqua. + Utenim ad minim veniam quis nostrud exercitation ullamco laboris + . +

    +
    +
    +

    How We Do It

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do + eiusmod tempor incididunt utlabore et dolore magna aliqua. + Utenim ad minim veniam quis nostrud exercitation ullamco laboris + . +

    +
    +
    +
    +

    Currently open roles.

    +
    +
    +

    Software Engineer

    +
    +
    +
    +
    +
    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do + eiusmod tempor incididunt utlabore et dolore magna aliqua. + Utenim ad minim veniam quis nostrud exercitation ullamco + laboris nisi ut aliquip ex ea commodo consequat. Duis aute + irure dolor in reprehenderit +

    +
    +
    +
      +
    • Knowledge of blockchain
    • +
    • Team communication
    • +
    • Experience in Android apps
    • +
    +
    +
    +
    + + + + + + + + +
    +
    + +
    +

    Availability

    +

    1 people

    +
    +
    +
    +
    + +
    +

    Experience

    +

    Min 5 years

    +
    +
    +
    +
    + +
    +

    Graduation

    +

    Required

    +
    +
    +
    +
    +
    + Apply now +
    + +
    +
    +
    +

    React Developer

    +
    +
    +
    +
    +
    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do + eiusmod tempor incididunt utlabore et dolore magna aliqua. + Utenim ad minim veniam quis nostrud exercitation ullamco + laboris nisi ut aliquip ex ea commodo consequat. Duis aute + irure dolor in reprehenderit +

    +
    +
    +
      +
    • Knowledge of blockchain
    • +
    • Team communication
    • +
    • Experience in Android apps
    • +
    +
    +
    +
    + + + + + + + + +
    +
    + +
    +

    Availability

    +

    1 people

    +
    +
    +
    +
    + +
    +

    Experience

    +

    Min 5 years

    +
    +
    +
    +
    + +
    +

    Graduation

    +

    Required

    +
    +
    +
    +
    +
    + Apply now +
    + +
    +
    +
    +
    + +
    + + + + diff --git a/src/Hosted/consulting.html b/src/Hosted/consulting.html new file mode 100644 index 00000000..3c32e06f --- /dev/null +++ b/src/Hosted/consulting.html @@ -0,0 +1,377 @@ + + + + + + + Consulting + + + + + + + + + + + + + + + +
    + + + +
    +
    +

    Build your F# application with us.

    +

    By weaving together advances in F# development, intelligent operations, and modern full-stack applications, we can help your company deliver on the promise of digital transformation.

    +
    +
    + +
    + +
    +
    +
    +
    +

    Why IntelliFactory

    +

    + The highest levels of service, strategic vision, agility, discipline, and execution are in our DNA. As a top F# development agency we bring clarity and vision to our clients. +

    +
    +
    +

    Our mission

    +

    + Creating the a most versatile, efficient application is essential but difficult. Our team will develop the perfect app to fit your needs using the best technologies. +

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

    Our products

    +

    + We have created best tools out there with F# programming to help you to create your application. +

    +
    +
    +
    +
    + WebSharper +
    +

    WebSharper

    +

    + One of our best products. +

    +
    +
    +
    + Bolero +
    +

    Bolero

    +

    + Another one of our products +

    +
    +
    +
    + CloudSharper +
    +

    CloudSharper

    +

    + Our latest product. +

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

    Faster development

    +
    +

    Fast development, less code

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do eiusmod tempore. +

    +
    +
    +
    +

    Business value

    +
    +

    Business value created

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do eiusmod tempore. +

    +
    +
    +
    +

    TTM

    +
    +

    Shorter TTM

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do eiusmod tempore. +

    +
    +
    +
    +
    +
    +
    + + + + diff --git a/src/Hosted/research.html b/src/Hosted/research.html new file mode 100644 index 00000000..37ed1364 --- /dev/null +++ b/src/Hosted/research.html @@ -0,0 +1,187 @@ + + + + + + + Research + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +

    Research is in our DNA.

    +

    Lorem ipsum dolor sit amet consectetur adipisicing elit. Tenetur in, quas ab doloremque velit maxime voluptate reiciendis repellat odit voluptates similique nobis animi impedit amet eaque. Sequi saepe reiciendis dolorum?

    +
    +
    +
    +
    +
    +
    +
    +

    Take a look at our projects.

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do eiusmod tempor incididunt utlabore et dolore magna aliqua. +

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

    #1 Achievement

    08 January 2002
    +
    +

    Mussum ipsum cacilds

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do eiusmod tempore. +

    +
    +
    +
    +

    #2 Achievement

    25 April 2017
    +
    +

    Mussum ipsum cacilds

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do eiusmod tempore. +

    +
    +
    +
    +

    #3 Achievement

    11 March 2020
    +
    +

    Mussum ipsum cacilds

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do eiusmod tempore. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do eiusmod tempor incididunt utlabore et dolore magna aliqua. + Utenim ad minim veniam quisolor in reprehenderite nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequate. +

    +
    +
    +
    + sign + Adam Granicz + Founder & CEO +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + + +
    + + + From d2d5af0f34fccba6102299cc0e7647ad60e08e12 Mon Sep 17 00:00:00 2001 From: Erol Aliyev Date: Wed, 13 Jan 2021 19:11:08 +0100 Subject: [PATCH 02/71] Trying to add new pages --- src/Hosted/Hosted.fsproj | 2 + src/Hosted/Main.fs | 10 +- src/Hosted/careers.html | 823 ++++++++++--------------------------- src/Hosted/consulting.html | 487 +++++++--------------- 4 files changed, 370 insertions(+), 952 deletions(-) diff --git a/src/Hosted/Hosted.fsproj b/src/Hosted/Hosted.fsproj index 921417f2..e860c59e 100644 --- a/src/Hosted/Hosted.fsproj +++ b/src/Hosted/Hosted.fsproj @@ -11,6 +11,8 @@ + + diff --git a/src/Hosted/Main.fs b/src/Hosted/Main.fs index 14a31264..ad16b9d6 100644 --- a/src/Hosted/Main.fs +++ b/src/Hosted/Main.fs @@ -1204,8 +1204,6 @@ module Site = let doc = RSS_FEED (Some user) doc.Save(stream) ) - | Research -> -+ RESEARCH () | Refresh -> // Reload the master configs and the article cache config := ReadConfig() @@ -1214,6 +1212,12 @@ module Site = articles := _articles identities1 := ComputeIdentities1 articles.Value Content.Text "Articles/configs reloaded." + | Research -> + RESEARCH() + | Consulting -> + CONSULTING() + | Careers -> + CAREERS() | Error404 -> Content.File("../Hosted/404.html", AllowOutsideRootFolder=true) | Debug -> @@ -1318,6 +1322,8 @@ type Website() = TermsOfUse PrivacyPolicy Research + Consulting + Careers ] [)>] diff --git a/src/Hosted/careers.html b/src/Hosted/careers.html index 3cb400af..d405ca94 100644 --- a/src/Hosted/careers.html +++ b/src/Hosted/careers.html @@ -1,6 +1,6 @@ - + - + @@ -12,630 +12,235 @@ - + - - + + +
    +
    +
    +
    +
    +
    +
    +

    Join us at IntelliFactory

    +

    + We’re web applications using F#. Come join us here at the + IntelliFactory. Lorem ipsum dolor sit amet, consectetur + adipiscing elit. Nulla et mollis ex, id posuere purus. Vivamus + vel convallis tellus, eget bibendum felis. Duis ligula augue, + vestibulum ut dignissim quis, feugiat ac dolor. Quisque sapien + sapien, commodo a interdum eget, tincidunt nec massa. Nam + fringilla est non augue luctus, vitae mollis sem dictum. Duis + vel est ultrices, euismod odio nec, euismod diam. +

    + See open jobs
    -
    -
    -
    - -
    -
    - This is an example text under this feel free to change - this +
    +
    +
    -
    -
    -
    - SiteFi -
    -
    -
    - This is an example text under this feel free to change - this +
    +
    +
    +
    +

    Who We Are

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do + eiusmod tempor incididunt utlabore et dolore magna aliqua. + Utenim ad minim veniam quis nostrud exercitation ullamco laboris + . +

    +
    +
    +

    What We Do

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do + eiusmod tempor incididunt utlabore et dolore magna aliqua. + Utenim ad minim veniam quis nostrud exercitation ullamco laboris + . +

    +
    +
    +

    How We Do It

    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do + eiusmod tempor incididunt utlabore et dolore magna aliqua. + Utenim ad minim veniam quis nostrud exercitation ullamco laboris + . +

    -
    -
    -
    -
    -
  • -
  • - Trainings -
  • -
  • - Research -
  • -
  • - Blogs - -
  • - -
  • - Contact -
  • - - -
    - - - -
    -
    -
    -
    -
    -
    -

    Join us at IntelliFactory

    -

    - We’re web applications using F#. Come join us here at the - IntelliFactory. Lorem ipsum dolor sit amet, consectetur - adipiscing elit. Nulla et mollis ex, id posuere purus. Vivamus - vel convallis tellus, eget bibendum felis. Duis ligula augue, - vestibulum ut dignissim quis, feugiat ac dolor. Quisque sapien - sapien, commodo a interdum eget, tincidunt nec massa. Nam - fringilla est non augue luctus, vitae mollis sem dictum. Duis - vel est ultrices, euismod odio nec, euismod diam. -

    - See open jobs -
    -
    -
    - -
    -
    -
    -
    -
    -
    -

    Who We Are

    -

    - Lorem ipsum dolor sit amet consectetur adipiscing elitsed do - eiusmod tempor incididunt utlabore et dolore magna aliqua. - Utenim ad minim veniam quis nostrud exercitation ullamco laboris - . -

    -
    -
    -

    What We Do

    -

    - Lorem ipsum dolor sit amet consectetur adipiscing elitsed do - eiusmod tempor incididunt utlabore et dolore magna aliqua. - Utenim ad minim veniam quis nostrud exercitation ullamco laboris - . -

    -
    -
    -

    How We Do It

    -

    - Lorem ipsum dolor sit amet consectetur adipiscing elitsed do - eiusmod tempor incididunt utlabore et dolore magna aliqua. - Utenim ad minim veniam quis nostrud exercitation ullamco laboris - . -

    -
    -
    -
    -

    Currently open roles.

    -
    -
    -

    Software Engineer

    -
    -
    -
    -
    -
    -

    - Lorem ipsum dolor sit amet consectetur adipiscing elitsed do - eiusmod tempor incididunt utlabore et dolore magna aliqua. - Utenim ad minim veniam quis nostrud exercitation ullamco - laboris nisi ut aliquip ex ea commodo consequat. Duis aute - irure dolor in reprehenderit -

    -
    -
    -
      -
    • Knowledge of blockchain
    • -
    • Team communication
    • -
    • Experience in Android apps
    • -
    -
    -
    - - - - - - - - -
    -
    - -
    -

    Availability

    -

    1 people

    +
    +

    Currently open roles.

    +
    +
    +

    Software Engineer

    +
    +
    +
    +
    +
    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do + eiusmod tempor incididunt utlabore et dolore magna aliqua. + Utenim ad minim veniam quis nostrud exercitation ullamco + laboris nisi ut aliquip ex ea commodo consequat. Duis aute + irure dolor in reprehenderit +

    +
    +
    +
      +
    • Knowledge of blockchain
    • +
    • Team communication
    • +
    • Experience in Android apps
    • +
    +
    -
    -
    -
    - -
    -

    Experience

    -

    Min 5 years

    -
    -
    -
    -
    - -
    -

    Graduation

    -

    Required

    -
    -
    -
    -
    -
    - Apply now -
    - -
    -
    -
    -

    React Developer

    -
    -
    -
    -
    -
    -

    - Lorem ipsum dolor sit amet consectetur adipiscing elitsed do - eiusmod tempor incididunt utlabore et dolore magna aliqua. - Utenim ad minim veniam quis nostrud exercitation ullamco - laboris nisi ut aliquip ex ea commodo consequat. Duis aute - irure dolor in reprehenderit -

    -
    -
    -
      -
    • Knowledge of blockchain
    • -
    • Team communication
    • -
    • Experience in Android apps
    • -
    +
    + + + + + + + + +
    +
    + +
    +

    Availability

    +

    1 people

    +
    +
    +
    +
    + +
    +

    Experience

    +

    Min 5 years

    +
    +
    +
    +
    + +
    +

    Graduation

    +

    Required

    +
    +
    +
    +
    +
    + Apply now +
    +
    -
    -
    - - - - - - - - -
    -
    - -
    -

    Availability

    -

    1 people

    -
    -
    -
    -
    - -
    -

    Experience

    -

    Min 5 years

    +
    +

    React Developer

    +
    +
    +
    +
    +
    +

    + Lorem ipsum dolor sit amet consectetur adipiscing elitsed do + eiusmod tempor incididunt utlabore et dolore magna aliqua. + Utenim ad minim veniam quis nostrud exercitation ullamco + laboris nisi ut aliquip ex ea commodo consequat. Duis aute + irure dolor in reprehenderit +

    +
    +
    +
      +
    • Knowledge of blockchain
    • +
    • Team communication
    • +
    • Experience in Android apps
    • +
    +
    -
    -
    -
    - -
    -

    Graduation

    -

    Required

    -
    -
    -
    -
    -
    - Apply now -
    - +
    + + + + + + + + +
    +
    + +
    +

    Availability

    +

    1 people

    +
    +
    +
    +
    + +
    +

    Experience

    +

    Min 5 years

    +
    +
    +
    +
    + +
    +

    Graduation

    +

    Required

    +
    +
    +
    +
    +
    + Apply now +
    +
    +
    - - -
    - +
    - diff --git a/src/Hosted/openPosition.html b/src/Hosted/jobs/202102-fsharp-web-developer.html similarity index 77% rename from src/Hosted/openPosition.html rename to src/Hosted/jobs/202102-fsharp-web-developer.html index 8099850e..068a30d5 100644 --- a/src/Hosted/openPosition.html +++ b/src/Hosted/jobs/202102-fsharp-web-developer.html @@ -11,20 +11,20 @@ href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500&display=swap" rel="stylesheet" /> - - - - - - - + + + + + + + - - - + + + @@ -53,7 +53,7 @@

    F# Web Developer

    @@ -138,16 +138,16 @@

    Graduation

    rel="stylesheet" href="/themekit/media/icons/fontawesome/icons.css" /> - - - - - - - - - - + + + + + + + + + + From 8a17e28864f854c897d94624b0001bab79f2f68c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Garai=20M=C3=A1rton?= Date: Fri, 5 Feb 2021 01:04:17 +0100 Subject: [PATCH 51/71] #19 - Tutorialing instead of courses. --- src/Hosted/Hosted.fsproj | 6 +- src/Hosted/Main.fs | 21 ++- .../web-and-mobile.html => course-base.html} | 52 +------ src/Hosted/fsharp-basics.html | 135 ------------------ src/Hosted/trainings.html | 51 +------ src/Hosted/trainings/base.html | 64 --------- ...days-to-fsharp.html => fsharp-basics.html} | 45 ++---- src/Hosted/trainings/functional-reactive.html | 125 ---------------- 8 files changed, 43 insertions(+), 456 deletions(-) rename src/Hosted/{trainings/web-and-mobile.html => course-base.html} (55%) delete mode 100644 src/Hosted/fsharp-basics.html delete mode 100644 src/Hosted/trainings/base.html rename src/Hosted/trainings/{2-days-to-fsharp.html => fsharp-basics.html} (75%) delete mode 100644 src/Hosted/trainings/functional-reactive.html diff --git a/src/Hosted/Hosted.fsproj b/src/Hosted/Hosted.fsproj index 91e4f292..e46a1a43 100644 --- a/src/Hosted/Hosted.fsproj +++ b/src/Hosted/Hosted.fsproj @@ -5,10 +5,7 @@ - - - - + @@ -17,6 +14,7 @@ + diff --git a/src/Hosted/Main.fs b/src/Hosted/Main.fs index 97f1dbaa..635cac17 100644 --- a/src/Hosted/Main.fs +++ b/src/Hosted/Main.fs @@ -376,7 +376,7 @@ module Site = type MainTemplate = Templating.Template<"../Hosted/index.html", serverLoad=Templating.ServerLoad.WhenChanged> type RedirectTemplate = Templating.Template<"../Hosted/redirect.html", serverLoad=Templating.ServerLoad.WhenChanged> type TrainingsTemplate = Templating.Template<"../Hosted/trainings.html", serverLoad=Templating.ServerLoad.WhenChanged> - type CoursesBaseTemplate = Templating.Template<"../Hosted/trainings/base.html", serverLoad=Templating.ServerLoad.WhenChanged> + type CourseBaseTemplate = Templating.Template<"../Hosted/course-base.html", serverLoad=Templating.ServerLoad.WhenChanged> type BlogListTemplate = Templating.Template<"../Hosted/bloglist.html", serverLoad=Templating.ServerLoad.WhenChanged> type UserBlogListTemplate = Templating.Template<"../Hosted/userbloglist.html", serverLoad=Templating.ServerLoad.WhenChanged> type BlogPostTemplate = Templating.Template<"../Hosted/blogpost.html", serverLoad=Templating.ServerLoad.WhenChanged> @@ -916,12 +916,29 @@ module Site = let COURSES (slug: string) = let templateFile = Path.Combine (__SOURCE_DIRECTORY__, sprintf @"../Hosted/trainings/%s.html" slug) if File.Exists templateFile then - CoursesBaseTemplate(File.ReadAllText templateFile) + CourseBaseTemplate(File.ReadAllText templateFile) |> fun template -> + let vids = + [ + "Asynchronous, concurrent and distributed programming" + "Concise error-handling, logging" + "Process data with composable functions" + "F#'s type inference" + "Pattern matching and Active Patterns" + "Pit of success with typing" + "Partial application and currying" + "Code quotations" + "Interactive shell and interpreter" + ] + |> List.map (fun x -> li [] [ + a [attr.href "#"] [text x] + div [attr.``class`` "content"] [button [attr.``class`` "btn btn-sm btn-circle"] [text "contact us for an onsite training"]] + ]) template #if !DEBUG .ReleaseMin(".min") #endif + .VideoList(ul [attr.``class`` "accordion-list"] vids) .MenuBar(menubar config.Value) .Footer(MainTemplate.Footer().Doc()) .Cookie(Cookies.Banner false) diff --git a/src/Hosted/trainings/web-and-mobile.html b/src/Hosted/course-base.html similarity index 55% rename from src/Hosted/trainings/web-and-mobile.html rename to src/Hosted/course-base.html index f300b4e9..d740aba1 100644 --- a/src/Hosted/trainings/web-and-mobile.html +++ b/src/Hosted/course-base.html @@ -36,55 +36,8 @@ >
    +
    -
    -
    -
    -
    -

    Web and mobile application development with WebSharper

    -

    WebSharper is a F#-to-JavaScript compiler and a web framework which allows writing full-stack solutions in a single language.

    -
    -

    The main benefit of this is end-to-end type checking: you can always be sure that your multi-tiered application communicates consistently.

    -
    -

    This can significantly reduce the number of bugs and speed up development of new functionalities.

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

    Day 1

    -

    Routing with Sitelets

    -
      -
    • Define the structure of a website and set up REST services with F# data types
    • -
    -

    Reactive forms

    -
      -
    • Gather user input with transparently defined logic
    • -
    • Reuse your form behavior in multiple web or desktop applications
    • -
    -

    Using JavaScript libraries

    -
      -
    • From data visualization to UI frameworks, your favourite libraries can be utilized with full code service and strong typing
    • -
    -
    -
    -
    -
    @@ -104,10 +57,9 @@

    Using JavaScript libraries

    - +
    - diff --git a/src/Hosted/fsharp-basics.html b/src/Hosted/fsharp-basics.html deleted file mode 100644 index ed7a07e3..00000000 --- a/src/Hosted/fsharp-basics.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - F# Web Developer - - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -
    -
    -

    What is F# and why it matters

    -

    F# is a functional-first, multi-paradigm programming language which is becoming increasingly popular in finance, science, web and mobile development, data mining, machine learning, and more.

    -
    -

    The language allows for better organized, reliable, reviewable, maintainable code compared to what a purely object-oriented approach can provide.

    -
    -

    With us, you can quickly learn to use F# in real-world, complex projects.

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

    How F# increases productivity

    -

    You can focus on how to write "next generation" applications using F#'s more advanced features.

    -
    -

    F#'s advanced concepts enable programming sophistication that would be significantly harder in conventional programming languages.

    -
    -
      -
    • Easier Concurrency, Asynchronous Programming, Parallel Programming
    • -
    • Ability to do compilation, interpretation, and transformations via F#'s Quotation facility.
    • -
    • Continuations
    • -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    What we offer to train:

    -
      -
    • Asynchronous, concurrent and distributed programming
    • -
    • Concise error-handling, logging
    • -
    • Process data with composable functions
    • -
    • F#'s type inference
    • -
    • Pattern matching and Active Patterns
    • -
    • Pit of success with typing
    • -
    • Partial application and currying
    • -
    • Code quotations
    • -
    • Interactive shell and interpreter
    • -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    - - - - - - - - - - - - -
    - - - - diff --git a/src/Hosted/trainings.html b/src/Hosted/trainings.html index 68ae6f6c..71dca883 100644 --- a/src/Hosted/trainings.html +++ b/src/Hosted/trainings.html @@ -73,7 +73,7 @@

    Designed for you

    Closed groups.

    Private

    - Trainings that will be hold only with you and your team. + Trainings that will be held only with you and your team.

    @@ -100,6 +100,7 @@

    Your data is safe.

    +

    Empower F ♯

    Learning a new paradigm makes you a better programmer even if you don't switch to using F# full-time. The interactive scripting and succint syntax gives you a great tool for quickly solving one-off problems. @@ -110,54 +111,16 @@

    Your data is safe.

    - Learn more -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - Web application development is a complex process involving the communication of multiple layers. - Learn how to use WebSharper to its fullest effect to minimize both routine tasks and potential errors. -

    -
    -
    -
    -
    -
    - Learn more -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    - Learn to provide better user experience with responsive layout, contextual tooltips, action previews, non-blocking computations. - Make your application look as great as it behaves with animated state transitions. -

    -
    -
    -
    -
    -

    -

    Trainings hold

    +

    Trainings held

    - So far we have hold tens of trainings with hundreds of participants. - We are looking forward to see you in our future trianigs. + So far we had held tens of trainings with hundreds of participants. + We are looking forward seeing you in our future trainings.


    @@ -178,7 +141,7 @@

    Trainings held till now

    @@ -267,7 +267,7 @@

    F# Intern

    Availability

    -

    1 people

    +

    1 person

    diff --git a/src/Hosted/jobs-base.html b/src/Hosted/jobs-base.html new file mode 100644 index 00000000..dfd3b18f --- /dev/null +++ b/src/Hosted/jobs-base.html @@ -0,0 +1,56 @@ + + + + + + + Jobs base + + + + + + + + + + + + + + + + + +
    + +
    +
    + +
    +
    +
    + + + + + + + + + + + + +
    + + + diff --git a/src/Hosted/jobs/202102-fsharp-intern.html b/src/Hosted/jobs/202102-fsharp-intern.html index 528e19b8..1e0243d8 100644 --- a/src/Hosted/jobs/202102-fsharp-intern.html +++ b/src/Hosted/jobs/202102-fsharp-intern.html @@ -90,7 +90,7 @@

    F# Intern

    Availability

    -

    1 people

    +

    1 person

    @@ -118,7 +118,7 @@

    Graduation

    Send your resumeF# Web Developer

    Availability

    -

    1 people

    +

    1 person

    @@ -118,7 +118,7 @@

    Graduation

    Send your resume Date: Fri, 5 Feb 2021 16:01:56 +0100 Subject: [PATCH 53/71] #6 - Update build scripts to use normal verbosity --- build.ps1 | 8 ++++---- build.sh | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/build.ps1 b/build.ps1 index aec274f1..e264c5e3 100644 --- a/build.ps1 +++ b/build.ps1 @@ -12,18 +12,18 @@ echo "Running dotnet build" if ($project -ne "") { if ($deb) { echo "Running build in Debug mode..." - dotnet build "src\$project\$project.fsproj" --no-incremental -c Debug + dotnet build "src\$project\$project.fsproj" --no-incremental -c Debug -v normal } else { echo "Running build in Release mode..." - dotnet build "src\$project\$project.fsproj" --no-incremental + dotnet build "src\$project\$project.fsproj" --no-incremental -v normal } } else { if ($deb) { echo "Running build in Debug mode..." - dotnet build SiteFi.sln --no-incremental -c Debug + dotnet build SiteFi.sln --no-incremental -c Debug -v normal } else { echo "Running build in Release mode..." - dotnet build SiteFi.sln --no-incremental + dotnet build SiteFi.sln --no-incremental -v normal } } diff --git a/build.sh b/build.sh index c1a3bc50..01d95397 100644 --- a/build.sh +++ b/build.sh @@ -8,9 +8,9 @@ then then if [[ $(echo "$1" | awk '{print toupper($0)}') = "-DEB" ]]; then - dotnet build "src/$3/$3.fsproj" --no-incremental -c Debug + dotnet build "src/$3/$3.fsproj" --no-incremental -c Debug -v normal else - dotnet build "src/$3/$3.fsproj" --no-incremental + dotnet build "src/$3/$3.fsproj" --no-incremental -v normal fi else >&2 echo "Incorrect project name" @@ -21,7 +21,7 @@ else then if [[ $(echo "$2" | awk '{print toupper($0)}') = "CLIENT" ]] || [[ $(echo "$2" | awk '{print toupper($0)}') = "WEBSITE" ]] || [[ $(echo "$2" | awk '{print toupper($0)}') = "HOSTED" ]]; then - dotnet build "src/$2/$2.fsproj" --no-incremental + dotnet build "src/$2/$2.fsproj" --no-incremental -v normal else >&2 echo "Incorrect project name" exit 1 @@ -29,9 +29,9 @@ else else if [[ $(echo "$1" | awk '{print toupper($0)}') = "-DEB" ]]; then - dotnet build SiteFi.sln --no-incremental -c Debug + dotnet build SiteFi.sln --no-incremental -c Debug -v normal else - dotnet build SiteFi.sln --no-incremental + dotnet build SiteFi.sln --no-incremental -v normal fi fi fi From d16034afd9daea5800b2afc1c41eab4361f831b9 Mon Sep 17 00:00:00 2001 From: Adam Granicz Date: Fri, 5 Feb 2021 18:16:32 +0100 Subject: [PATCH 54/71] Added a master sidebar to the job pages that describes the application process. --- src/Hosted/Main.fs | 51 +++++++++++++------ src/Hosted/careers.html | 4 +- src/Hosted/jobs-base.html | 47 +++++++++++++++++ src/Hosted/jobs/202102-fsharp-intern.html | 8 +-- .../jobs/202102-fsharp-web-developer.html | 8 +-- 5 files changed, 87 insertions(+), 31 deletions(-) diff --git a/src/Hosted/Main.fs b/src/Hosted/Main.fs index ab9619f6..34e50289 100644 --- a/src/Hosted/Main.fs +++ b/src/Hosted/Main.fs @@ -38,7 +38,7 @@ type EndPoint = | [] Research | [] Consulting | [] Careers - | [] Jobs of string + | [] Job of string | [] Error404 | [] Debug @@ -969,17 +969,38 @@ module Site = .Cookie(Cookies.Banner false) .Doc() |> Content.Page - let Jobs (job: string) = - let content = File.ReadAllText("../Hosted/jobs/" + job + ".html") - JobsBaseTemplate(content) -#if !DEBUG - .ReleaseMin(".min") -#endif - .MenuBar(menubar config.Value) - .Footer(MainTemplate.Footer().Doc()) - .Cookie(Cookies.Banner false) - .Doc() - |> Content.Page + let JOB job = + if File.Exists("../Hosted/jobs/" + job + ".html") then + let writer = (System.Globalization.CultureInfo("en-US", false)).TextInfo; + let title = + job + .Substring(7) // Cut the job date prefix off - assumed to be "YYYYMM-" + .Replace("-", " ") // Reintroduce spaces + .Replace("fsharp", "F#") // Format F#/C# as such + .Replace("csharp", "C#") + |> writer.ToTitleCase // Capitalize each first letter + |> Uri.EscapeDataString // Escape so we can include it as a link + let content = File.ReadAllText("../Hosted/jobs/" + job + ".html") + JobsBaseTemplate(content) + #if !DEBUG + .ReleaseMin(".min") + #endif + .MenuBar(menubar config.Value) + .ApplySteps( + JobsBaseTemplate.StepsSidebar() + .PositionName(title) + .Doc() + ) + .Footer(MainTemplate.Footer().Doc()) + .Cookie(Cookies.Banner false) + .Doc() + |> Content.Page + else + Content.Page( + [ + p [] [text <| sprintf "Couldn't find source for job [%s]" job] + ] + ) let TERMSOFUSE (ctx: Context<_>) = LegalTemplate() #if !DEBUG @@ -1204,8 +1225,8 @@ module Site = COURSES site | Trainings -> TRAININGS () - | Jobs job -> - Jobs job + | Job job -> + JOB job | TermsOfUse -> TERMSOFUSE ctx | CookiePolicy -> @@ -1423,7 +1444,7 @@ type Website() = RSSFeedForUser user AtomFeedForUser user for job in jobs do - Jobs job + Job job // Generate 404 page Error404 // Generate legal pages diff --git a/src/Hosted/careers.html b/src/Hosted/careers.html index 683da53a..ecab77cb 100644 --- a/src/Hosted/careers.html +++ b/src/Hosted/careers.html @@ -227,7 +227,7 @@

    Graduation

    Learn more @@ -295,7 +295,7 @@

    Graduation

    Learn more diff --git a/src/Hosted/jobs-base.html b/src/Hosted/jobs-base.html index dfd3b18f..7575d048 100644 --- a/src/Hosted/jobs-base.html +++ b/src/Hosted/jobs-base.html @@ -31,6 +31,53 @@
    +
    +
    +
    + 1 +
    +

    Send your resume

    + Attach and email +
    +
    +
    + 2 +
    +

    Are you a good fit?

    +
    + We'll be in touch shortly after reviewing your application. You may also be + asked to submit additional information. +
    +
    +
    +
    + 3 +
    +

    Online interview

    +
    + Strong candidates will have the opportunity to introduce + themselves and their work via video conferencing. We look + forward to learning more about you. +
    +
    +
    +
    + 4 +
    +

    Selection

    +
    + Once we find the right candidate, we reach out to you to + let you know the next steps. This might take a few weeks at most. +
    +
    +
    +
    +
    diff --git a/src/Hosted/jobs/202102-fsharp-intern.html b/src/Hosted/jobs/202102-fsharp-intern.html index 1e0243d8..671b4933 100644 --- a/src/Hosted/jobs/202102-fsharp-intern.html +++ b/src/Hosted/jobs/202102-fsharp-intern.html @@ -117,13 +117,7 @@

    Graduation

    -

    People joined

    +

    People participated

    300+ diff --git a/src/Hosted/trainings/base.html b/src/Hosted/trainings/base.html deleted file mode 100644 index bcc594a4..00000000 --- a/src/Hosted/trainings/base.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - F# Web Developer - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    -
    - - - - - - - - - - - - -
    - - - diff --git a/src/Hosted/trainings/2-days-to-fsharp.html b/src/Hosted/trainings/fsharp-basics.html similarity index 75% rename from src/Hosted/trainings/2-days-to-fsharp.html rename to src/Hosted/trainings/fsharp-basics.html index 0e67e9ad..c7f3a8f2 100644 --- a/src/Hosted/trainings/2-days-to-fsharp.html +++ b/src/Hosted/trainings/fsharp-basics.html @@ -67,22 +67,15 @@

    What is F# and why it matters

    />
    -

    Day 1

    -

    Introduction

    -
      -
    • Basic concepts of F# and functional programming
    • -
    • Understanding types and type inference
    • -
    -

    Data transformations

    -
      -
    • Access structured data with strong typing
    • -
    • Interactive exploration and testing with scripts
    • -
    • Process data with composable functions
    • -
    -

    Advanced topics made easy

    +

    How F# increases productivity

    +

    You can focus on how to write "next generation" applications using F#'s more advanced features.

    +
    +

    F#'s advanced concepts enable programming sophistication that would be significantly harder in conventional programming languages.

    +
      -
    • Asynchronous, concurrent and distributed programming
    • -
    • Concise error-handling, logging
    • +
    • Easier Concurrency, Asynchronous Programming, Parallel Programming
    • +
    • Ability to do compilation, interpretation, and transformations via F#'s Quotation facility.
    • +
    • Continuations
    @@ -90,23 +83,11 @@

    Advanced topics made easy

    -
    -
    -

    Day 2

    -

    Creating complete applications

    -
      -
    • Working with user input, reactive UI
    • -
    • Build for .NET or the web
    • -
    • Designing libraries
    • -
    -
    -
    - -
    +
    +

    What we offer to train

    +
    +
    @@ -128,7 +109,7 @@

    Creating complete applications

    - + diff --git a/src/Hosted/trainings/functional-reactive.html b/src/Hosted/trainings/functional-reactive.html deleted file mode 100644 index 592d72ab..00000000 --- a/src/Hosted/trainings/functional-reactive.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - F# Web Developer - - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -
    -
    -

    Reactive programming

    -

    Functional reactive programming is an alternative to event-based approach for creating interactive applications.

    -
    -

    With events, you have think about what the full effect of every user action possible would be.

    -
    -

    With reactive programming, you can think about how parts of the application react to changes in other parts, including changes initiated by the user.

    -
    -

    This leads to a more manageable application logic, enabling better user experience in the same or less development time.

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

    The basics of reactive programming

    -

    Learn about the different approaches and libraries to find the most suited to your needs

    -
    -
    -
    -
    -
    -
    -
    -
    -

    UI.Next

    -
      -
    • Data-driven reactivity
    • -
    • Reactive collections
    • -
    • Create your templates in markup
    • -
    • Animations
    • -
    -
    -
    - -
    -
    -
    -
    -
    - -
    -
    -
    - - - - - - - - - - - - -
    - - - - From 723a90953caa5b9ce01fcc50e48bb089218ff90e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Garai=20M=C3=A1rton?= Date: Fri, 5 Feb 2021 12:56:43 +0100 Subject: [PATCH 52/71] #19 - Add Call to Action email actions. Fix folder scraping issues. --- src/Hosted/Hosted.fsproj | 4 +- src/Hosted/Main.fs | 43 ++++++-------- src/Hosted/careers.html | 4 +- src/Hosted/jobs-base.html | 56 +++++++++++++++++++ src/Hosted/jobs/202102-fsharp-intern.html | 4 +- .../jobs/202102-fsharp-web-developer.html | 4 +- 6 files changed, 81 insertions(+), 34 deletions(-) create mode 100644 src/Hosted/jobs-base.html diff --git a/src/Hosted/Hosted.fsproj b/src/Hosted/Hosted.fsproj index e46a1a43..e05b786a 100644 --- a/src/Hosted/Hosted.fsproj +++ b/src/Hosted/Hosted.fsproj @@ -5,6 +5,8 @@ + + @@ -13,8 +15,8 @@ - + diff --git a/src/Hosted/Main.fs b/src/Hosted/Main.fs index 635cac17..ab9619f6 100644 --- a/src/Hosted/Main.fs +++ b/src/Hosted/Main.fs @@ -7,6 +7,7 @@ open WebSharper open WebSharper.Sitelets open WebSharper.UI open WebSharper.UI.Server +open System.Web type BlogListingArgs = | [] Empty @@ -385,8 +386,7 @@ module Site = type ResearchTemplate = Templating.Template<"../Hosted/research.html", serverLoad=Templating.ServerLoad.WhenChanged> type ConsultingTemplate = Templating.Template<"../Hosted/consulting.html", serverLoad=Templating.ServerLoad.WhenChanged> type CareersTemplate = Templating.Template<"../Hosted/careers.html", serverLoad=Templating.ServerLoad.WhenChanged> - type OpenPositionTemplate = Templating.Template<"../Hosted/openPosition.html", serverLoad=Templating.ServerLoad.WhenChanged> - type InternPositionTemplate = Templating.Template<"../Hosted/internPosition.html", serverLoad=Templating.ServerLoad.WhenChanged> + type JobsBaseTemplate = Templating.Template<"../Hosted/jobs-base.html", serverLoad=Templating.ServerLoad.WhenChanged> type [] RawConfig = { @@ -918,6 +918,7 @@ module Site = if File.Exists templateFile then CourseBaseTemplate(File.ReadAllText templateFile) |> fun template -> + let mailtoFromTitle (title: string) = sprintf "mailto:trainings@intellifactory.com?subject=%s" <| HttpUtility.HtmlEncode title let vids = [ "Asynchronous, concurrent and distributed programming" @@ -932,7 +933,13 @@ module Site = ] |> List.map (fun x -> li [] [ a [attr.href "#"] [text x] - div [attr.``class`` "content"] [button [attr.``class`` "btn btn-sm btn-circle"] [text "contact us for an onsite training"]] + div [attr.``class`` "content"] [ + a [ + attr.``class`` "btn btn-sm btn-circle full-width" + attr.target "_blank" + attr.href <| mailtoFromTitle x + ] [text "Contact us for an onsite training"] + ] ]) template #if !DEBUG @@ -964,7 +971,7 @@ module Site = |> Content.Page let Jobs (job: string) = let content = File.ReadAllText("../Hosted/jobs/" + job + ".html") - InternPositionTemplate(content) + JobsBaseTemplate(content) #if !DEBUG .ReleaseMin(".min") #endif @@ -1048,26 +1055,6 @@ module Site = .Cookie(Cookies.Banner false) .Doc() |>Content.Page - let OPENPOSITION () = - OpenPositionTemplate() -#if !DEBUG - .ReleaseMin(".min") -#endif - .MenuBar(menubar config.Value) - .Footer(MainTemplate.Footer().Doc()) - .Cookie(Cookies.Banner false) - .Doc() - |>Content.Page - let INTERNPOSITION () = - InternPositionTemplate() -#if !DEBUG - .ReleaseMin(".min") -#endif - .MenuBar(menubar config.Value) - .Footer(MainTemplate.Footer().Doc()) - .Cookie(Cookies.Banner false) - .Doc() - |>Content.Page // pageNo is 1-based let BLOG_LISTING (banner: Doc) (pageNo: int) f = let as1 = @@ -1386,11 +1373,13 @@ type Website() = |> Set.ofList |> Set.toList let trainings = - Directory.EnumerateFiles("../Host/trainings/", "*.html", SearchOption.TopDirectoryOnly) + DirectoryInfo("../Hosted/trainings/").EnumerateFiles("*.html", SearchOption.TopDirectoryOnly) + |> Seq.map (fun x -> x.Name.Substring(0, x.Name.Length-5)) + |> List.ofSeq let jobs = - DirectoryInfo("...path...").EnumerateFiles() + DirectoryInfo("../Hosted/jobs/").EnumerateFiles("*.html", SearchOption.TopDirectoryOnly) |> Seq.map (fun x -> x.Name.Replace(".html", "")) - eprintfn "DEBUG-users: %A" users + |> List.ofSeq [ // Generate the learning page for training in trainings do diff --git a/src/Hosted/careers.html b/src/Hosted/careers.html index 44b91488..683da53a 100644 --- a/src/Hosted/careers.html +++ b/src/Hosted/careers.html @@ -199,7 +199,7 @@

    F# Web Developer

    Availability

    -

    1 people

    +

    1 person

    diff --git a/src/Hosted/jobs/202102-fsharp-web-developer.html b/src/Hosted/jobs/202102-fsharp-web-developer.html index ae009eec..6306715b 100644 --- a/src/Hosted/jobs/202102-fsharp-web-developer.html +++ b/src/Hosted/jobs/202102-fsharp-web-developer.html @@ -117,13 +117,7 @@

    Graduation

    From 6d383c5048044678c4ba240253d99c15bd9615ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Garai=20M=C3=A1rton?= Date: Fri, 5 Feb 2021 18:17:02 +0100 Subject: [PATCH 55/71] #9 #19 hover zoom. Content for consulting. Fix url encode for subject. --- src/Hosted/Main.fs | 3 +- src/Hosted/assets/custom.scss | 10 ++++++ src/Hosted/consulting.html | 45 ++++++++++++++++++++----- src/Hosted/trainings/fsharp-basics.html | 6 ++-- 4 files changed, 51 insertions(+), 13 deletions(-) diff --git a/src/Hosted/Main.fs b/src/Hosted/Main.fs index 34e50289..a9795f5d 100644 --- a/src/Hosted/Main.fs +++ b/src/Hosted/Main.fs @@ -7,7 +7,6 @@ open WebSharper open WebSharper.Sitelets open WebSharper.UI open WebSharper.UI.Server -open System.Web type BlogListingArgs = | [] Empty @@ -918,7 +917,7 @@ module Site = if File.Exists templateFile then CourseBaseTemplate(File.ReadAllText templateFile) |> fun template -> - let mailtoFromTitle (title: string) = sprintf "mailto:trainings@intellifactory.com?subject=%s" <| HttpUtility.HtmlEncode title + let mailtoFromTitle (title: string) = sprintf "mailto:trainings@intellifactory.com?subject=%s" <| System.Uri.EscapeDataString title let vids = [ "Asynchronous, concurrent and distributed programming" diff --git a/src/Hosted/assets/custom.scss b/src/Hosted/assets/custom.scss index e3914f2c..48865bca 100644 --- a/src/Hosted/assets/custom.scss +++ b/src/Hosted/assets/custom.scss @@ -715,6 +715,16 @@ nav.light { } } +.zoom-on-hover { + transition: transform .5s; + + &:hover { + -ms-transform: scale(1.05); /* IE 9 */ + -webkit-transform: scale(1.05); /* Safari 3-8 */ + transform: scale(1.05); + } +} + .footer-last-section { display: flex; flex-wrap: revert; diff --git a/src/Hosted/consulting.html b/src/Hosted/consulting.html index 5c61fd81..43bafe2b 100644 --- a/src/Hosted/consulting.html +++ b/src/Hosted/consulting.html @@ -44,7 +44,7 @@

    By weaving together advances in F# development, intelligent operations, and

    Why IntelliFactory

    - We believe in top level of service and big vision in our development. As a top F# development agency we provide best products our clients. + We believe in top level of service and big vision in our development. As a top F# development agency we provide the best products to our clients.

    @@ -88,7 +88,7 @@

    Our mission

    Our products

    - We have created best tools out there with F# programming to help you to create your application. + We have created best tools out there with F# programming to help you to achieve your dreams.

    @@ -98,7 +98,7 @@

    Our products

    WebSharper

    - One of our best products. + To leverage JavaScript ecosystem

    @@ -107,7 +107,7 @@

    WebSharper

    Bolero

    - Another one of our products + Advance to the future of WebAssembly

    @@ -116,7 +116,7 @@

    Bolero

    CloudSharper

    - Our latest product. + Your environment. Everywhere.

    @@ -126,7 +126,7 @@

    CloudSharper

    -
    +
    @@ -143,14 +143,14 @@

    Fast development, less code

    Business value created

    - We try to create value which our customers and partners remember us with. + We create value which our customers and partners remember us with.

    TTM

    -

    Shorter TTM

    +

    Shorter Time To Market

    Our motto: Ready, set, present. We try to keep time from idea to market to minimum.

    @@ -159,6 +159,35 @@

    Shorter TTM

    + +
    +
    +
    +
    + +
    +

    Onsite Consulting

    +
      +
    • Harness transitioning to functional mindset
    • +
    • Enjoy the gains of frictionless partnerships
    • +
    • Experts at hand
    • +
    +
    +
    +
    + +
    +

    Online Consulting

    +
      +
    • When recorded meetings matter
    • +
    • Seamless connection with distant partners
    • +
    • Available at lockdown
    • +
    +
    +
    +
    +
    +
    diff --git a/src/Hosted/trainings/fsharp-basics.html b/src/Hosted/trainings/fsharp-basics.html index c7f3a8f2..05576811 100644 --- a/src/Hosted/trainings/fsharp-basics.html +++ b/src/Hosted/trainings/fsharp-basics.html @@ -4,7 +4,7 @@ - F# Web Developer + F# basics training What is F# and why it matters

    With us, you can quickly learn to use F# in real-world, complex projects.

    -
    +
    What is F# and why it matters
    -
    +
    Date: Fri, 5 Feb 2021 19:25:27 +0100 Subject: [PATCH 56/71] #10 Added FAQ for individual open job position pages --- src/Hosted/careers.html | 46 +++++++------- src/Hosted/jobs/202102-fsharp-intern.html | 60 +++++++++++++++++++ .../jobs/202102-fsharp-web-developer.html | 60 +++++++++++++++++++ 3 files changed, 143 insertions(+), 23 deletions(-) diff --git a/src/Hosted/careers.html b/src/Hosted/careers.html index ecab77cb..d3432eec 100644 --- a/src/Hosted/careers.html +++ b/src/Hosted/careers.html @@ -11,15 +11,15 @@ href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500&display=swap" rel="stylesheet" /> - - - - - - - - - + + + + + + + + + @@ -57,7 +57,7 @@

    Join us at IntelliFactory

    >
    - +
    @@ -100,7 +100,7 @@

    Friendly team

    @@ -134,7 +134,7 @@

    Internships

    @@ -147,7 +147,7 @@

    Internships

    @@ -385,16 +385,16 @@

    Frequently Asked Questions

    rel="stylesheet" href="/themekit/media/icons/fontawesome/icons.css" /> - - - - - - - - - - + + + + + + + + + +
    diff --git a/src/Hosted/jobs/202102-fsharp-intern.html b/src/Hosted/jobs/202102-fsharp-intern.html index 671b4933..4811c349 100644 --- a/src/Hosted/jobs/202102-fsharp-intern.html +++ b/src/Hosted/jobs/202102-fsharp-intern.html @@ -115,6 +115,66 @@

    Graduation

    +
    +

    Frequently Asked Questions

    +
    +
    +
    + +
    +
    + +
    +
    diff --git a/src/Hosted/jobs/202102-fsharp-web-developer.html b/src/Hosted/jobs/202102-fsharp-web-developer.html index 6306715b..47d84fdd 100644 --- a/src/Hosted/jobs/202102-fsharp-web-developer.html +++ b/src/Hosted/jobs/202102-fsharp-web-developer.html @@ -115,6 +115,66 @@

    Graduation

    +
    +

    Frequently Asked Questions

    +
    +
    +
    + +
    +
    + +
    +
    From df7cb748b8564efcaba0ea3ae481a925d4a8c5e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Garai=20M=C3=A1rton?= Date: Mon, 8 Feb 2021 11:44:05 +0100 Subject: [PATCH 57/71] #19 #9 - Links to the main IntelliFactory tools. li links into snippets. --- src/Hosted/Hosted.fsproj | 1 + src/Hosted/Main.fs | 19 ++++++++----------- src/Hosted/consulting.html | 24 ++++++++++++++++++------ src/Hosted/trainings/fsharp-basics.html | 3 ++- src/Hosted/tutorial-link-snippet.html | 7 +++++++ 5 files changed, 36 insertions(+), 18 deletions(-) create mode 100644 src/Hosted/tutorial-link-snippet.html diff --git a/src/Hosted/Hosted.fsproj b/src/Hosted/Hosted.fsproj index e05b786a..7160ff0f 100644 --- a/src/Hosted/Hosted.fsproj +++ b/src/Hosted/Hosted.fsproj @@ -7,6 +7,7 @@ + diff --git a/src/Hosted/Main.fs b/src/Hosted/Main.fs index a9795f5d..71c6aab2 100644 --- a/src/Hosted/Main.fs +++ b/src/Hosted/Main.fs @@ -386,6 +386,7 @@ module Site = type ConsultingTemplate = Templating.Template<"../Hosted/consulting.html", serverLoad=Templating.ServerLoad.WhenChanged> type CareersTemplate = Templating.Template<"../Hosted/careers.html", serverLoad=Templating.ServerLoad.WhenChanged> type JobsBaseTemplate = Templating.Template<"../Hosted/jobs-base.html", serverLoad=Templating.ServerLoad.WhenChanged> + type TutorialLinkSnippetTamplate = Templating.Template<"../Hosted/tutorial-link-snippet.html", serverLoad=Templating.ServerLoad.WhenChanged> type [] RawConfig = { @@ -930,21 +931,17 @@ module Site = "Code quotations" "Interactive shell and interpreter" ] - |> List.map (fun x -> li [] [ - a [attr.href "#"] [text x] - div [attr.``class`` "content"] [ - a [ - attr.``class`` "btn btn-sm btn-circle full-width" - attr.target "_blank" - attr.href <| mailtoFromTitle x - ] [text "Contact us for an onsite training"] - ] - ]) + |> List.map (fun x -> + TutorialLinkSnippetTamplate + .VideoItem() + .Title(x) + .Doc() + ) template #if !DEBUG .ReleaseMin(".min") #endif - .VideoList(ul [attr.``class`` "accordion-list"] vids) + .VideoList(vids) .MenuBar(menubar config.Value) .Footer(MainTemplate.Footer().Doc()) .Cookie(Cookies.Banner false) diff --git a/src/Hosted/consulting.html b/src/Hosted/consulting.html index 43bafe2b..2d77d337 100644 --- a/src/Hosted/consulting.html +++ b/src/Hosted/consulting.html @@ -94,27 +94,39 @@

    Our products

    - WebSharper + + WebSharper +
    -

    WebSharper

    + +

    WebSharper

    +

    To leverage JavaScript ecosystem

    - Bolero + + Bolero +
    -

    Bolero

    + +

    Bolero

    +

    Advance to the future of WebAssembly

    - CloudSharper + + CloudSharper +
    -

    CloudSharper

    + +

    CloudSharper

    +

    Your environment. Everywhere.

    diff --git a/src/Hosted/trainings/fsharp-basics.html b/src/Hosted/trainings/fsharp-basics.html index 05576811..83fa39c4 100644 --- a/src/Hosted/trainings/fsharp-basics.html +++ b/src/Hosted/trainings/fsharp-basics.html @@ -87,7 +87,8 @@

    How F# increases productivity

    What we offer to train


    -
    +
      +
    diff --git a/src/Hosted/tutorial-link-snippet.html b/src/Hosted/tutorial-link-snippet.html new file mode 100644 index 00000000..81032802 --- /dev/null +++ b/src/Hosted/tutorial-link-snippet.html @@ -0,0 +1,7 @@ +
  • + ${Title} + +
  • + From 41aba5aafe61b01ef358e545a22a2a6cf24b3bca Mon Sep 17 00:00:00 2001 From: jooseppi12 Date: Mon, 8 Feb 2021 12:42:44 +0100 Subject: [PATCH 58/71] Add Dockerfile --- Dockerfile | 25 +++++++++++++++++++++++++ install.sh | 4 ++-- serve.sh | 2 +- 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..d8e2dd92 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +FROM mcr.microsoft.com/dotnet/sdk:3.1 + +# Update environment +RUN apt-get update + +# Install npm +RUN apt-get -y install curl gnupg +RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - +RUN apt-get -y install nodejs +RUN echo "NODE Version:" && node --version +RUN echo "NPM Version:" && npm --version + +# Create working directory +RUN mkdir /website + +# Copy content under /website from the root of the repo +COPY . /website + +WORKDIR /website + +# Exposing port used by the serve.sh +EXPOSE 56001 + +# Install, build and serve +CMD bash -c "./install.sh && ./build.sh && ls -a && ./serve.sh" \ No newline at end of file diff --git a/install.sh b/install.sh index 103ab4bf..bd193508 100644 --- a/install.sh +++ b/install.sh @@ -4,7 +4,7 @@ git submodule update --init --recursive echo "Copy legal/site-docs/if.com/ under src/Hosted/legal/" -cp -r legal/site-docs/intellifactory.com/ src/Hosted/legal/ +cp -rT legal/site-docs/intellifactory.com/ src/Hosted/legal/ echo "Copy blogposts under /src/Hosted/posts" cp -rT blogs/user src/Hosted/posts @@ -15,7 +15,7 @@ npm install npx grunt popd -if [[ $(echo "$1" | awk '{print toupper($0)}') = "-BUILDONLY" ]]; +if ! [[ $(echo "$1" | awk '{print toupper($0)}') = "-BUILDONLY" ]]; then # Install local dotnet-serve dotnet tool install dotnet-serve --tool-path .tools diff --git a/serve.sh b/serve.sh index 40771c66..b70af604 100644 --- a/serve.sh +++ b/serve.sh @@ -1 +1 @@ -".tools/dotnet-serve.exe" -d build -p:56001 --default-extensions:.html -a 0.0.0.0 +".tools/dotnet-serve" -d build -p:56001 --default-extensions:.html -a 0.0.0.0 From 07b0ab1932cf8400296bb564668eab3c106135f8 Mon Sep 17 00:00:00 2001 From: jooseppi12 Date: Mon, 8 Feb 2021 12:47:46 +0100 Subject: [PATCH 59/71] Add helper scripts for Docker --- docker.ps1 | 6 ++++++ docker.sh | 9 +++++++++ 2 files changed, 15 insertions(+) create mode 100644 docker.ps1 create mode 100644 docker.sh diff --git a/docker.ps1 b/docker.ps1 new file mode 100644 index 00000000..f69f5b08 --- /dev/null +++ b/docker.ps1 @@ -0,0 +1,6 @@ +pushd src\Hosted +rm -rf node_modules +popd + +docker build -t website . +docker run -p 56001:56001 website \ No newline at end of file diff --git a/docker.sh b/docker.sh new file mode 100644 index 00000000..dff57065 --- /dev/null +++ b/docker.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# Make sure the windows dependencies are not there +pushd src/Hosted +rm -rf node_modules +popd + +docker build -t website . +docker run -p 56001:56001 website \ No newline at end of file From 207428ae259bb259c75076e855c0b170e44ddb00 Mon Sep 17 00:00:00 2001 From: Adam Granicz Date: Mon, 8 Feb 2021 14:50:12 +0100 Subject: [PATCH 60/71] Moved the blog page template from index.html to blogpost.html - might need to clean this new file up a bit. --- src/Hosted/Main.fs | 48 +++------- src/Hosted/blogpost.html | 196 +++++++++------------------------------ src/Hosted/index.html | 180 +++-------------------------------- 3 files changed, 73 insertions(+), 351 deletions(-) diff --git a/src/Hosted/Main.fs b/src/Hosted/Main.fs index 71c6aab2..7e64035b 100644 --- a/src/Hosted/Main.fs +++ b/src/Hosted/Main.fs @@ -703,29 +703,8 @@ module Site = MainTemplate.Menubar() .Doc() - let ArticleBasePage langopt (config: Config) (pageTitle: option) hasBanner (transparentHeader: bool) articles (body: Doc) = - let head = head() - MainTemplate() -#if !DEBUG - .ReleaseMin(".min") -#endif - .IsTransparentHeader(if transparentHeader then "menu-transparent" else "") - // TODO: .NavbarOverlay(if hasBanner then "overlay-bar" else "") - .Head(head) - .MenuBar(menubar config) - .Title( - match pageTitle with - | None -> "" - | Some t -> t + " | " - ) - .Body(body) - .Cookie(Cookies.Banner false) - .FooterPlaceholder(MainTemplate.Footer().Doc()) - .Doc() - |> Content.Page - let BlogSidebar config articles (article: Article) = - MainTemplate.Sidebar() + BlogPostTemplate.SidebarTemplate() .Categories( // Render the categories widget iff there are categories if article.Categories.IsEmpty then @@ -733,7 +712,7 @@ module Site = else article.Categories |> List.map (fun category -> - MainTemplate.Category() + BlogPostTemplate.Category() .Name(category) .Url(Urls.CATEGORY category (URL_LANG config article.Language)) .Doc() @@ -743,14 +722,14 @@ module Site = // There is always at least one blog post, so we render this // section no matter what. .ArticleItems( - MainTemplate.ArticleItems() + BlogPostTemplate.ArticleItems() .ArticleItems( articles |> Map.toList |> List.sortByDescending (fun (_, item) -> item.Date) |> List.truncate 10 |> List.map (fun (_, item) -> - MainTemplate.ArticleItem() + BlogPostTemplate.ArticleItem() .Title(item.Title) .Url(item.Url) .Date(item.Date.ToShortDateString()) @@ -793,16 +772,19 @@ module Site = [] // Zero out if article has the master language let langopt = URL_LANG config article.Language - // MainTemplate.ArticlePage() - MainTemplate.ArticlePage() + let head = head() + BlogPostTemplate() +#if !DEBUG + .ReleaseMin(".min") +#endif + .IsTransparentHeader("menu-transparent") + .Head(head) + .Menubar(menubar config) + .Cookie(Cookies.Banner false) + .FooterPlaceholder(MainTemplate.Footer().Doc()) // Main content panel .Article( PLAIN article.Content - //MainTemplate.Article() - // .Title(article.Title) - // .Subtitle(Doc.Verbatim article.Subtitle) - // .Content(PLAIN article.Content) - // .Doc() ) .SourceCodeUrl(sprintf "%s/tree/master%s.md" config.GitHubRepo article.Url) .LanguageSelectorPlaceholder( @@ -833,7 +815,7 @@ module Site = // Sidebar .Sidebar(BlogSidebar config articles article) .Doc() - |> ArticleBasePage langopt config (Some article.Title) false false articles + |> Content.Page // The silly ref's are needed because offline sitelets are // initialized in their own special way, without having access diff --git a/src/Hosted/blogpost.html b/src/Hosted/blogpost.html index 87a16705..71af4884 100644 --- a/src/Hosted/blogpost.html +++ b/src/Hosted/blogpost.html @@ -13,6 +13,7 @@ + @@ -24,14 +25,13 @@ -
    +

    ${Title}

    -

    ${Date}

    @@ -40,19 +40,11 @@

    ${Date}

    @@ -172,80 +133,7 @@

    Twitter

    \ No newline at end of file diff --git a/src/Hosted/index.html b/src/Hosted/index.html index 155ed871..ef552b0c 100644 --- a/src/Hosted/index.html +++ b/src/Hosted/index.html @@ -133,7 +133,7 @@
  • - Careers + We are hiring!
  • -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -

    - ${Title} -
    -
    - #${Title}  -
    -
    -

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

    ${Title}

    - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    ${Date}
    - -
    -
    -
    - -
    -
    - GitHub source -
    -

    Found a typo?

    -

    - This blog post is hosted on GitHub here. Feel free to file a ticket or send a PR. -

    -
    -
    -
    -

    Other articles you might be interested in

    -
    -
    -
    -
    -
    -
    -

    Jessica Adams Exibition In New York With After Show

    -
    Technology
    -

    - October 25, 2019 -

    -
    -
    -
    -
    -
    -
    -

    How to change your business and make money

    -
    Business
    -

    - October 24, 2019 -

    -
    -
    -
    -
    -
    -
    -
    - -
    -

    Tagged as

    -
    - -

    Latest posts

    -
    -
    - -
    -
    -

    Twitter

    -
    - -
    -
    -
    +
    -
    +
    + m +