[{"data":1,"prerenderedAt":328},["ShallowReactive",2],{"project-27592822":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":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":39,"post_text":41,"what":42,"said":69,"maker_in_thread":164,"shape":173,"grid":176,"attempts":290,"same_week":291,"maker_shows":37,"maker_hidden":320,"reader_version":321,"card":322},"27592822","Intuitive Python","A book about Python","title","Show HN: I wrote a book about Python","https:\u002F\u002Fpragprog.com\u002Ftitles\u002Fdmpython\u002Fintuitive-python\u002F","pragprog.com","dmuller",1624375400,2021,181,46,259,2533,11,"notable","learning_science","programming book","other",[24,25,26,27],"python","intermediate python","python book","python development","loved",0.333,{"positive":31,"neutral":32,"mixed":33,"critical":33},5,7,0,12,{"idea":36,"docs":38},{"positive":37,"critical":33},1,{"positive":37,"critical":33},[33,40,33,31,31,40,33,33,33,33,31,40,33,33,40,33,33,33,33,33,33,33,33,33,33,33,33,33,40,33,40,33,40,33,33,33,33,33,33,31],3,null,{"problem":43,"audience":50,"pricing":41,"motivation":57,"time_to_build":41,"stack":61,"openness":66,"stage":67,"team_size":68},{"value":44,"source":45,"evidence":46},"Helps engineers new to Python quickly learn its virtues and limitations","maker",[47],{"id":48,"by":11,"text":49},"27592823","Hi everyone, Last year, I was lucky enough to sign a book deal with The Pragmatic Bookshelf to write an intermediate level book on Python. (The Pragmatic Bookshelf is the…",{"value":51,"source":45,"evidence":52},"Engineers with experience in other languages who are newer to Python",[53,54],{"id":48,"by":11,"text":49},{"id":55,"by":11,"text":56},"27596404","Hey - thanks I appreciate it. I'd take a look at the table of contents and see if any of the topics look familiar\u002Funfamiliar to you. The preface excerpt…",{"value":58,"source":45,"evidence":59},"Wanted a resource to give engineers with other-language experience to learn Python",[60],{"id":48,"by":11,"text":49},[62],{"value":63,"source":45,"evidence":64},"Python",[65],{"id":48,"by":11,"text":49},"paid","launched","solo",{"praise":70,"objections":102,"requests":123,"questions":135,"alternatives":148},[71,91],{"value":72,"source":73,"evidence":74},"Congratulations on the book and well-explained content","commenter",[75,79,83,87],{"id":76,"by":77,"text":78},"27594644","mraza007","Hey man just wanted to say congratulations on publishing this book. As I python developer myself do you think I can use this book to further advance my knowledge of python",{"id":80,"by":81,"text":82},"27596348","albatross13","I'd like to give my congrats as well, writing a book is no easy feat. That's awesome and congratulations!",{"id":84,"by":85,"text":86},"27673668","slava_kiose","Congratulations and regards! Complex things are explained in simple language.",{"id":88,"by":89,"text":90},"27596470","mkl95","Congratulations! Maintanability and tooling are underrated topics.",{"value":92,"source":73,"evidence":93},"Useful for intermediate learners and teams",[94,98],{"id":95,"by":96,"text":97},"27603224","sireat","The chapters look good! How would you compare this book to \"Fluent Python\"? Similar level? I like \"Fluent Python\" and it is the recommendation I currently give to my students who…",{"id":99,"by":100,"text":101},"27601626","Frawzey","Bookmarked. Thanks.",[103,113],{"value":104,"source":45,"evidence":105},"Does not cover packaging Python programs into click-and-run executables",[106,109],{"id":107,"by":11,"text":108},"27596463","Hey - thanks for checking the book out. Yeah, you are correct---the book does not cover packaging a Python program as a click and run style executable. It's definitely a tricky…",{"id":110,"by":111,"text":112},"27595823","gota","Preamble: I like Python - it seems to fit my mental models well, and I'm productive writing in it. However, only just recently I tried to develop a more-than-trivial program to…",{"value":114,"source":73,"evidence":115},"Subprocess default check=False is a pain point the book does not fully cover",[116,120],{"id":117,"by":118,"text":119},"27595031","d0mine","On \"Calling Other Programs with subprocess\": It pains me that the default way to run an external command (subprocess.run) doesn't raise an exception for non-zero exit code…",{"id":121,"by":118,"text":122},"27603890","The issue is that `check=False` by default for the `run()` function.",[124,128],{"value":125,"source":73,"evidence":126},"Cover subprocess.Popen with stdin input and process group timeouts",[127],{"id":117,"by":118,"text":119},{"value":129,"source":73,"evidence":130},"Availability on the O'Reilly learning platform",[131],{"id":132,"by":133,"text":134},"27596594","usrme","Seeing as your title managed to land under the same publishing umbrella as (one of my own favorite programming books as well) The Pragmatic Programmer, do you have insight as to…",[136,140,144],{"value":137,"source":73,"evidence":138},"Is the book useful for an experienced Python developer?",[139],{"id":76,"by":77,"text":78},{"value":141,"source":73,"evidence":142},"How does it compare to Fluent Python?",[143],{"id":95,"by":96,"text":97},{"value":145,"source":73,"evidence":146},"How to package a Python program as a Windows executable?",[147],{"id":110,"by":111,"text":112},[149,153],{"value":150,"source":73,"evidence":151},"Fluent Python",[152],{"id":95,"by":96,"text":97},{"value":154,"source":73,"evidence":155},"PyInstaller and Nuitka for packaging",[156,160],{"id":157,"by":158,"text":159},"27596074","nsomaru","Not OP, but I’ve had good success with pyinstaller and nuitka.",{"id":161,"by":162,"text":163},"27596283","muunbo","'Nuitka' might be what you're looking for",{"comments":165,"answered":166,"key":167},8,6,[168,169,170],{"id":48,"text":49},{"id":55,"text":56},{"id":171,"text":172},"27596565","Yeah - I agree, I don't like the default behavior of subprocess.run either. As another commenter pointed out, passing the check=True argument makes subprocess.run raise an…",{"commenters":174,"max_depth":32,"maker_replies":165,"first_comment_mins":33,"lifespan_hours":175},29,162,[177,179,181,182,185,186,187,191,192,193,197,200,203,207,210,213,216,217,218,219,221,224,227,228,231,235,239,242,244,246,249,252,255,257,260,262,264,265,268,271,274,277,280,283,286,288],[48,33,33,178,11,37],"project\u002Fpositive\u002Fidea",[76,33,40,180,77,33],"project\u002Fneutral\u002Fnone",[55,33,33,180,11,37],[183,33,31,184,77,33],"27596755","maker\u002Fpositive\u002Fnone",[80,33,31,184,81,33],[117,37,40,180,118,33],[188,37,33,189,190,33],"27595805","commenter\u002Fneutral\u002Fexecution","jnwatson",[121,37,33,189,118,33],[171,37,33,180,11,37],[194,37,33,195,196,33],"27597808","commenter\u002Fneutral\u002Fnone","auxym",[198,37,33,195,199,33],"27597977","dijit",[88,201,31,202,89,33],2,"maker\u002Fpositive\u002Fidea",[204,40,40,205,206,33],"27593284","project\u002Fneutral\u002Fidea","okareaman",[208,40,33,209,11,37],"27593480","project\u002Fneutral\u002Fperformance",[211,40,33,212,206,33],"27594047","commenter\u002Fneutral\u002Fperformance",[214,40,33,212,215,33],"27594301","nerdponx",[110,40,40,180,111,33],[157,40,33,195,158,33],[161,40,33,195,162,33],[220,40,33,195,111,33],"27596361",[222,40,33,195,223,33],"27597781","mumblemumble",[225,40,33,226,111,33],"27598120","commenter\u002Fpositive\u002Fnone",[107,40,33,180,11,37],[229,40,33,195,230,33],"27599201","nanis",[232,40,33,233,234,33],"27596396","commenter\u002Fcritical\u002Fperformance","roywashere",[236,40,33,237,238,33],"27594264","other\u002Fneutral\u002Fnone","satya71",[240,40,33,237,241,33],"27594502","nuclearnice1",[243,40,33,237,223,33],"27595733",[245,40,33,237,241,33],"27596591",[247,40,33,248,223,33],"27597012","other\u002Fneutral\u002Fperformance",[250,40,33,237,251,33],"27601428","mixmastamyk",[253,40,33,254,223,33],"27594686","other\u002Fcritical\u002Fdocs",[132,256,40,180,133,33],4,[258,256,33,259,11,37],"27596765","maker\u002Fneutral\u002Fnone",[261,256,40,259,133,33],"27596928",[263,256,33,180,11,37],"27612283",[95,31,40,180,96,33],[266,31,33,267,11,37],"27606211","project\u002Fneutral\u002Fdocs",[269,166,33,237,270,33],"27594719","criddell",[272,166,33,237,273,33],"27594896","manjana",[275,166,33,237,276,33],"27595455","TruthWillHurt",[278,166,33,237,279,33],"27595463","sateesh",[281,166,33,237,282,33],"27596262","zerr",[284,166,33,237,285,33],"27597548","oumua_don17",[84,32,31,287,85,33],"project\u002Fpositive\u002Fdocs",[99,165,31,289,100,33],"project\u002Fpositive\u002Fnone",[],[292,297,302,306,310,315],{"id":293,"name":294,"points":295,"category":296},"27606099","iPod.js",866,"creative",{"id":298,"name":299,"points":300,"category":301},"27592473","Spark Bible",347,"consumer_social",{"id":303,"name":304,"points":305,"category":301},"27599470","Multiverse.plus",281,{"id":307,"name":308,"points":309,"category":301},"27568709","Hacker News Doppelgänger",246,{"id":311,"name":312,"points":313,"category":314},"27536878","GraphCDN",200,"infrastructure",{"id":316,"name":317,"points":318,"category":319},"27556061","steez.news",177,"finance_crypto",false,"v2",{"id":323,"name":5,"line":6,"ai":320,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":324,"top":18,"kw":325,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":326,"url":9,"mix":327,"praise":72,"objection":104,"sub":21},27592822,0.33,[24,25,26,27],"0305530000530030000000000000303030000005",[31,32,33,33],1793991029782]