From 22aba9df28a0d383e42f1b6e861b40feb08e24b6 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Sun, 19 Oct 2014 13:49:53 +0300 Subject: [PATCH] Initial import --- favicon.ico | Bin 0 -> 1150 bytes img/blog.gif | Bin 0 -> 1092 bytes img/book-cover.png | Bin 0 -> 80585 bytes img/haskellers.png | Bin 0 -> 786 bytes img/luach.png | Bin 0 -> 993 bytes img/orangeroster.png | Bin 0 -> 646 bytes img/photoblog.png | Bin 0 -> 938 bytes img/profile.jpg | Bin 0 -> 25287 bytes img/resume.png | Bin 0 -> 1144 bytes img/yesodicon.png | Bin 0 -> 739 bytes index.hamlet | 137 ++++++++++++ posts.yaml | 12 ++ posts/first-post | 1 + posts/ie-mimetype-png | 76 +++++++ posts/xslt-rant | 14 ++ posts/xslt-rant-explained | 93 ++++++++ README => robots.txt | 0 static/normalize.css | 437 ++++++++++++++++++++++++++++++++++++++ static/style.lucius | 98 +++++++++ style.lucius | 61 ++++++ torah/CFInstall.js | 348 ++++++++++++++++++++++++++++++ torah/keinim2-2.html | 369 ++++++++++++++++++++++++++++++++ torah/teruma.html | 156 ++++++++++++++ 23 files changed, 1802 insertions(+) create mode 100644 favicon.ico create mode 100644 img/blog.gif create mode 100644 img/book-cover.png create mode 100644 img/haskellers.png create mode 100644 img/luach.png create mode 100644 img/orangeroster.png create mode 100644 img/photoblog.png create mode 100644 img/profile.jpg create mode 100644 img/resume.png create mode 100644 img/yesodicon.png create mode 100644 index.hamlet create mode 100644 posts.yaml create mode 100644 posts/first-post create mode 100644 posts/ie-mimetype-png create mode 100644 posts/xslt-rant create mode 100644 posts/xslt-rant-explained rename README => robots.txt (100%) create mode 100644 static/normalize.css create mode 100644 static/style.lucius create mode 100644 style.lucius create mode 100644 torah/CFInstall.js create mode 100644 torah/keinim2-2.html create mode 100644 torah/teruma.html diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..bb7d3f147897a9d499545f9f9707e209eb28d4b9 GIT binary patch literal 1150 zcmb7^`%l|d7>8@(AF#wIQ)i-X(+T5l2rx3n#d2Apg~AGzL7@eD153FT3gfzQ$zU=Z z3%V)WaAKA~Ai!vWwzNPi)7 zk+8lm(!MSdy(JQf&Il4xLgr;&2qKYi_Uh=(mQWFYjy72;U4<&@sz+(mUqzi^prNH3 z>zy$wZ%>kJ9N>Im2fFqFW@aY1Szn1kCZWGLmo7y*wP{IwsVm{D%2qm6`BY`dFv#VY zTW^wQ8Yd?C0g0av6Dqcls?gDVi3)p8lyWHEV} zCFq-0k(bRO)lUKCDT5{>UmMl*ONw&<4 zLiZ4LlG{C*3$oQc*w23KQuX3zsUcv48KDz^G%iN{h3@g7|`pzz7|2=L#6gPNcU~kFtE2 z67zkm4a2mz+$B3x#T$O7c<*#5MfnCESu2^T)zOq!K%(qApT=DwB+9^)R))7sf-%Ry z`SfZk%3CSc)Dw|X%JH{9;!VGk1O~?u6ckH!mV%s%8WN?0gh%%f5?#ULS~Y)PRWhPe zV5sUwt*)Z1rkhwv0q>mf$M4;b2?$Q$Y*0LBf)hzC_?CoABg7>15E0)*iBv&sSQG*N zk@)*Z6BR8cIXRP0&PMQ|aCaY^3L_}&GXg@zNR+oIY<$Ay%5^lFDKaiUA}h;+G)GIW z+KftXMN`p&-qJ~p@FuLCw`sb5mzuT#w5C3kx=Ai%^pd0)A}XPsOnDF28pav3tuZmX z#^l^86ZRD*Z7WRKd`!-GnRx8QvAm0YahDw94-{S5B-`XeUOG;*^?T~fLrmM&ak#gb zb!{-~SjX;M$L3gLW`33F`8Af-pR*_^&pbg<^Dauu2GxyDejJ!#k<^iU5yWoF~){ZCq>Du8hyPLTw2a7*F#qHf=VR=vB?BZM$ zIG*hz&AYepZNCs02iQG(4Bl~KzwhK9x0`j_Jj<)UvAD92=ZNu?1@AAo1iy!J3ZCbM zo_sqm@NFG3{t)5;zRhPWZ9ISJYwa1H)n9S12(`X_T)zJpdpLypL%sSR{NMe*afphe literal 0 HcmV?d00001 diff --git a/img/blog.gif b/img/blog.gif new file mode 100644 index 0000000000000000000000000000000000000000..643dfb0b8e3f46c992f6e11edc1255f8b3b40d5f GIT binary patch literal 1092 zcmcJO{WF_)0KmUdb*4I$5RoxL#U?Se>64(>mJ_eHdaKpU+i9%`f<_jl5v8njbX$jF zwYl|1Z>=@Bw%1Lp9$<;m-=`yclC;q&9?w+}rr9-1 z>kNkT+%3qwx{0#Mg4S}qjK4AVn11?)SGBj#>F=}Guh2|Av5J=DeYU4%e^*HN(saa{ zC+m^RRAgdMSxuIl#l!WHOR3&_6)xr#fxa(ITu)!;#=JU>HO>8QY$aM%3TrC?{mOac za=3yWC2LMG-lSP|D$~+aZR7j$bIvA(aHGgoRs(Gmx|$cp(Pn>nCD~>|cN;=9efjfr zys{>2j*dsh2axf><#fE9NtWf}cWjHa)#= ze%!pujyJ<|+J^Tw8AMSA9#x9e{TDTjA?p<(FgrrRq#{M`lFtar8p;;KPnzjsvzm=f zKH_X2tI4RyIlRfEt!DdZSorOlpx1G@H)WoiycoFHccYuJ)sixwh+8^CK*w0(N@(+& z5*dr8;RL|-QEPQnNyW#?VuCcw4g7ETqxS!`L*M%C6Ts014mdhhm)xFA&*P?r6FYmc z?idHbNNqtICFvF)I#kGwyXhS82kDsoyE8u#0hsaE#D3a$#PTf{sSOMxEPNQzq?Ve?BEgd L{9-1T3!?r7_0S1N literal 0 HcmV?d00001 diff --git a/img/book-cover.png b/img/book-cover.png new file mode 100644 index 0000000000000000000000000000000000000000..a9134138466b0dd8394993b64ce49ee60ae68ec3 GIT binary patch literal 80585 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 z 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 literal 0 HcmV?d00001 diff --git a/img/luach.png b/img/luach.png new file mode 100644 index 0000000000000000000000000000000000000000..7e8e86b1ffd695358974dedabec819ae1457a11e GIT binary patch literal 993 zcmV<710MW|P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ige( z2s1WS7WroY000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0009#Nkl(N>SW&;l?h6hA1k6f{4vV5VTNeMIm&cpyEOabP5UQ$o|PJaAXr;jQKRr;vw}8*|ID# zi^MEq#UiTxqH@@(kVqIzYPA_#~Rvq)@4 ztlEx-A}_y5U$z9UYK19N}@Fqm20@M^?#EK6;sHqH#=cZN2~=<_WbzXMma z$Xi~mMZGZj+~le2KV0`W7jKfv4Xb$IjlR44+^yekJ!IAeTx!sW>k9IMloIM)(jdpg z3&t2qN(^QrxG@*ph%ttg5-N{dkNun{gP-GYuLydIzhoT5AEWo#ku} zU{hIsAG1gqOVqV4FDRk{@HcQ@gU06op|7&fss%W?`4n_npB(#m@|Pc%M}J;eELT@n zADd$83V`hv;H%+~s>KEO*T!(yfN#z%?03Nht4gK6a=7D|x&gT0hh1>$g2wt%{j;&X zW8DF!-<$@Zxzc=3yriCio*97pVx6u-y!iUXr}jLs=ZiecxpD2+NB&&?W4<Ol3$gJ)ix-}XcKui=R&PFC`@xV(CMZDi=Bp)cpBw$1Y|Fj_?VN&UM^ P00000NkvXXu0mjf?Px#24YJ`L;&spkN^Oaw0bcB000SaNLh0L00YPX00YPYCsT9(00007bV*G`2ige( z2Qek+!kq>H00IU{L_t(2&xMj*NK*k6$A5SC-kP&7rc8&8vJVK8k!A`eSq&>edMT{H zkRqywASxe369z3R=piafMnu6XBB7VQP$5)`3PmY4ie=VHbIYw-W8Up{cYBDmv9R-a z4(E3c|NmczoI_`Z@_n{&@OA@L>uoI4yVz}ige<0}<_7*#Mb;4RT^@wo#n>9!Y4Kem zo|OL$xHr6-4u53^WJO+xsP`c;UB|w)hU-JsnShZ<4xI~*@u9?pH&l=TG0AbliiVIS z;TNZmNC1i|;qo7${$wp^I#*vF$2spXvY6s*?-n%4h;KX}n*nr#Kt!_8`fLxWSp4?~ z%}@5Sp=lp#LSy2460zFB(Y^!BmVP44l1XfCrS`-jWRt|JuahJp6&a&`PMMo2G>4}}1Sl~M@ith8AQ*_N#tau$T1MIC zzl_n4m|9M=v2j%o#^>F{$76UWi+LTiWI(nre@flbfwZ3Rca&Alz?B#4=>Awna8$#+ g^9DuM(2Pm_1q&_2&}9sUumAu607*qoM6N<$g1rbEr2qf` literal 0 HcmV?d00001 diff --git a/img/photoblog.png b/img/photoblog.png new file mode 100644 index 0000000000000000000000000000000000000000..c188658eaef576ada2ee30e94d19a8a63307d246 GIT binary patch literal 938 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 literal 0 HcmV?d00001 diff --git a/img/resume.png b/img/resume.png new file mode 100644 index 0000000000000000000000000000000000000000..06f6782df52eca2d22cf6ee7e4367ae6b52cba9d GIT binary patch literal 1144 zcmWksX;9R482$rpz&e;Bj#fH;s2S37CSiiCW)cPzObCgl=o1qKLrsUl)R-WLsh}9< zu?u^!EbRUd6^J9{h(rQZB#3JdSQZv`m*s~2-{-I8!}C1zyz{)zhj-qxl;o2k@|Wch z1cf9f#HIRlrw_Y>0({)iULg9!FE{mMEYvWxe-VQGZ7HYI;{SHiWg6s~7P+EEo-eZh zxS9S1=CO+zSY%y<@YKWfx|v5#`mcGqV~!qPX6JEXffQC~@!uu(&sl1b5}tY3u6cTm z5r5aAeGAO!3ir@KZL;F5mv<7vIwNkdqJ5M9Z<)n8$+X6`%ur2s%0mhyFa2SsrZ)KT zRgU7NIb3L-p&F*i=}q3Y!QZ!$w`$NH7lTca<~8oYEX4@YJsVlBMcU_Rqm{T`jTBeG zoG2NrM4N-Yqem}R!FQ*~Wm*IP3@)(~tK4tZh-IC-tVV9=P+E{2Uf#OS)mn(5C6?f% z8Z$BD<*QA2<21QSi|`~NN@D@r3PtOR^vqOunA zvf|J(dsT~|Q=|juFR753O@45Z)ohi}m(<7wrLo7&)Z55qO4OSPbsbi!LE0RYst#*+ z(7Y&VMuEnJ*I5bcI#2LYzS4M61y8JT9!fZ`Fy=i1G%q#U$?^ekXBa$iP!&2vl0cuE z(HO92i|m~tP}B#~TR@=_wybfmm6*eMtpRJaQ)&ZtK?!HIgQNyf+y}~^1BD)qHh^~w zAO;1oC~)G!O&#jxBwhk{ZDe*kI9(6YTS1qTwr%pCw}O#nHm@6GcYvaPP+SRXMnG;i z$m#$(GoG(7HruId10bm$s7FBz1{6a;F$^l}Fr5j%rALeVfl`lYjacS4XHT6vC6~(w z4rX?4J$+tk^2g9|wJ%V8_Q(Mw?#!lj~DD{$KmOW^x)_ic0T+AKUqe8$T=|B6<+MW zic^K%-NTRn~z`Ee|xw$BrK(L=aF4O z6O`!;H9Pm6zr3wX;Yk{c3dFO${<3Yykk@n6KX0^zHUH#&*H7kD=bnD8plhY_>%9>l z?eUX8J>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m_e01m_fl`9S#00007bV*G`2ipY? z6dM~H($KH~000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0006$Nkl&cjwNW(~DOn-RQu;!1v5&h697JRpra~ClNUm;C1igvF{%r zK8Bsb;`!T`OuqjX5#|J3TzUWG0RRAH9n9%Cs_+B_xw2B>O#m=iRw&;nhWWysz~m1r z6FF3dvuqpaG#8%=dk=_$DmYpizIQFla=oRiq{3bRVxK1HZCu?0EH6B-u-Mli93Tb# z6y!3%kkY4-R3wsWXIozuCPp7+=Ynjb!#?Y5eT+ztU_b|yGG_)#*9XI%!T>2V2#6xi zNnBfe3jlV{3zEj7Z&aryMBFrpAW~3_dWSA59i2qd1rQAa0=wOzyA0RRAmx#`o^ zGZ7AvR9|4C3ra_2M2bYb_BQ^^-X>jvjo%-VPJ8v8uwMc|A~IJg3xJeWMk`@ux-nOTj z)w$;1{d)ia5Z9^CG22NIF#tlsZq28yg`~b@{|A6Zb#{ea@(F~s2y5na#;5Tr0La$* zH<0feIz-BpfzW}l^0xhTdFJKXR&2WgVfJxMR2U`|jsTEn_CMKmDgfa3yKH-+xt>yZ z?9|;+Ajy%U<4DSh_<(&f6>n7Lp-XK8NCt`2S<>M_KyC=6z`ir>+V%1E9}|skz#m}p VA2zG>hs*!~002ovPDHLkV1m69L^uEd literal 0 HcmV?d00001 diff --git a/index.hamlet b/index.hamlet new file mode 100644 index 0000000..480361b --- /dev/null +++ b/index.hamlet @@ -0,0 +1,137 @@ +$doctype 5 + + + + + Michael Snoyman's homepage + <link rel=stylesheet href=style.lucius> + <body> + <aside> + <img src=profile.jpg alt="Michael Snoyman" width=150 height=213> + <ul> + <li> + <a href="https://plus.google.com/116553865628071717889/posts">+Michael Snoyman + <li> + <a href="https://twitter.com/snoyberg">@snoyberg + <li> + <a href="http://www.haskellers.com/user/snoyberg">I'm a Haskeller + + <div #twitter> + <a class="twitter-timeline" href="https://twitter.com/snoyberg" data-widget-id="296574273508741122">Tweets by @snoyberg</a> + <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> + + + <article> + <h1>Michael Snoyman + <h2>About Me + <p .aboutme> + I'm a (mainly) Haskell web developer, and lead developer of the <a href="http://www.yesodweb.com">Yesod Web Framework</a>. + I'm the Lead Software Engineer at <a href="http://fpcomplete.com">FP Complete</a>. + I live in Maalot, Israel with my wife and three kids. + + <h2>Publications + <ul> + <li> + <a href="http://aosabook.org/en/posa/warp.html">Performance of Open Source Applications# + . November 2013 + <li> + <a href="http://www.aosabook.org/en/yesod.html">Architecture of Open Source Applications, Volume 2# + . May 2012 + <li> + <a href="http://shop.oreilly.com/product/0636920023142.do">Developing Web Applications with Haskell and Yesod# + . April 2012, O'Reilly + <li> + <a href="http://steve.vinoski.net/pdf/IC-Warp_a_Haskell_Web_Server.pdf">Warp: A Haskell Web Server# + . June 2011, IEEE Spectrum + <i>The Functional Web + + <h2>Talks + <table> + <thead> + <tr> + <th>Date + <th>Title + <th>Venue + <th>Links + <tbody> + <tr> + <td>October 2014 + <td>Hybrid server/client Haskell web apps + <td> + <a href=http://polyconf.com/>PolyConf 2014 + <td>To be posted after the talk + <tr> + <td>October 2014 + <td>Conduit + <td>Haskell Users Group, Berlin + <td>To be posted after the talk + <tr> + <td>February 2014 + <td>Pipes and Conduit + <td>Haskell Cast + <td> + <a href="http://www.haskellcast.com/episode/006-gabriel-gonzalez-and-michael-snoyman-on-pipes-and-conduit/">Video + <tr> + <td>November 2013 + <td>Yesod and FP Complete + <td>Mostly Erlang (podcast) + <td> + <a href="http://mostlyerlang.com/2013/11/27/023-yesod-and-fp-complete/">Audio + <tr> + <td>October 2013 + <td>Programming with Functional Style + <td>Erlang Factory, Tel Aviv + <td> + <a href="https://docs.google.com/presentation/d/1770ZKnm_bUpkOfzYN_IZq7AVFE6J1pKyFMX9iqVgyAI/edit?usp=sharing">Slides + <tr> + <td>Dec 2012 + <td>Haskell and Yesod + <td>Sayeret Lambda + <td> + <a href="https://docs.google.com/presentation/d/1_A1QMbFPmpfBc-uJz8Z4G4tESVuxErW4kmI-R2yVnU4/edit">Slides + <tr> + <td>Dec 2012 + <td>Yesod + <td>Floss Weekly + <td> + <a href="http://twit.tv/show/floss-weekly/236">Video + <tr> + <td>Nov 2012 + <td>Designing Domain Specific Languages + <td>O'Reilly Webinar + <td> + <a href="http://www.oreillynet.com/pub/e/2400">Video + <a href="https://docs.google.com/presentation/d/1flkeCW-8rNPrT1d-YkxMm4repuAeT1YxjmdRd2f-FDs/edit">Slides + <tr> + <td>Oct 2012 + <td>Yesod + <td>Sayeret Lambda (podcast) + <td> + <a href="http://narkisr.github.io/lambda-pod/posts/2012-10/lambda-pod-yesod-episode.html">Audio + <tr> + <td>June 2012 + <td>Designing Type-Safe Haskell APIs + <td>Big Techday 5 + <td> + <a href="http://www.oreillynet.com/pub/e/2351">Video + <a href="https://docs.google.com/presentation/d/1K7smIeqmca-fY8qgQUKrvWWHTUPJoKuVLRtLeWYFMtI/edit">Slides + <tr> + <td>Nov 2011 + <td>Yesod Web Framework + <td>QCon San Francisco + <td> + <a href="http://www.infoq.com/presentations/Yesod;jsessionid=6AF0AA3EF8CCCE7195BDBBB0C8E1050B">Video + <a href="https://docs.google.com/presentation/d/15wN2uLhMdTWqvYD2RtN0W3XFyTYQ0Kh6bHOKlthBhX0/edit">Slides + + <h2>My Sites + <ul> + <li> + <a href="http://photos.snoyman.com">Family Photo Blog + <li> + <a href="http://www.yesodweb.com">Yesod Web Framework + <li> + <a href="http://www.haskellers.com">Haskellers + <li> + <a href="http://packdeps.haskellers.com">Packdeps + <li> + <a href="http://luach.snoyman.com">Luach diff --git a/posts.yaml b/posts.yaml new file mode 100644 index 0000000..80a8c12 --- /dev/null +++ b/posts.yaml @@ -0,0 +1,12 @@ +- file: posts/xslt-rant-explained + title: "XSLT Rant Explained" + day: 2012-04-09 +- file: posts/xslt-rant + title: "Open Letter to XSLT Fans" + day: 2012-04-05 +- file: posts/ie-mimetype-png + title: "Dysfunctional Programming: FindMimeFromData" + day: 2012-03-22 +- file: posts/first-post + title: First Post + day: 2012-01-31 diff --git a/posts/first-post b/posts/first-post new file mode 100644 index 0000000..1d48c03 --- /dev/null +++ b/posts/first-post @@ -0,0 +1 @@ +Most of my blogging still occurs on the [Yesod blog](http://www.yesodweb.com/blog). This blog will be home for posts that are not necessarily Yesod or Haskell related. diff --git a/posts/ie-mimetype-png b/posts/ie-mimetype-png new file mode 100644 index 0000000..c2c3e0b --- /dev/null +++ b/posts/ie-mimetype-png @@ -0,0 +1,76 @@ +I've been a bit torn about what exactly to put on this blog. Short comments go +to Google+. Anything Haskell related goes to the [Yesod blog](http://www.yesodweb.com/blog). +So what goes here? + +For now, I've decided to start a series on dysfunctional programming. In other +words, horror stories from the non-Haskell world. + +Today's tale begins with a strange bug report. One of our clients says that all +of the CSS changes we put on their server have suddenly disappeared. Which is +especially strange, because I don't have any write access to their production +server. There were two aspects to this report: bullets were missing, and the +title image didn't display in IE. By the way, there's a separate title image, +provided by the client, for each publication. + +Forget about the bullets for now, that one wasn't interesting. The title image +was truly a conundrum. I started off by loading the output in Chrome. No +problem. Internet Explorer? Red X. At first I thought it was a URL mangling +issue. But when I tried moving the title image to a simple path on the system +and loading it up, it *still* displayed as a red X. + +I started a local Warp server and accessed the site from there. No problem. + +So... the file itself is correct, and the name of the file isn't the problem. +What's the issue? I spent a good 30 minutes looking for PNG bugs in IE. +Unfortunately, with IE's sordid history of PNG bugs, it was like looking for a +needle in a haystack. However, I saw one off-hand comment: + +> Try right-clicking the image, choosing properties, and look at the type. + +I tried it and, sure enough, the type was "Unknown," not "PNG". So it turns out +that when served from a web server, IE was delivered the correct mimetype via a +response header. But when opening from the local filesystem, it needs to detect +the mimetype automatically. + +Looking at a file extension is too simple. IE needs to outsmart us. The +solution? +[FindMimeFromData](http://msdn.microsoft.com/en-us/library/ie/ms775147%28v=vs.85%29.aspx). +This wonderfully constructed function inspects the contents of the file in +question and determines the mimetype. For example, this nifty little program +will print the mimetype of the title.png file: + + #include <urlmon.h> + #include <stdio.h> + + int main(int argc, char* argv[]) + { + char buff[256]; + LPWSTR out; + + FILE *in = fopen("title.png", "rb"); + + fread(buff, 1, 256, in); + + FindMimeFromData(NULL, NULL, buff, 256, NULL, FMFD_DEFAULT, &out, 0); + + printf("%ls\n", out); + + return 0; + } + +The result? `image/pjpeg` of course! Never mind that that's an invalid mimetype, but the Win32 function is giving the __wrong mimetype for a PNG file__!!! I'm not quite certain how Microsoft screwed this up so royally. There's a very explicit set of bytes at the beginning of the file indicating that it's a PNG, and [imagesize-conduit](http://hackage.haskell.org/package/imagesize-conduit) detects it just fine: + + import Data.Conduit + import Data.Conduit.Binary + import Data.Conduit.ImageSize + + main :: IO () + main = do + f <- runResourceT $ sourceFile "title.png" $$ sinkImageInfo + print f + +In other words: Internet Explorer, since version 4, can't even display some +simple images. + +I had to tell the client that we have no workaround, and they need to either +"fix" their perfectly valid PNG or always serve their content from a webserver. diff --git a/posts/xslt-rant b/posts/xslt-rant new file mode 100644 index 0000000..df1c9c3 --- /dev/null +++ b/posts/xslt-rant @@ -0,0 +1,14 @@ +Dear XSLT fans, + +Please don't insist on calling your bastard child of a language "functional." Just because it got one thing sort-of right (immutable data), doesn't mean that it in any way represents a real functional language. + +I'm not even talking about the hideously verbose syntax, or the completely obtuse data model. The fact that you can't know what any single line of code does without reviewing __every other line in the program__ makes this language an abomination. + +Don't believe me? Ask me for examples, I'll prove it. But anyone who's used XSLT for multi-file projects likely knows I'm right. + +Oh, and the fact that you can call a language functional when it *lacks first class functions* makes my eye twitch. I'm tempted to upload a video of my eye twitching just to prove it. + +Sincerely, +A Haskell programmer who spends an inordinate amount of time debugging bad XSLT. + +PS: I would gladly write a program in Java, or C++, or likely assembly, over XSLT any day. Those languages may have issues, but they're sane tools. XSLT is just fundamentally broken. diff --git a/posts/xslt-rant-explained b/posts/xslt-rant-explained new file mode 100644 index 0000000..3d7a8e0 --- /dev/null +++ b/posts/xslt-rant-explained @@ -0,0 +1,93 @@ +My previous blog post got a bit more attention than I'd anticipated. I hadn't +really intended it as more than a place to link to and let the XSLT people I +work with know that the language isn't representative of functional languages. +However, a number of people have asked for more details. That's the purpose of +this post. + +Before getting into the claims of my post itself, let me address some of the +counter-claims I saw in some of the discussions: + +* <b>XSLT isn't *functional*, it's *declarative*.</b> I can agree with this distinction, and think the XSLT world needs to accept it. +* __XSLT is actually very concise.__ No, it's not. XPath- the query language used by XSLT- is incredibly concise, and I have no issue with it. In fact, when designing [xml-conduit](http://hackage.haskell.org/package/xml-conduit), Aristid and I designed the combinators after XPath. +* __XSLT 2.0 fixes a lot of this stuff.__ XSLT 2.0 is just lipstick on a hog. It changes none of the underlying problems. + +One last bit of explanation: I don't think most people realize the level to +which XSLT is used in some projects. When used as a client-side technology to +convert some simple XML into simple HTML, XSLT can work just fine. I *still* +think it's a horrible language, but it's passable. The real problem is that +*XSLT doesn't scale*. Here's the issue I was alluding to in my previous blog +post. The DITA-OT has some code that looks like: + + + <!-- Copy @id attributes verbatim --> + <xsl:template match="@id"> + <xsl:attribute name="id" select="."/> + </xsl:template> + + <xsl:template match="some-element"> + <xsl:apply-templates select="@id"/> <!-- Applies the default template to the ID attribute --> + <!-- A bunch more ugly code --> + </xsl:template> + +Then, one of my coworkers unwittingly added: + + <!-- Some special case requires printing out the attributes verbatim. --> + <xsl:template match="@*"> + <xsl:if test="$some-special-case"> + <xsl:value-of select="."/> + </xsl:if> + </xsl:template> + +That second block says to print out the raw value of the attribute in question. +The problem is, it overrides the definition of the @id template in the first +block, and now all the ids for some-element are being printed out verbatim, +which is *not* what we wanted! + +So which of those code blocks is wrong? Both of them. You shouldn't be +polluting the global namespace with these kinds of specific templates, they +each should have been put in their own `mode`. But I have two points here: + +* `XSLT` is encouraging people to write bad code by using a global namespace by default. +* It's horribly difficult to find a bug like this. This project is well over 8000 lines of XSLT code, spread across some 40 files. It took me an hour to debug this. Sure, the people writing the original code wrote it badly, but a language shouldn't punish maintainers like this! + +The issue here is one that many XSLT proponents contend is a strength: you can +go ahead and modify the behavior of existing templates in a later file. This +can actually be very convenient. Imagine you're converting DocBook to HTML, and +you have: + + <xsl:template match="para"> + <p> + <xsl:apply-templates/> + </p> + </xsl:template> + +And now you decide that you would like to change this so that a `para` tag is +always given a `class` of `paragraph` in the HTML. You can go ahead and write a +customization: + + <xsl:template match="para"> + <p class="paragraph"> + <xsl:apply-templates/> + </p> + </xsl:template> + +And all of the existing code will automatically use this new template. I won't +argue that this isn't convenient. It certainly is. But it flies in the face of +all good engineering practice. Suddenly, I have no idea what an +`apply-templates` will do. I describe this as: + +> You have no idea what a single line of code will do without analyzing every +> other line of code in your program. + +There are plenty of ways to do this properly in real programming languages. In +my Haskell-based DITA processing code, for example, there is a setting allowing +you to specify specific handling for individual elements. Then in the calling +code, you are explicitly calling into a function for which you don't know what +the output will necessarily be. Everything is properly namespaced and +segregated, and you can know by looking at the code in front of you just how +it's going to be dispatched. + +I'm out of time for now, but if anyone wants to see examples of XML processing +done right, let me know. I will say that for some of my company's newer +products, I've completely reimplemented DITA-to-HTML transforms, and it's +likely a tenth of the size of the DITA-OT's HTML transforms. diff --git a/README b/robots.txt similarity index 100% rename from README rename to robots.txt diff --git a/static/normalize.css b/static/normalize.css new file mode 100644 index 0000000..0e289ab --- /dev/null +++ b/static/normalize.css @@ -0,0 +1,437 @@ +/*! normalize.css 2012-01-22T23:30 UTC - http://github.com/necolas/normalize.css */ + +/* ============================================================================= + HTML5 display definitions + ========================================================================== */ + +/* + * Corrects block display not defined in IE6/7/8/9 & FF3 + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +/* + * Corrects inline-block display not defined in IE6/7/8/9 & FF3 + */ + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +/* + * Prevents modern browsers from displaying 'audio' without controls + */ + +audio:not([controls]) { + display: none; +} + +/* + * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4 + * Known issue: no IE6 support + */ + +[hidden] { + display: none; +} + + +/* ============================================================================= + Base + ========================================================================== */ + +/* + * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units + * http://clagnut.com/blog/348/#c790 + * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom + * www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ + */ + +html { + font-size: 100%; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/* + * Addresses font-family inconsistency between 'textarea' and other form elements. + */ + +html, +button, +input, +select, +textarea { + font-family: sans-serif; +} + +/* + * Addresses margins handled incorrectly in IE6/7 + */ + +body { + margin: 0; +} + + +/* ============================================================================= + Links + ========================================================================== */ + +/* + * Addresses outline displayed oddly in Chrome + */ + +a:focus { + outline: thin dotted; +} + +/* + * Improves readability when focused and also mouse hovered in all browsers + * people.opera.com/patrickl/experiments/keyboard/test + */ + +a:hover, +a:active { + outline: 0; +} + + +/* ============================================================================= + Typography + ========================================================================== */ + +/* + * Neutralise smaller font-size in 'section' and 'article' in FF4+, Chrome, S5 + */ + +h1 { + font-size: 2em; +} + +/* + * Addresses styling not present in IE7/8/9, S5, Chrome + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/* + * Addresses style set to 'bolder' in FF3+, S4/5, Chrome +*/ + +b, +strong { + font-weight: bold; +} + +blockquote { + margin: 1em 40px; +} + +/* + * Addresses styling not present in S5, Chrome + */ + +dfn { + font-style: italic; +} + +/* + * Addresses styling not present in IE6/7/8/9 + */ + +mark { + background: #ff0; + color: #000; +} + +/* + * Corrects font family set oddly in IE6, S4/5, Chrome + * en.wikipedia.org/wiki/User:Davidgothberg/Test59 + */ + +pre, +code, +kbd, +samp { + font-family: monospace, serif; + _font-family: 'courier new', monospace; + font-size: 1em; +} + +/* + * Improves readability of pre-formatted text in all browsers + */ + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +/* + * 1. Addresses CSS quotes not supported in IE6/7 + * 2. Addresses quote property not supported in S4 + */ + +/* 1 */ + +q { + quotes: none; +} + +/* 2 */ + +q:before, +q:after { + content: ''; + content: none; +} + +small { + font-size: 75%; +} + +/* + * Prevents sub and sup affecting line-height in all browsers + * gist.github.com/413930 + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + + +/* ============================================================================= + Lists + ========================================================================== */ + +ul, +ol { + margin-left: 0; + padding: 0 0 0 40px; +} + +dd { + margin: 0 0 0 40px; +} + +nav ul, +nav ol { + list-style: none; + list-style-image: none; +} + + +/* ============================================================================= + Embedded content + ========================================================================== */ + +/* + * 1. Removes border when inside 'a' element in IE6/7/8/9, FF3 + * 2. Improves image quality when scaled in IE7 + * code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ + */ + +img { + border: 0; /* 1 */ + -ms-interpolation-mode: bicubic; /* 2 */ +} + +/* + * Corrects overflow displayed oddly in IE9 + */ + +svg:not(:root) { + overflow: hidden; +} + + +/* ============================================================================= + Figures + ========================================================================== */ + +/* + * Addresses margin not present in IE6/7/8/9, S5, O11 + */ + +figure { + margin: 0; +} + + +/* ============================================================================= + Forms + ========================================================================== */ + +/* + * Corrects margin displayed oddly in IE6/7 + */ + +form { + margin: 0; +} + +/* + * Define consistent border, margin, and padding + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/* + * 1. Corrects color not being inherited in IE6/7/8/9 + * 2. Corrects text not wrapping in FF3 + * 3. Corrects alignment displayed oddly in IE6/7 + */ + +legend { + border: 0; /* 1 */ + padding: 0; + white-space: normal; /* 2 */ + *margin-left: -7px; /* 3 */ +} + +/* + * 1. Corrects font size not being inherited in all browsers + * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome + * 3. Improves appearance and consistency in all browsers + */ + +button, +input, +select, +textarea { + font-size: 100%; /* 1 */ + margin: 0; /* 2 */ + vertical-align: baseline; /* 3 */ + *vertical-align: middle; /* 3 */ +} + +/* + * Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet + */ + +button, +input { + line-height: normal; /* 1 */ +} + +/* + * 1. Improves usability and consistency of cursor style between image-type 'input' and others + * 2. Corrects inability to style clickable 'input' types in iOS + * 3. Removes inner spacing in IE7 without affecting normal text inputs + * Known issue: inner spacing remains in IE6 + */ + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; /* 1 */ + -webkit-appearance: button; /* 2 */ + *overflow: visible; /* 3 */ +} + +/* + * 1. Addresses box sizing set to content-box in IE8/9 + * 2. Removes excess padding in IE8/9 + * 3. Removes excess padding in IE7 + Known issue: excess padding remains in IE6 + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + *height: 13px; /* 3 */ + *width: 13px; /* 3 */ +} + +/* + * 1. Addresses appearance set to searchfield in S5, Chrome + * 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof) + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/* + * Removes inner padding and search cancel button in S5, Chrome on OS X + */ + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +/* + * Removes inner padding and border in FF3+ + * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/* + * 1. Removes default vertical scrollbar in IE6/7/8/9 + * 2. Improves readability and alignment in all browsers + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + + +/* ============================================================================= + Tables + ========================================================================== */ + +/* + * Remove most spacing between table cells + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/static/style.lucius b/static/style.lucius new file mode 100644 index 0000000..aa68bc8 --- /dev/null +++ b/static/style.lucius @@ -0,0 +1,98 @@ +@headercolor: #000; + +html { + background-color: #ccf; +} +body { + font-family: Calibri, Helvetica, "Droid Sans", "DejaVu Sans", Verdana, sans-serif; + width: 940px; + margin: 1em auto; + padding: 1em; + background-color: #fff; + border: 1px solid #333; +} +header h1 { + margin-top: 0; + font-size: 1em; + font-weight: normal; + color: #{headercolor}; +} +header { + border-bottom: 3px solid #000; + margin-bottom: 2em; +} +.sidebar h1 { + color: #{headercolor}; +} +article { + width: 600px; + float: left; +} +article hgroup { + margin-bottom: 2em; + h1 { + margin: 0; + } + h2 { + font-size: 1em; + font-weight: normal; + font-style: italic; + margin: 0; + color: #666; + } +} +.sidebar { + width: 250px; + float: right; + font-size: 0.8em; +} +nav ul { + padding: 0; +} +.me p { + font-style: italic; +} +.sidebar > * { + border: 1px solid #333; + border-radius: 5px; + padding: 5px; + margin-bottom: 2em; + background-color: #fff8dd; +} +.sidebar h1 { + margin: 0; +} +.links li { + margin-bottom: 0.5em; +} +a, a:visited { + color: #00f; + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +.clearfix { + clear: both; +} +.book img { + width: 150px; +} +.archive section h1 { + font-size: 1em; + color: #000; + margin-top: 1em; +} + +@media (max-width: 960px) { + body { + width: auto; + margin: 0; + } + article, .sidebar { + float: none; + } + article { +width: auto; +} +} diff --git a/style.lucius b/style.lucius new file mode 100644 index 0000000..1e1b088 --- /dev/null +++ b/style.lucius @@ -0,0 +1,61 @@ +html, body { + margin: 0; + padding: 0; + font-family: sans-serif; +} + +aside { + float: right; + width: 300px; +} + +article { + margin-right: 320px; +} + +body { + width: 900px; + margin: 0 auto; +} + +p.aboutme { + white-space: pre-wrap; +} + +table { + border-spacing: 0; + border-collapse: collapse; +} + +tr:nth-child(odd) td { + background-color: #f8f8f8; +} + +td { + font-size: 0.9em; + padding: 2px; +} + +td:nth-child(2) { + font-weight: bold; +} + +@media screen and (max-width: 900px) { + aside { + float: none; + width: auto; + } + + #twitter { + display: none; + } + + body { + width: auto; + margin: 5px; + } + + article { + margin: 0; + } +} diff --git a/torah/CFInstall.js b/torah/CFInstall.js new file mode 100644 index 0000000..66342c8 --- /dev/null +++ b/torah/CFInstall.js @@ -0,0 +1,348 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/** + * @fileoverview CFInstall.js provides a set of utilities for managing + * the Chrome Frame detection and installation process. + * @author slightlyoff@google.com (Alex Russell) + */ + +(function(scope) { + // bail if we'd be over-writing an existing CFInstall object + if (scope['CFInstall']) { + return; + } + + /** + * returns an item based on DOM ID. Optionally a document may be provided to + * specify the scope to search in. If a node is passed, it's returned as-is. + * @param {string|Node} id The ID of the node to be located or a node + * @param {Node} doc Optional A document to search for id. + * @return {Node} + */ + var byId = function(id, doc) { + return (typeof id == 'string') ? (doc || document).getElementById(id) : id; + }; + + ///////////////////////////////////////////////////////////////////////////// + // Plugin Detection + ///////////////////////////////////////////////////////////////////////////// + + /** + * Checks to find out if ChromeFrame is available as a plugin + * @return {Boolean} + */ + var isAvailable = function() { + // For testing purposes. + if (scope.CFInstall._force) { + return scope.CFInstall._forceValue; + } + + // Look for CF in the User Agent before trying more expensive checks + var ua = navigator.userAgent.toLowerCase(); + if (ua.indexOf("chromeframe") >= 0) { + return true; + } + + if (typeof window['ActiveXObject'] != 'undefined') { + try { + var obj = new ActiveXObject('ChromeTab.ChromeFrame'); + if (obj) { + return true; + } + } catch(e) { + // squelch + } + } + return false; + }; + + /** + * Creates a style sheet in the document containing the passed rules. + */ + var injectStyleSheet = function(rules) { + try { + var ss = document.createElement('style'); + ss.setAttribute('type', 'text/css'); + if (ss.styleSheet) { + ss.styleSheet.cssText = rules; + } else { + ss.appendChild(document.createTextNode(rules)); + } + var h = document.getElementsByTagName('head')[0]; + var firstChild = h.firstChild; + h.insertBefore(ss, firstChild); + } catch (e) { + // squelch + } + }; + + /** @type {boolean} */ + var cfStyleTagInjected = false; + /** @type {boolean} */ + var cfHiddenInjected = false; + + /** + * Injects style rules into the document to handle formatting of Chrome Frame + * prompt. Multiple calls have no effect. + */ + var injectCFStyleTag = function() { + if (cfStyleTagInjected) { + // Once and only once + return; + } + var rules = '.chromeFrameInstallDefaultStyle {' + + 'width: 800px;' + + 'height: 600px;' + + 'position: absolute;' + + 'left: 50%;' + + 'top: 50%;' + + 'margin-left: -400px;' + + 'margin-top: -300px;' + + '}' + + '.chromeFrameOverlayContent {' + + 'position: absolute;' + + 'margin-left: -400px;' + + 'margin-top: -300px;' + + 'left: 50%;' + + 'top: 50%;' + + 'border: 1px solid #93B4D9;' + + 'background-color: white;' + + '}' + + '.chromeFrameOverlayContent iframe {' + + 'width: 800px;' + + 'height: 600px;' + + 'border: none;' + + '}' + + '.chromeFrameOverlayCloseBar {' + + 'height: 1em;' + + 'text-align: right;' + + 'background-color: #CADEF4;' + + '}' + + '.chromeFrameOverlayUnderlay {' + + 'position: absolute;' + + 'width: 100%;' + + 'height: 100%;' + + 'background-color: white;' + + 'opacity: 0.5;' + + '-moz-opacity: 0.5;' + + '-webkit-opacity: 0.5;' + + '-ms-filter: ' + + '"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";' + + 'filter: alpha(opacity=50);' + + '}'; + injectStyleSheet(rules); + cfStyleTagInjected = true; + }; + + /** + * Injects style rules to hide the overlay version of the GCF prompt. + * Multiple calls have no effect. + */ + var closeOverlay = function() { + // IE has a limit to the # of <style> tags allowed, so we avoid + // tempting the fates. + if (cfHiddenInjected) { + return; + } + var rules = '.chromeFrameOverlayContent { display: none; }' + + '.chromeFrameOverlayUnderlay { display: none; }'; + injectStyleSheet(rules); + // Hide the dialog for a year (or until cookies are deleted). + var age = 365 * 24 * 60 * 60 * 1000; + document.cookie = "disableGCFCheck=1;path=/;max-age="+age; + cfHiddenInjected = true; + }; + + /** + * Plucks properties from the passed arguments and sets them on the passed + * DOM node + * @param {Node} node The node to set properties on + * @param {Object} args A map of user-specified properties to set + */ + var setProperties = function(node, args) { + + var srcNode = byId(args['node']); + + node.id = args['id'] || (srcNode ? srcNode['id'] || getUid(srcNode) : ''); + + // TODO(slightlyoff): Opera compat? need to test there + var cssText = args['cssText'] || ''; + node.style.cssText = ' ' + cssText; + + var classText = args['className'] || ''; + node.className = classText; + + // default if the browser doesn't so we don't show sad-tab + var src = args['src'] || 'about:blank'; + + node.src = src; + + if (srcNode) { + srcNode.parentNode.replaceChild(node, srcNode); + } + }; + + /** + * Creates an iframe. + * @param {Object} args A bag of configuration properties, including values + * like 'node', 'cssText', 'className', 'id', 'src', etc. + * @return {Node} + */ + var makeIframe = function(args) { + var el = document.createElement('iframe'); + el.setAttribute('frameborder', '0'); + el.setAttribute('border', '0'); + setProperties(el, args); + return el; + }; + + /** + * Adds an unadorned iframe into the page, taking arguments to customize it. + * @param {Object} args A map of user-specified properties to set + */ + var makeInlinePrompt = function(args) { + args.className = 'chromeFrameInstallDefaultStyle ' + + (args.className || ''); + var ifr = makeIframe(args); + // TODO(slightlyoff): handle placement more elegantly! + if (!ifr.parentNode) { + var firstChild = document.body.firstChild; + document.body.insertBefore(ifr, firstChild); + } + }; + + /** + * Adds a styled, closable iframe into the page with a background that + * emulates a modal dialog. + * @param {Object} args A map of user-specified properties to set + */ + var makeOverlayPrompt = function(args) { + if (byId('chromeFrameOverlayContent')) { + return; // Was previously created. Bail. + } + + var n = document.createElement('span'); + n.innerHTML = '<div class="chromeFrameOverlayUnderlay"></div>' + + '<table class="chromeFrameOverlayContent"' + + 'id="chromeFrameOverlayContent"' + + 'cellpadding="0" cellspacing="0">' + + '<tr class="chromeFrameOverlayCloseBar">' + + '<td>' + + // TODO(slightlyoff): i18n + '<button id="chromeFrameCloseButton">close</button>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td id="chromeFrameIframeHolder"></td>' + + '</tr>' + + '</table>'; + + document.body.appendChild(n); + var ifr = makeIframe(args); + byId('chromeFrameIframeHolder').appendChild(ifr); + byId('chromeFrameCloseButton').onclick = closeOverlay; + }; + + var CFInstall = {}; + + /** + * Checks to see if Chrome Frame is available, if not, prompts the user to + * install. Once installation is begun, a background timer starts, + * checkinging for a successful install every 2 seconds. Upon detection of + * successful installation, the current page is reloaded, or if a + * 'destination' parameter is passed, the page navigates there instead. + * @param {Object} args A bag of configuration properties. Respected + * properties are: 'mode', 'url', 'destination', 'node', 'onmissing', + * 'preventPrompt', 'oninstall', 'preventInstallDetection', 'cssText', and + * 'className'. + * @public + */ + CFInstall.check = function(args) { + args = args || {}; + + // We currently only support CF in IE + // TODO(slightlyoff): Update this should we support other browsers! + var ua = navigator.userAgent; + var ieRe = /MSIE \S+; Windows NT/; + var bail = false; + if (ieRe.test(ua)) { + // We also only support Win2003/XPSP2 or better. See: + // http://msdn.microsoft.com/en-us/library/ms537503%28VS.85%29.aspx + if (parseFloat(ua.split(ieRe)[1]) < 6 && + ua.indexOf('SV1') < 0) { + bail = true; + } + } else { + bail = true; + } + if (bail) { + return; + } + + // Inject the default styles + injectCFStyleTag(); + + if (document.cookie.indexOf("disableGCFCheck=1") >=0) { + // If we're supposed to hide the overlay prompt, add the rules to do it. + closeOverlay(); + } + + // When loaded in an alternate protocol (e.g., "file:"), still call out to + // the right location. + var currentProtocol = document.location.protocol; + var protocol = (currentProtocol == 'https:') ? 'https:' : 'http:'; + // TODO(slightlyoff): Update this URL when a mini-installer page is + // available. + var installUrl = protocol + '//www.google.com/chromeframe'; + if (!isAvailable()) { + if (args.onmissing) { + args.onmissing(); + } + + args.src = args.url || installUrl; + var mode = args.mode || 'inline'; + var preventPrompt = args.preventPrompt || false; + + if (!preventPrompt) { + if (mode == 'inline') { + makeInlinePrompt(args); + } else if (mode == 'overlay') { + makeOverlayPrompt(args); + } else { + window.open(args.src); + } + } + + if (args.preventInstallDetection) { + return; + } + + // Begin polling for install success. + var installTimer = setInterval(function() { + // every 2 seconds, look to see if CF is available, if so, proceed on + // to our destination + if (isAvailable()) { + if (args.oninstall) { + args.oninstall(); + } + + clearInterval(installTimer); + // TODO(slightlyoff): add a way to prevent navigation or make it + // contingent on oninstall? + window.location = args.destination || window.location; + } + }, 2000); + } + }; + + CFInstall._force = false; + CFInstall._forceValue = false; + CFInstall.isAvailable = isAvailable; + + // expose CFInstall to the external scope. We've already checked to make + // sure we're not going to blow existing objects away. + scope.CFInstall = CFInstall; + +})(this['ChromeFrameInstallScope'] || this); diff --git a/torah/keinim2-2.html b/torah/keinim2-2.html new file mode 100644 index 0000000..743a6c3 --- /dev/null +++ b/torah/keinim2-2.html @@ -0,0 +1,369 @@ +<!DOCTYPE html> +<html> + <head> + <title>Keinim + + + + + + + + +
+

Masechet Keinim 2:2

+

L'iluy nishmat Iser ben Binyamin HaCohen
+ לעילוי נשמת איסר בן בנימין הכהן

+

This d'var Torah is to mark my siyum- completion- of the fifth order of the mishna, Seder Kodshim, in memory of my grandfather Iser ben Binyamin HaCohen. Kodshim is paricularly appropriate, as it describes the intricacies of the temple service, from the details of an offering to the measurements of the temple mount.

+

The Mishna is broken up into six sedarim, or orders. Each order is divided into a number of masechtot, or tractates. The last tractate is called keinim, which literally means nests. It refers to the bird offerings in the temple. I would like to touch on one topic in this tractate.

+ +

Pairs

+

The most common case for bringing a bird offering was a birth, and thus the entire tractate refers to the owner of the birds in the feminine. For each birth, a woman was required to bring a pair of birds, one as an olah (burnt offering) and one as a chatat (sin offering).

+

I stress pair here because these birds must go together; it is not sufficient to have two separate bird offerings. They must be brought to the temple as a pair, and if the first is designated an olah, the other is automatically a chatat, and vice versa.

+ +

Keinim 2:2

+
Two women: Rachel has two pairs of birds, and Leah has two pairs. If one of Rachel's birds flies and is mixed in with Leah's birds, the bird invalidates one in its departure. If one returns (from Leah to Rachel), it invalidates one in its return.
+

I chose this Mishna because it has a very mathematical nature to it, something I feel connects me with my grandfather. In particular, this branch of math is known as combinatorics, or studying different possible combinations. In order to understand what's going on, let's look at a simpler case.

+ +

Four birds

+

No funny business

+

Let's say that Rachel has a single pair of birds, as does Leah. If none of the birds do any funny business, one of Rachel's birds will be an olah, and one will be a chatat. The same is true of Leah's birds. It would look like this:

+
+
+
Rachel
+
+
+
+
+
Leah
+
+
+
+
+ +

OK, some funny busines

+

Now let's say one of the birds decides to become Houdini (another Cohen if I'm not mistaken). One of Rachel's birds hops the fence into Leah's cage, and now we don't know whose bird is whose. Once a bird is assigned an owner, the owner cannot be changed (in the picture, color represents the owner). However, the type of offering (circle for olah and square for chatat) has not been assigned, and is thus up for grabs.

+

It's not possible for us to make more than two birds a chatat or more than two an olah, so the best case scenario would be that two of the three birds in Leah's possession will be an olah, the third will be a chatat, and the single bird in Rachel's cage will also be a chatat. That would look like this:

+
+
+
Rachel
+
+
+
+
Leah
+
+
+
+
+
+ +

In this case, all is fine and dandy; Leah's pair (the red birds) are an olah and chatat, and Rachel's pair (the green ones) are also an olah and chatat. No problem.

+ +

However, this assumes that we guessed correctly. Since the bird in Rachel's cage is a chatat, then we need to make sure that the green bird in Leah's cage is an olah, since we need matching pairs. We don't really know which bird actually belongs to Rachel, so we could accidently do the following:

+
+
+
Rachel
+
+
+
+
Leah
+
+
+
+
+
+ +

Now we've got a real problem! Both of Rachel's birds are chatats, and both of Leah's birds are olahs. We've got no matching pairs at all, so none of the offerings were good. It turns out the best we can do, mathematically, is to offer just two of the birds from Leah's cage. Here's the possibilities:

+
    +
  • The two birds that are chosen actually belong to Leah. Then Leah had a full offering of an olah and chatat, and Rachel gets nothing. +
    +
    +
    Rachel
    +
    +
    +
    +
    Leah
    +
    +
    +
    +
    +
    +
  • +
  • One of the chosen birds is Leah's and one is Rachel's. Each of them will get a single offering (it could go either way, it doesn't really matter). But at least there are no mis-matched pairs. +
    +
    +
    Rachel
    +
    +
    +
    +
    Leah
    +
    +
    +
    +
    +
    +
  • +
+ +

Eight birds

+

Well, eight birds is basically the exact same things as four, just more complicated. To look at this mathematically, our goal is to understand:

+
    +
  • Why making any more sacrifices than specified by the mishna could lead to mismatched pairs.
  • +
  • Why there is no possibility of mismatched pairs with the solution of the mishna.
  • +
+ +

Proving the first is easier: we need a counter-example, or a case that could lead to mismatched pairs. Let's start off with the base case: one of Rachel's birds flew into Leah's cage:

+
+
+
Rachel
+
+
+
+
+
+
Leah
+
+
+
+
+
+
+
+ +

Doing it wrong

+

The mishna says that this disqualifies one of Rachel's birds, meaning that we sacrifice four from Leah's cage and two from Rachel's. There are two ways to sacrifice more than the allowed number:

+
    +
  • +

    We could sacrifice three from Rachel's cage instead of two. However, this could lead to a problem if we had something like the following:

    +
    +
    +
    Rachel
    +
    +
    +
    +
    +
    +
    Leah
    +
    +
    +
    +
    +
    +
    +
    +

    That is, we sacrifice two olahs from Rachel's cage, and then inadvertently sacrifice Rachel's bird in Leah's cage as an olah. This means that, in total, we would have three olahs and one chatat for Rachel, which is unmatched.

    +
  • +
  • +

    We could sacrifice five from Leah's cage instead of four. Here the problem would be:

    +
    +
    +
    Rachel
    +
    +
    +
    +
    +
    +
    Leah
    +
    +
    +
    +
    +
    +
    +
    +

    Here, the problem is that we might accidently sacrifice three of Leah's birds as the same type of offering. This would also be mismatched.

    +
  • +
+

Doing it right

+

So how do we know that the mishna's advice works? Well, let's do some deductive reasoning. Rachel has four birds all told. If she sacrifices two of them in her cage as a pair, she still has one left over to be the pair to the one in Leah's cage. If we don't sacrifice that third bird, then the fourth has the freedom to be anything it wants (within the realm of dead birds).

+
+
+
Rachel
+
+
+
+
+
+
Leah
+
+
+
+
+
+
+
+

That means that if Leah sacrifices Rachel's bird as either an olah or chatat, or doesn't sacrifice any of Rachel's birds, we're safe. There is nothing we can do to mess up Rachel's offerings. The only concern is Leah's offerings.

+

Well, if we offer four of the birds in Leah's cage, there are two possibilies:

+
    +
  1. One of the birds offered was Rachel's escapee, and one of Leah's birds was left out.
  2. +
  3. All four birds belonged to Leah, and Rachel's bird was left out.
  4. +
+

In option 1, Leah gets one matched pair and one lone offering, while Rachel gets an offering without a pair. Cool. In option 2, Leah gets two matched pairs, and Rachel gets nothing. Also good.

+ +

The grass is greener on the other side

+

Still with me? Good, we're right at the end here. So here goes the story: one of Rachel's birds flies into Leah's cage, and realizes living conditions were much better in Rachel's cage. The bird starts complaining, and eventually some bird flies into Rachel's cage. Problem is, we don't know if it was Rachel's escapee, or if one of Leah's birds has now broken out of jail.

+

What makes this different is we have two possible base cases, as follows:

+
    +
  1. +
    +
    +
    Rachel
    +
    +
    +
    +
    +
    +
    +
    Leah
    +
    +
    +
    +
    +
    +
    +
  2. +
  3. +
    +
    +
    Rachel
    +
    +
    +
    +
    +
    +
    +
    Leah
    +
    +
    +
    +
    +
    +
    +
  4. +
+

Well, if we're talking about option 1, no problem: just go 50/50 in each cage, and all is well. The problem is in option 2.

+

Independent events

+

Time to bring in more math: we have something called independent events, where a result in one case does not effect the result in another. The typical example is a coin toss: if I get heads the first time, the next toss is unaffected. Thus, if I flip a coin twice, I have four possible results:

+
    +
  1. Head, head
  2. +
  3. Head, tail
  4. +
  5. Tail, head
  6. +
  7. Tail, tail
  8. +
+

We're going to have the same thing here. In each cage, we're going to offer two birds. In Rachel's cage, we have two possible results:

+
    +
  1. Two of Rachel's birds.
  2. +
  3. One of Rachel's and one of Leah's.
  4. +
+

We have the reverse options in Leah's cage: either both Leah's, or one of Leah's and one of Rachel's. So all told, we have four possibilities.

+

Instead of displaying them all, I'll simply put in the most difficult case: where we take one from each owner from each cage. Since in this case, each owner will still have two unsacrificed birds, each bird which is sacrificed has complete freedom to be what it wants. Therefore, no problem, and all is well.

+ +

Conclusion

+

Keinim is part of Kodshim, the fifth order of the Mishna. The fourt order, Nezikin (literally meaning damages, the same root as the yiddish word mazik), discusses monetary laws.

+

If our case of the birds occurred in Nezikin, the answer would be obvious and logical: if you can't tell the birds apart anyway, who cares who's holding onto which bird? If they each started with four birds, let them each take four birds and be done with it!

+

I think this dichotomy exemplifies the distinction between the two orders. Kodshim is not about logic, or at least not human logic relating to this world. It is relating to things beyond what we can perceive. In a Kodshim perspective, the birds are connected to their owners in a way that cannot be severed. We may not see this, but Kodshim tells us it's there.

+

The juxtaposition of these two orders tells us to not compartmentalize these two approaches. We need to take both aspects with us through our daily lives. While we are fully immersed in this world, and fully subject to the laws and logic of it, we must appreciate that there is more than meets the eye.

+

While Papa may not be here in a Nezikin sense, he is still with us in a Kodshim sense. Even though we cannot see him or talk to him, we all know that the connection lives on in a way we cannot understand.

+
+ + + + diff --git a/torah/teruma.html b/torah/teruma.html new file mode 100644 index 0000000..0aa88c1 --- /dev/null +++ b/torah/teruma.html @@ -0,0 +1,156 @@ + + + + + Separating Teruma and Maaser + + + +

Separating Teruma and Maaser

+

Introduction

+

For many olim chadashim, separating teruma and maaser is an exciting- and intimidating- mitzva. There does not seem to be any straight-forward guide to doing so. Hopefully this page will fill that void.

+

In order to properly separate teruma and maaser, you must actually understand what you are doing; it is not sufficient to read a few lines in Hebrew. We'll start off by defining some terms, and then go through the step-by-step process.

+

Please note that this is meant as a guide: I am not a posek, and I am most certainly not poskening on complicated issues. This is just a guide to the basic process.

+

Definitions

+
+
Tevel
+
Produce which is obligated in teruma and maaser. Any consumption of this produce is forbidden. All produce is tevel unless: +
    +
  • teruma and maaser have already been separated.
  • +
  • it is fruit you are eating outside, before ever having been gathered in and brought indoors, when eaten on a weekday. (Any consumption on Shabbat/Chag is considered non-temporary and therefore obligates the produce in teruma/maaser.)
  • +
+
+
Demai
+
Produce which might have had teruma/maaser taken. This is forbidden in consumption as well, but since it is doubtful, we do not make any brachot on its separation.
+
Teruma gedola
+
The part of the produce that was given to Cohanim in the times of the temple. Teruma can only be eaten by a cohen in tahara (purity); since we lack the requisite purity in our day, it is completely forbidden to eat. At a Torah level, there is no specific measurement given for teruma gedola.
+
Maaser rishon
+
The part of the produce that was given to Leviim in the times of the temple. Maaser rishon can be eaten by anyone. It must be precisely 10% of the produce.
+
Terumat maaser
+
The part of maaser rishon that the Levi would give to the Cohen in the times of the temple. It has the same restrictions as teruma gedola, and thus is forbidden in consumption today. It must be precisely 10% of the maaser rishon, or 1% of the total produce.
+
Maaser sheni
+
10% of the produce remaining after the removal of maaser rishon, or 9% of the total produce. Maaser sheni can be eaten by anyone, but must be eaten in purity in Jerusalem. Therefore, it is forbidden today. However, you are able to redeem maaser sheni onto money.
+
Maaser ani
+
The shemita cycle is the seven year cycle from one shemita to the next. In years 3 and 6 of the cycle, produce is obligated in maaser ani in place of maaser sheni. This is produce that must be given to a poor person.
+
Peruta
+
The smallest unit of money in the times of the gemara.
+
+

Notes

+
    +
  • If the produce you are tithing may have already been tithed, do not recite any of the brachot below. In general, the only occassion you will have to say the brachot is produce you pick yourself.
  • +
  • You should say the brachot in Hebrew, but the statements should be said in a language you understand. Here they are given in English only, though many siddurim have the Hebrew text.
  • +
  • If you buy different types of produce, you should tithe each one separately.
  • +
  • The value of the coin used below for redemption must be worth at least a perutah. Lenient opinions place this around 10 agurot, while more strict opinions require a half shekel.
  • +
+

Procedure

+
    +
  1. Set aside a little bit more than 1% of the total produce. We'll call the 99% the main pile, and the 1% the side pile.
  2. +
  3. Recite the blessing on separating teruma and maaser: +

    ברוך אתה ה' אלקינו מלך העולם אשר קדשנו במצותיו וצונו להפריש תרומות ומעשרות

    +
  4. +
  5. You must now separate teruma gedola from the side pile. Remember, teruma gedola has no particular measurement. So you say: +

    The part which is more than 1% of all of the produce here, I declare it teruma gedola.

    +
  6. +
  7. Next we separate out maaser rishon. In the side pile, we have a bit of teruma gedola and 1 grape (ie, 1% of the total) of untithed produce. The maaser rishon must be 10% of the total, so we will combine the 1% from the side pile with 9% from the main pile. Without actually moving any of the produce, say: +

    The 1% which remains in this pile, together with 9 parts like it on the top of the main pile, are maaser rishon.

    +
  8. +
  9. From our maaser rishon, we must separate terumat maaser. In the previous step, we designated the 1% in the side pile to be maaser rishon; we will now designate it to be terumat maaser: +

    That same 1% which I made maaser rishon is terumat maaser.

    + The side pile now consists entirely of teruma gedola and terumat maaser, which is forbidden in consumption.
  10. +
  11. All that remains in maaser sheni/maaser ani. This works out to 9% of the total. Since it may be unclear which type of maaser you should be separating now, the following statement is made conditionally: +

    9 more parts like these in the bottom side of the main pile are maaser sheni, and if they are obligated in maaser ani, they are maaser ani.

    +
  12. +
  13. You now must redeem the maaser sheni/maaser ani in the produce. In order to redeem the produce, you must "pay a fee" of a fifth, which due to the differences in modern math and Torah math is what we call a fourth. In any event, the value of the produce and its fifth is all considered to be part of the coin you will be using. First make the bracha (if appropriate): +

    ברוך אתה ה' אלקינו מלך העולם אשר קדשנו במצותיו וצונו על פדיון מעשר שני

    + and then take that coin and say: +

    This maaser sheni, it and its fifth, are redeemed on one peruta from the coin which I have designated for the redemption of maaser sheni.

    +
  14. +
  15. Wrap up the coin with the side pile very well. All of it must be disposed of properly, meaning double wrapped in the trash. No benefit should be derived from either the coin or the produce.
  16. +
+

That's all there is to it.

+
Produced by Michael Snoyman
+ + +