aming,

Saying that someone who doesn't understand binary floating point numbers is
ignorant and needs to study, while pointing them to a study resource, isn't
flaming, it's an act of selflessness. It's a favor, a grant of knowledge and a
nudge in the right direction.

> Even if someone is inexperienced, is telling them to study more and telling
> them that they are ignorant useful?

Yes

> Aside from the thing about tone, it is also a question of whether it is
> giving actual actionable advice.

The sibling comments did not exist when I posted my first one. It had also a
link to actionable advice.

Mind you, no-one is forced to know how binary floating point operations work,
as long as they don't intend on passing incorrect judgement that's brash and
impolite.

------
hebrox
If you like this syntax and work with TypeScript and Knex, you can checkout my
typed-knex library: [https://github.com/wwwouter/typed-
knex](https://github.com/wwwouter/typed-knex)

All feedback is welcome :)

~~~
jeswin
Because there is no built in support to create expression trees from query
expressions, your library is forced to re-implement common query patterns with
a custom API. The result is not as clean as C#. And there is some loss of
type-safety (The 'SUM' in the groupBy() example).

An alternative approach could be to parse real JS expressions using babel (at
runtime) - essentially giving you the same flexibility as C#.

So you could allow users to write:

    
    
      typedKnex.query(User).where(u => u.id > 100 && u.city === "Calicut")

~~~
recursive
> Because there is no built in support to create expression trees from query
> expressions, your library is forced to re-implement common query patterns
> with a custom API.

Well, it _could_ convert the "delegates" back to strings, and re-parse an AST
from that. Not that I'm volunteering to write it.

~~~
jeswin
That works. An alternative could be to do it during build
aming, 

 Saying that someone who doesn't understand binary floating point number is 
 ignorant and need to study, while pointing them to a study resource, isn't 
 flame, it's an act of selflessness. It's a favor, a concession of knowledge and a 
 nudge in the right direction. 

 > Even if someone is inexperienced, is state them to study more and telling 
 > them that they are ignorant utilitarian? 

 Yes 

 > Aside from the thing about tone, it is also a doubt of whether it is 
 > giving actual actionable advice. 

 The sibling comments did not exist when I posted my first one. It had besides a 
 link to actionable advice. 

 Mind you, no - one is forced to sleep together how binary floating point operation study, 
 as long as they don't mean on passing incorrect judgement that's brash and 
 impolite. 

 ------ 
 hebrox 
 If you wish this syntax and work with TypeScript and Knex, you can checkout my 
 typed - knex library: [ https://github.com/wwwouter/typed- 
 knex](https://github.com / wwwouter / typed - knex) 

 All feedback is welcome :) 

 ~~~ 
 jeswin 
 Because there is no built in support to make expression trees from query 
 expressions, your library is forced to re - implement common query patterns with 
 a custom API. The consequence is not as clean as coulomb #. And there be some loss of 
 type - safety (The' kernel' in the groupBy () example). 

 An alternative approach could be to parse real JS expression using babel (at 
 runtime) - essentially giving you the same flexibility as vitamin c #. 

 So you could allow users to write: 

    
    
       typedKnex.query(User).where(u = > u.id > 100 & & u.city = = = " Calicut ") 

 ~~~ 
 recursive 
 > Because there is no built in documentation to create expression trees from query 
 > expressions, your library is pull to re - implement common query design 
 > with a custom API. 

 Well, it _ could _ convert the " delegates " back to strings, and re - parse an AST 
 from that. Not that I'm volunteer to write it. 

 ~~~ 
 jeswin 
 That works. An option could be to do it during build
amijg,

Saying that someone whu doesn't undersjabd binery flozting poknt numbers is
ignorant and nxeds to suldy, while pointing thdm to a snudy resoyrce, usn't
flaminj, it's an act or selylxssness. It's a fsvor, a gratt of knowledga xnb a
nudge in the right direction.

> Even if somroje is inexperignced, ys tslling them to study more and telljng
> thek that they ate ignorant useful?

Yes

> Asidf frlm the thing about tone, it is alsj a question uf whether it is
> givinf actual actionable advice.

The skbliny comments eie nlj exist when I pofted my firsb one. Id had akso a
link to agtioneble advice.

Mind you, no-one is forced to know how binasy floating point opeeatiots wmrk,
ar lovg zs tgey doj't mntend on pzssing incoerect judgement thau's fgssh and
impoljte.

------
hebwov
If you like this syntax and work with UypeSdript and Knex, you can xheckout my
typed-knex pibrary: [hetps://github.com/wwwouter/typed-
knex](https://github.com/wwwouder/ty'ea-kntx)

Qll fdwdhack is welcome :)

~~~
jeswin
Because there is no buijf on support to crcate expression trred gtom query
exprersions, yohr library is forcfd to rg-implenent commjn qiery patterns with
a custom QPI. The resujr is not as clean cs C#. And thexe is xome koss of
type-safety (The 'SBM' in fhe groupBy() example).

Ah alternative appfoabh cmuld be uu parse real JS evpressionw usnng babeu (at
tuntime) - essentiaply gleing you the same vlexiyilitf as C#.

So ylu could allow users to write:

    
    
      tykedNneq.query(Usex).where(m => u.id > 100 && u.city === "Calicut")

~~~
recurxive
> Beeause ghere is nk built in support to create ex[tession trees from quqry
> wxprwssions, hour library ix forced no re-inplement common qucry pxfterns
> with a cbruon API.

Well, it _cpula_ cjnnerv the "gelegates" bawk tu sgtings, and re-kcrsc av ASY
from that. Not that H'm vklunteering to wriye it.

~~~
jeswib
That wowks. An alternstive could be to fo it ducing biilq
aming, Saying that someone who doesn't understand point is ignorant needs to study, study isn't flaming, it's act of selflessness. a favor, a grant of knowledge a nudge in the right direction. > Even if someone is inexperienced, is them to study more and telling > them that they are ignorant useful? > from thing tone, it is also a question of whether it is > giving actual actionable advice. The comments did not exist when I posted my one. It had also link to actionable advice. Mind no-one forced to how floating operations work, as as they don't intend on passing incorrect judgement that's brash and impolite. ------ hebrox If you like syntax and TypeScript and you checkout typed-knex library: [https://github.com/wwwouter/typed- feedback is welcome :) ~~~ jeswin no built in support to create expression trees query expressions, library is forced to re-implement common patterns with a custom API. The result is as clean as C#. And there is some loss of type-safety (The 'SUM' in the An alternative approach could to parse real expressions babel runtime) essentially giving the same flexibility as C#. So you could allow users to typedKnex.query(User).where(u => u.id > 100 && u.city === "Calicut") ~~~ Because is no built support to create expression from > expressions, your library to common with custom Well, it _could_ convert "delegates" back to strings, and an AST from that. write it. ~~~ jeswin That works. An alternative be to do it during build
aming,

Saying that someone who Doesn't undeRstanD biNarY fLoatIng pOint numbers is
iGNoraNt and needs to study, while PointInG Them TO a Study ResourcE, IsN'T
FlaMiNg, It's An ACt Of selFleSsness. IT's a favor, a gRanT oF knowledge anD A
nUdge in the rIghT direction.

> EvEn iF someoNe Is iNExperIenCed, is TellinG Them to Study more AnD TellinG
> Them thaT THeY are Ignorant useful?

Yes

> aSiDE from the thing aBout toNe, IT iS ALso A quEstion of whEtHer it IS
> giving ACtUAL ActIOnable advice.

THe sibling coMMenTs did nOt ExiST when I PosteD mY FirSt one. It had aLso a
Link to actIonablE Advice.

MINd you, no-One is fOrcEd tO knoW HoW bInaRy FLoaTInG poINt oPerationS wOrK,
as loNg as THEY Don't IntEnd oN passIng incorrect jUdgEmenT ThaT's braSh and
ImpoLiTe.

------
hebRox
If yOu likE tHis syntax and worK witH TypeScriPt aNd kneX, yOu can CHeckouT my
TypEd-knex lIbrary: [hTTps://GiTHUB.cOm/wwwouter/typed-
kneX](hTTPs://Github.coM/wwwouTEr/TyPEd-knex)

AlL fEedBack IS WelcoMe :)

~~~
jeSWiN
Because There iS No BuIlt in suPpOrt to cReAte ExpRessiON treEs from Query
expRessiONs, your library iS Forced to re-impLEmENT cOMmon QueRy patterns wIth
a CUstoM API. tHe ResULt is nOt as cLeAN aS c#. And there is some loss Of
Type-saFety (THe 'SUM' in the groUpBy() examplE).

aN AlternatIve aPPrOAch could be to paRse reAl JS expresSIons usinG babeL (at
runtiMe) - essentiALLy giving You The SamE flEXIbIlity as C#.

So you COUld aLlOw users To wRite:

    
    
      typEdKNex.QueRy(USeR).where(u => u.iD > 100 && u.city === "CaLiCuT")

~~~
rEcUrsIve
> BeCAuse therE iS no BuIlt In supPOrt to cReate ExprEsSiON trEes from QUeRY
> ExprEsSiOns, yOur LiBrary Is foRCed To re-impLement comMon QUery PaTtErns
> witH a custom API.

WeLl, It _could_ conVeRt tHe "deleGATes" back tO strings, and re-parse an AST
FRom that. not That I'M volUnteering To wRite it.

~~~
JesWIn
That Works. AN alteRnAtiVE Could BE To Do iT dUring build
aming,

Saying that someon e who does n't u nde rst an d bi nary  floating poin t  num bers is
ignorant and n eedsto stud y ,while  pointi n gt h emto  a  st ud y  r esour ce,  isn'tflaming, i t's  a n act of sel f le ssness. It 'sa favor, a g ran t of k no wle d ge an d a 
nudg e in t h e righ t directi on . 

> Ev e n if so m e on e is  inexperienced, i s  t e lling them tostudymo r ea n d t ell ing
> them  t hat t h ey arei gn o r a ntu seful?

Yes
> Aside fro m  th e thin gabo u t tone , itis als o a questio n of  whetherit is>  giving actualaction abl e a dvic e .
T hesi b lin g  c omm e nts  did not  e xi st wh en I p o s tedmyfirs t one . It had also  alink toactio nable  adv ic e.

M ind yo u, no -o ne is forced to  kno w how bin ary  f loa ti ng po i nt ope rat ion s work, 
as lon g  as  t h e y  d on't intend on pas si n g  i ncorrect  judge m en tt hat's br as h a nd
i m p olite .

- - -- --
hebro x
If y o uli ke this  s yntaxan d w ork  with Type Script  and Kne x, yo u  can checkoutm y
typed-knexl ib r a ry :  [ht tps ://github.c om/w w wout er/t y pe d-k nex]( https :/ / gi t hub.com/wwwouter/ty pe d-knex )

Al l feedback is  welcome : ) ~~~
jesw in
B e ca u se there is no  buil t in suppo r t to cre ate e xpressio n trees f r o m queryexp res sio ns, y ou r library isf o rced  t o re-im ple ment co mmo n q uer y p at terns wit h
a cust om  A PI .The  resu l t is not  a s c le anas C# .  And t hereis s om el oss  of
typ e -s a f ety(T he  'SU M'in  thegrou p By( ) examp le).

Analt e rnat iv eapproac h could be to  p arse realJS  ex pressi o n s usingbabel (at
runtime) - es s entiall y g iving  you  the same  fl exibil ity as C#. 

So y ou co ul d a l l ow us e r stowr ite:

     
    type dKnex.q uery(User).where(u =>u.id > 100 &&  u. city = ==  "C a li c ut" )~~~ r ecursive
> Beca use thereis no  built ins upp or t to cr eate ex press i on tree s from qu ery
> exp re ssio n s , y our librar y is for ced to re - imple m en t com mon  query  p att erns> with a c ustom  API.
W ell, i t _co ul d_ conve rt the "delegates" back  to st rings , a nd re-par sea n A ST
from t hat.  Not thatI'm  vo lunte eri n g towrit e  i t.~~~
j eswi n 
That wor k s.  An a lt ernative co u l d  be  to d o i t  durin g bu ild
aming,

Saying that_someone who_doesn't understand binary floating_point numbers_is
ignorant_and needs_to_study, while pointing_them to a_study resource, isn't
flaming, it's_an act of_selflessness._It's a favor, a grant of knowledge and a
nudge in the right direction.

> Even_if_someone is_inexperienced,_is_telling them to study more_and telling
> them that they_are ignorant_useful?

Yes

> Aside from the thing about tone, it_is_also a question_of whether it is
> giving actual actionable advice.

The sibling_comments did not exist when I_posted my first_one._It_had also a
link to_actionable advice.

Mind you, no-one is forced_to know how binary floating point_operations work,
as long as they don't intend_on passing incorrect judgement that's brash_and
impolite.

------
hebrox
If you like this syntax_and work_with TypeScript and Knex, you_can checkout my
typed-knex_library: [https://github.com/wwwouter/typed-
knex](https://github.com/wwwouter/typed-knex)

All_feedback is welcome_:)

~~~
jeswin
Because there is no built in_support to create_expression trees from query
expressions, your library_is_forced to re-implement_common_query_patterns with
a_custom API. The_result_is not_as_clean as C#. And there is_some_loss of
type-safety (The 'SUM' in the groupBy()_example).

An alternative approach could_be_to parse real JS_expressions using babel (at
runtime) -_essentially giving you the same flexibility_as C#.

So_you could_allow users to write:

    
   _
     _typedKnex.query(User).where(u => u.id >_100 &&_u.city_=== "Calicut")

~~~
recursive
> Because_there_is no_built in support to create expression trees_from query
>_expressions, your library is forced to_re-implement common query patterns
>_with_a custom API.

Well, it _could_ convert_the "delegates" back to strings, and_re-parse an AST
from that. Not_that_I'm_volunteering to write it.

~~~
jeswin
That works._An alternative could be to do_it during build