[{"data":1,"prerenderedAt":236},["ShallowReactive",2],{"project-26356496":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":40,"what":41,"said":72,"maker_in_thread":134,"shape":142,"grid":147,"attempts":199,"same_week":200,"maker_shows":135,"maker_hidden":228,"reader_version":229,"card":230},"26356496","C is for Camera","A 35mm film camera represented in Python objects","title","Show HN: C is for Camera, a 35mm film camera represented in Python objects","https:\u002F\u002Fgithub.com\u002Fevildmp\u002FC-is-for-Camera","github.com","DanieleProcida",1614950262,2021,103,22,513,2533,21,"notable","learning_science","object modelling example","library",[24,25,26,27],"python object modelling","film camera simulation","object oriented programming","python example","loved",0.429,{"positive":31,"neutral":32,"mixed":33,"critical":33},5,3,0,8,{"idea":36,"performance":38},{"positive":37,"critical":33},4,{"positive":33,"critical":33},[33,32,33,33,31,32,32,33,31,33,33,33,33,33,33,33,33,31,33,31,31,33],null,{"problem":42,"audience":52,"pricing":40,"motivation":40,"time_to_build":40,"stack":60,"openness":70,"stage":71,"team_size":71},{"value":43,"source":44,"evidence":45},"Shows how real-world systems like a 35mm film camera can be modelled as Python objects","inferred",[46,48],{"id":47},"post",{"id":49,"by":50,"text":51},"26359646","F00Fbug","This is a great exercise -- well done! What I try to convey to my students: * We write programs to solve problems. * The program is a model of the real-world problem. * The…",{"value":53,"source":44,"evidence":54},"Programmers and students learning object-oriented modelling",[55,56],{"id":49,"by":50,"text":51},{"id":57,"by":58,"text":59},"26358793","ksm1717","I love this. Mapping a real world system\u002Fdomain to code objects is my favorite programming exercise.",[61],{"value":62,"source":63,"evidence":64},"Python","maker",[65,66],{"id":47},{"id":67,"by":68,"text":69},"26358596","Apreche","Fun little project. As a Python developer who owns that specific camera, I approve.","open_source","unknown",{"praise":73,"objections":85,"requests":105,"questions":119,"alternatives":127},[74],{"value":75,"source":76,"evidence":77},"Fun and neat as a modelling exercise","commenter",[78,82,83,84],{"id":79,"by":80,"text":81},"26358651","m463","This is silly. good silly. (Like those Canon L-lens coffee cups)",{"id":67,"by":68,"text":69},{"id":57,"by":58,"text":59},{"id":49,"by":50,"text":51},[86,101],{"value":87,"source":76,"evidence":88},"OOP is overused and bad code practice can make bad code",[89,93,97],{"id":90,"by":91,"text":92},"26359788","craftinator","> I see online there's a movement that says OOP is \"bad\" but honestly in cases like this it makes perfect sense to me! TLDR; bad code practices make bad code. I think that this…",{"id":94,"by":95,"text":96},"26359965","Dylan16807","> massive, sprawling, strictly hierarchical monstrosities > till I realized that anything taken to an absurd degree is absurd Whenever I see OOP taught, the expectation is that…",{"id":98,"by":99,"text":100},"26362359","Badfood","Xrays.Dew.temperature extremes. Misloaded film. Dust or mould on lens. Physical damage. Shutter mechanism life is limited and they need to be pre emptively replaced. External…",{"value":102,"source":76,"evidence":103},"The model ignores real camera failure modes and physics",[104],{"id":98,"by":99,"text":100},[106,112],{"value":107,"source":76,"evidence":108},"Add a graphical user interface",[109],{"id":110,"by":11,"text":111},"26358791","I started exploring a graphical user interface too, using Anvil - https:\u002F\u002Fcamera.anvil.app. It only has two controls so far, but it's simply a matter of adding form elements and…",{"value":113,"source":76,"evidence":114},"Model the dedicated flash for the QL17",[115],{"id":116,"by":117,"text":118},"26359836","frompdx","Neat project! The QL17 was my first rangefinder as well as one of my first cameras. I sold mine to someone in the Netherlands who insisted on paying cash. I had my doubts but a…",[120],{"value":121,"source":76,"evidence":122},"Is the ruined state based on luminosity times time",[123],{"id":124,"by":125,"text":126},"26359426","tantalor","Is the \"ruined\" state dependent on the environment luminosity multiplied by time? Like, is 0.1 lux (full moon) safe for a few seconds?",[128],{"value":129,"source":76,"evidence":130},"Elevator Saga puzzle game for modelling elevator systems",[131],{"id":132,"by":125,"text":133},"26363151","Oh man you're going to LOVE this: https:\u002F\u002Fplay.elevatorsaga.com\u002F",{"comments":135,"answered":136,"key":137},2,1,[138,141],{"id":139,"text":140},"26359527","So far, it's only dependent upon luminosity - as long as it's not 0, it's considered ruined. And in reality, the unexposed frames wouldn't be ruined either (that's easy enough to…",{"id":110,"text":111},{"commenters":143,"max_depth":144,"maker_replies":135,"first_comment_mins":145,"lifespan_hours":146},16,7,185,41,[148,152,156,157,161,163,164,166,168,170,172,173,176,178,180,182,184,188,191,194,195,196],[149,33,33,150,151,33],"26360896","other\u002Fneutral\u002Fnone","t0mek",[153,136,32,154,155,33],"26361944","project\u002Fneutral\u002Fidea","woodruffw",[132,136,33,150,125,33],[158,136,33,159,160,33],"26364450","other\u002Fpositive\u002Fnone","ravi-delia",[67,135,31,162,68,33],"project\u002Fpositive\u002Fnone",[116,32,32,154,117,33],[124,37,32,165,125,33],"project\u002Fneutral\u002Fperformance",[139,37,33,167,11,136],"maker\u002Fneutral\u002Fperformance",[49,31,31,169,50,33],"project\u002Fpositive\u002Fidea",[90,31,33,171,91,33],"commenter\u002Fneutral\u002Fnone",[94,31,33,171,95,33],[174,31,33,171,175,33],"26360830","grenoire",[177,31,33,171,95,33],"26361287",[179,31,33,171,91,33],"26371347",[181,31,33,171,95,33],"26373571",[183,31,33,171,91,33],"26371341",[185,31,33,186,187,33],"26360197","commenter\u002Fneutral\u002Fidea","ookdatnog",[189,31,31,169,190,33],"26360312","brundolf",[110,192,33,193,11,136],6,"project\u002Fneutral\u002Fdesign",[57,144,31,169,58,33],[79,34,31,169,80,33],[98,197,33,198,99,33],9,"other\u002Fcritical\u002Fidea",[],[201,206,211,216,220,224],{"id":202,"name":203,"points":204,"category":205},"26361423","Svelte NodeGUI",624,"dev_tools",{"id":207,"name":208,"points":209,"category":210},"26403341","image2csv",354,"data",{"id":212,"name":213,"points":214,"category":215},"26360779","Relocate.me",221,"web_saas",{"id":217,"name":218,"points":219,"category":205},"26399672","Diahook",217,{"id":221,"name":222,"points":223,"category":215},"26375850","Buy My Side Project",190,{"id":225,"name":226,"points":227,"category":210},"26377559","Mito",101,false,"v2",{"id":231,"name":5,"line":6,"ai":228,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":232,"top":18,"kw":233,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":234,"url":9,"mix":235,"praise":75,"objection":87,"sub":21},26356496,0.43,[24,25,26,27],"0300533050000000050550",[31,32,33,33],1794036604017]