[{"data":1,"prerenderedAt":259},["ShallowReactive",2],{"project-29002694":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":44,"post_text":46,"what":47,"said":80,"maker_in_thread":172,"shape":182,"grid":185,"attempts":219,"same_week":220,"maker_shows":250,"maker_hidden":251,"reader_version":252,"card":253},"29002694","QuickServ","User-friendly web server","title","Show HN: QuickServ – User-friendly web server","https:\u002F\u002Fgithub.com\u002Fjstrieb\u002Fquickserv","github.com","jstrieb",1635266708,2021,62,17,751,2533,30,"notable","dev_tools","web server for prototyping","cli",[24,25,26,27,28],"web server","cgi","prototyping","web development","shebang","mixed",0.105,{"positive":32,"neutral":33,"mixed":34,"critical":35},3,4,2,1,10,{"idea":38,"docs":40,"design":41,"execution":42,"privacy":43},{"positive":34,"critical":39},0,{"positive":39,"critical":39},{"positive":35,"critical":39},{"positive":39,"critical":39},{"positive":39,"critical":35},[39,45,32,39,32,39,45,32,39,39,32,35,45,32,39,32,39],5,null,{"problem":48,"audience":55,"pricing":46,"motivation":64,"time_to_build":46,"stack":68,"openness":78,"stage":79,"team_size":79},{"value":49,"source":50,"evidence":51},"Web development is complex; makes it easy to build simple web apps by passing requests via stdin and responses via stdout","maker",[52],{"id":53,"by":11,"text":54},"29002709","I made this because I hate web development. Don't get me wrong, I love that once something is on the web, anyone can effortlessly use it on their phone or computer – my most…",{"value":56,"source":57,"evidence":58},"People building quick prototypes, hackathon projects, and beginners learning web apps","inferred",[59,60],{"id":53,"by":11,"text":54},{"id":61,"by":62,"text":63},"29004140","pdenton","This has a lot of potential in education. Instead of installing lamp, just use this and quickly write something in python instead. Thank you so much!",{"value":65,"source":50,"evidence":66},"Maker hates web development complexity and wanted a simpler approach",[67],{"id":53,"by":11,"text":54},[69],{"value":70,"source":71,"evidence":72},"Python","commenter",[73,77],{"id":74,"by":75,"text":76},"29004366","ISV_Damocles","Will edit this comment with more notes as I review it. First thing I noticed is that Raspberry Pi \u002F Other OS have the example dump into `temp.py` and then indicate that you…",{"id":61,"by":62,"text":63},"open_source","unknown",{"praise":81,"objections":109,"requests":131,"questions":150,"alternatives":159},[82,98],{"value":83,"source":71,"evidence":84},"Simple, easy setup and a good idea for education and prototyping",[85,86,90,94],{"id":61,"by":62,"text":63},{"id":87,"by":88,"text":89},"29004414","HMH","Thanks for making this, looks like you indeed can do a lot of fun things with this! Setup was very easy. But it seems IPv6 addresses are not formatted correctly, it should be…",{"id":91,"by":92,"text":93},"29004330","mrtksn","Obviously I haven’t had time to take deep look into it but I love the ideology. The web development has become so complex without actually putting anything new on the table, the…",{"id":95,"by":96,"text":97},"29008092","sntran","I love projects like this. I have recently used `shell2http` for quick server setup that interacts with command line tools like `rclone`. I even wrote a little `shell2discord`…",{"value":99,"source":71,"evidence":100},"Stdin\u002Fstdout model and no shell needed is a lovely design",[101,105],{"id":102,"by":103,"text":104},"29008877","anitil","This is a lovely idea.",{"id":106,"by":107,"text":108},"29005407","rchaves","As for the query parsing, here is a suggestion: couldn’t you convert that in shell argv automatically? If “name=foo&email=bar” becomes “--name=foo --email=bar” then devs can just…",[110,115,123,127],{"value":111,"source":71,"evidence":112},"Hand-parsing query strings is error prone; suggested converting to argv",[113,114],{"id":74,"by":75,"text":76},{"id":106,"by":107,"text":108},{"value":116,"source":71,"evidence":117},"Unclear path for moving prototypes to production; not secure or fast by design",[118,119],{"id":74,"by":75,"text":76},{"id":120,"by":121,"text":122},"29005550","mshockwave","> It was not created to be fast or secure. Bummer, I was going to ask if there is any sandbox for security purpose. But don't get me wrong, this will be extremely useful for…",{"value":124,"source":71,"evidence":125},"Examples use wrong filename for Raspberry Pi and compile-from-source instructions",[126],{"id":74,"by":75,"text":76},{"value":128,"source":71,"evidence":129},"IPv6 URLs are formatted incorrectly",[130],{"id":87,"by":88,"text":89},[132,136,146],{"value":133,"source":71,"evidence":134},"Support websockets",[135],{"id":87,"by":88,"text":89},{"value":137,"source":71,"evidence":138},"Accept standard shebang lines with env and extra characters",[139,143],{"id":140,"by":141,"text":142},"29010217","smichael","I like it, thanks for sharing. Why not a standard unix shebang line at top of index.py ?",{"id":144,"by":141,"text":145},"29015777","Thanks for explaining. My thinking was: by (optionally?) allowing the usual extra characters (#!python3 -> #!\u002Fusr\u002Fbin\u002Fenv python3) it remains standard, avoiding an unnecessary…",{"value":147,"source":71,"evidence":148},"Guides for migrating prototypes to frameworks like Django",[149],{"id":74,"by":75,"text":76},[151,155],{"value":152,"source":71,"evidence":153},"Why not use a standard unix shebang line",[154],{"id":140,"by":141,"text":142},{"value":156,"source":71,"evidence":157},"Is there a sandbox for security",[158],{"id":120,"by":121,"text":122},[160,164,168],{"value":161,"source":71,"evidence":162},"shell2http",[163],{"id":95,"by":96,"text":97},{"value":165,"source":71,"evidence":166},"LAMP stack",[167],{"id":61,"by":62,"text":63},{"value":169,"source":50,"evidence":170},"CGI",[171],{"id":53,"by":11,"text":54},{"comments":173,"answered":45,"key":174},6,[175,176,179],{"id":53,"text":54},{"id":177,"text":178},"29004566","Thanks for the feedback! This is very helpful, and I'll be sure to fix these things as soon as I get home from work! Extension-less files should work fine as an alternative to…",{"id":180,"text":181},"29005606","I spent a long time thinking about how to do query parsing and have been dissatisfied with what I could come up with. This is the perfect solution! Thank you so much!",{"commenters":183,"max_depth":45,"maker_replies":173,"first_comment_mins":35,"lifespan_hours":184},11,24,[186,188,189,191,193,195,196,198,200,203,205,209,211,212,213,216,217],[53,39,39,187,11,35],"project\u002Fpositive\u002Fidea",[61,39,45,187,62,39],[74,39,32,190,75,39],"project\u002Fmixed\u002Fdocs",[177,39,39,192,11,35],"maker\u002Fpositive\u002Fnone",[106,39,32,194,107,39],"project\u002Fneutral\u002Fdesign",[180,39,39,192,11,35],[102,39,45,197,103,39],"project\u002Fpositive\u002Fdesign",[87,39,32,199,88,39],"project\u002Fmixed\u002Fexecution",[201,39,39,202,11,35],"29009012","maker\u002Fneutral\u002Fnone",[91,35,39,204,92,39],"other\u002Fneutral\u002Fidea",[206,34,32,207,208,39],"29006180","project\u002Fneutral\u002Fnone","farisjarrah",[120,32,35,210,121,39],"project\u002Fcritical\u002Fprivacy",[95,33,45,187,96,39],[140,45,32,194,141,39],[214,45,39,215,11,35],"29010298","maker\u002Fneutral\u002Fdesign",[144,45,32,194,141,39],[218,45,39,215,11,35],"29016027",[],[221,226,231,236,240,245],{"id":222,"name":223,"points":224,"category":225},"28985936","cric-code",674,"consumer_social",{"id":227,"name":228,"points":229,"category":230},"29010443","Coding Font",443,"productivity",{"id":232,"name":233,"points":234,"category":235},"28997309","CookLang",415,"languages",{"id":237,"name":238,"points":239,"category":20},"29009935","HTTP 419 Never Gonna Give You Up",262,{"id":241,"name":242,"points":243,"category":244},"28968184","sub.live",236,"creative",{"id":246,"name":247,"points":248,"category":249},"28944426","libvf.io",203,"infrastructure",9,false,"v2",{"id":254,"name":5,"line":6,"ai":251,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":255,"top":18,"kw":256,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":257,"url":9,"mix":258,"praise":83,"objection":111,"sub":21},29002694,0.11,[24,25,26,27,28],"05303053003153030",[32,33,34,35],1793991035088]