{"exhaustive":{"nbHits":false,"typo":false},"exhaustiveNbHits":false,"exhaustiveTypo":false,"hits":[{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamancuso"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"I wanted type safety without managing infrastructure. Here's how I run statically-linked Rust/Go binaries on shared hosting using PHP as a thin wrapper.

https://dev.to/andreamancuso/running-rust-binaries-on-shared-hosting-a-practical-approach-to-type-safety-on-a-budget-jmb"},"title":{"matchLevel":"none","matchedWords":[],"value":"Running Rust/Go on shared hosting for $5 a month"}},"_tags":["story","author_andreamancuso","story_45626909","ask_hn"],"author":"andreamancuso","children":[45640690,45642717],"created_at":"2025-10-18T12:44:11Z","created_at_i":1760791451,"num_comments":3,"objectID":"45626909","points":3,"story_id":45626909,"story_text":"I wanted type safety without managing infrastructure. Here's how I run statically-linked Rust/Go binaries on shared hosting using PHP as a thin wrapper.

https://dev.to/andreamancuso/running-rust-binaries-on-shared-hosting-a-practical-approach-to-type-safety-on-a-budget-jmb","title":"Running Rust/Go on shared hosting for $5 a month","updated_at":"2026-03-05T22:49:53Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"0x54MUR41"},"title":{"matchLevel":"none","matchedWords":[],"value":"Tracking Everything I Wore For 1 Year"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://andrenader.substack.com/p/nfc-clothes-tracker"}},"_tags":["story","author_0x54MUR41","story_31957210"],"author":"0x54MUR41","children":[31957550,31957652,31957694,31957783,31957975,31958078,31958770,31958937,31958991,31959021,31959481,31959511,31959652,31959725,31960016,31960267,31960351,31961100,31961753,31962723,31962764,31971848],"created_at":"2022-07-02T08:18:51Z","created_at_i":1656749931,"num_comments":129,"objectID":"31957210","points":176,"story_id":31957210,"title":"Tracking Everything I Wore For 1 Year","updated_at":"2024-09-20T11:30:25Z","url":"https://andrenader.substack.com/p/nfc-clothes-tracker"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"knowbody"},"story_text":{"matchLevel":"none","matchedWords":[],"value":""},"title":{"matchLevel":"none","matchedWords":[],"value":"Fun With iBeacon"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"http://andreamazz.github.io/blog/2014/07/01/fun-with-ibeacon/"}},"_tags":["story","author_knowbody","story_8010233"],"author":"knowbody","children":[8010526,8010810,8010896,8010926,8011004,8011504,8011524,8011775,8012210,8014074,8020683],"created_at":"2014-07-09T15:43:10Z","created_at_i":1404920590,"num_comments":49,"objectID":"8010233","points":73,"story_id":8010233,"story_text":"","title":"Fun With iBeacon","updated_at":"2024-09-19T20:52:45Z","url":"http://andreamazz.github.io/blog/2014/07/01/fun-with-ibeacon/"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andrenader"},"title":{"matchLevel":"none","matchedWords":[],"value":"How much is enough to FIRE in San Francisco?"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://andrenader.substack.com/p/enough-to-fire-in-san-francisco"}},"_tags":["story","author_andrenader","story_40238247"],"author":"andrenader","children":[40238554,40238559,40238593,40238605,40238616,40238625,40238626,40238730,40238753,40238776,40238793,40238819,40238845,40238868,40238895,40239076,40353446],"created_at":"2024-05-02T16:40:00Z","created_at_i":1714668000,"num_comments":116,"objectID":"40238247","points":68,"story_id":40238247,"title":"How much is enough to FIRE in San Francisco?","updated_at":"2025-08-14T22:40:28Z","url":"https://andrenader.substack.com/p/enough-to-fire-in-san-francisco"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"dbrereton"},"title":{"matchLevel":"none","matchedWords":[],"value":"The Great Tech Salary Crash"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://andrenader.substack.com/p/tech-salary-crash"}},"_tags":["story","author_dbrereton","story_32179022"],"author":"dbrereton","children":[32179499,32179508,32179510,32179540,32179559,32179603,32179605,32179614,32179649,32179674,32179677,32179688,32179795,32179915,32180191,32180927],"created_at":"2022-07-21T13:23:35Z","created_at_i":1658409815,"num_comments":33,"objectID":"32179022","points":37,"story_id":32179022,"title":"The Great Tech Salary Crash","updated_at":"2024-09-20T11:41:36Z","url":"https://andrenader.substack.com/p/tech-salary-crash"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"blacksqr"},"title":{"matchLevel":"none","matchedWords":[],"value":"A Time-Jumping, Multiverse-Killing, Consciousness-Spawning Theory of Reality"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://www.forbes.com/sites/andreamorris/2023/10/23/testing-a-time-jumping-multiverse-killing-consciousness-spawning-theory-of-reality/"}},"_tags":["story","author_blacksqr","story_38020652"],"author":"blacksqr","children":[38020999,38021360,38021489,38021676,38029763],"created_at":"2023-10-26T01:32:49Z","created_at_i":1698283969,"num_comments":10,"objectID":"38020652","points":24,"story_id":38020652,"title":"A Time-Jumping, Multiverse-Killing, Consciousness-Spawning Theory of Reality","updated_at":"2024-09-20T15:25:25Z","url":"https://www.forbes.com/sites/andreamorris/2023/10/23/testing-a-time-jumping-multiverse-killing-consciousness-spawning-theory-of-reality/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"myinnerbanjo"},"title":{"matchLevel":"none","matchedWords":[],"value":"Meet the Man Who Test Drives Sex Robots"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://www.forbes.com/sites/andreamorris/2018/09/27/meet-the-man-who-test-drives-sex-robots/#7a5abb56452d"}},"_tags":["story","author_myinnerbanjo","story_18127266"],"author":"myinnerbanjo","children":[18128148],"created_at":"2018-10-03T02:38:47Z","created_at_i":1538534327,"num_comments":1,"objectID":"18127266","points":9,"story_id":18127266,"title":"Meet the Man Who Test Drives Sex Robots","updated_at":"2024-09-20T03:06:51Z","url":"https://www.forbes.com/sites/andreamorris/2018/09/27/meet-the-man-who-test-drives-sex-robots/#7a5abb56452d"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"tosh"},"title":{"matchLevel":"none","matchedWords":[],"value":"OpenAI o1 broke out of its host VM to restart it"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://twitter.com/_andreamiotti/status/1834302973813432378"}},"_tags":["story","author_tosh","story_41525274"],"author":"tosh","children":[41525300,41525330],"created_at":"2024-09-12T20:38:06Z","created_at_i":1726173486,"num_comments":1,"objectID":"41525274","points":5,"story_id":41525274,"title":"OpenAI o1 broke out of its host VM to restart it","updated_at":"2024-09-20T17:47:20Z","url":"https://twitter.com/_andreamiotti/status/1834302973813432378"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andrenatal"},"story_text":{"matchLevel":"none","matchedWords":[],"value":""},"title":{"matchLevel":"none","matchedWords":[],"value":"Web Speech API on Firefox and Firefox OS using Pocketsphinx"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://github.com/andrenatal/gecko-dev"}},"_tags":["story","author_andrenatal","story_8323256"],"author":"andrenatal","created_at":"2014-09-16T06:06:00Z","created_at_i":1410847560,"num_comments":0,"objectID":"8323256","points":5,"story_id":8323256,"story_text":"","title":"Web Speech API on Firefox and Firefox OS using Pocketsphinx","updated_at":"2024-09-19T21:04:45Z","url":"https://github.com/andrenatal/gecko-dev"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"chx"},"title":{"matchLevel":"none","matchedWords":[],"value":"Bitcoin emissions alone could push global warming above 2\u00b0C"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://www.forbes.com/sites/andreamorris/2018/10/29/bitcoin-predicted-to-be-the-nail-in-the-coffin-of-climate-change/#48ad6ca6745e"}},"_tags":["story","author_chx","story_18333353"],"author":"chx","created_at":"2018-10-30T01:36:37Z","created_at_i":1540863397,"num_comments":0,"objectID":"18333353","points":4,"story_id":18333353,"title":"Bitcoin emissions alone could push global warming above 2\u00b0C","updated_at":"2024-09-20T03:16:16Z","url":"https://www.forbes.com/sites/andreamorris/2018/10/29/bitcoin-predicted-to-be-the-nail-in-the-coffin-of-climate-change/#48ad6ca6745e"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"stonebraker"},"story_text":{"matchLevel":"none","matchedWords":[],"value":""},"title":{"matchLevel":"none","matchedWords":[],"value":"Summarizing all big data projects"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"http://blog.andreamostosi.name/big-data/"}},"_tags":["story","author_stonebraker","story_9462457"],"author":"stonebraker","created_at":"2015-04-29T23:16:58Z","created_at_i":1430349418,"num_comments":0,"objectID":"9462457","points":3,"story_id":9462457,"story_text":"","title":"Summarizing all big data projects","updated_at":"2023-09-07T02:38:07Z","url":"http://blog.andreamostosi.name/big-data/"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamonaco"},"story_text":{"matchLevel":"none","matchedWords":[],"value":"For my YouTube videos, I often need to record my laptop screen.\nI used both ffmpeg and OBS and while they are quite rich with features, they also introduce a big overhead.

I started experimenting with the possibility of recording the framebuffer directly, bypassing the X server or Wayland: the Linux kernel provide this via a system called DMAbuf.

To be fair, the idea is not mine: ffmpeg let you do that with the kmsgrab input device, but for some reason they don't recommend it very much, certainly not as a first choice; maybe that road is not as tested as the classic x11grab.

So here is the first version of my little utility screenrec: you can take a screenshot or record a short video of your desktop.

It's a proof-of-concept; while it only supports a linear or tiledX by 4KB framebuffer and only the pixel format of my video card, those limitations are easy to expand.

Let me know if you like it!"},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: A little utility to take screenshots and record screen on GNU/Linux"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://github.com/andreamonaco/screenrec"}},"_tags":["story","author_andreamonaco","story_46276495","show_hn"],"author":"andreamonaco","created_at":"2025-12-15T16:19:02Z","created_at_i":1765815542,"num_comments":0,"objectID":"46276495","points":3,"story_id":46276495,"story_text":"For my YouTube videos, I often need to record my laptop screen.\nI used both ffmpeg and OBS and while they are quite rich with features, they also introduce a big overhead.

I started experimenting with the possibility of recording the framebuffer directly, bypassing the X server or Wayland: the Linux kernel provide this via a system called DMAbuf.

To be fair, the idea is not mine: ffmpeg let you do that with the kmsgrab input device, but for some reason they don't recommend it very much, certainly not as a first choice; maybe that road is not as tested as the classic x11grab.

So here is the first version of my little utility screenrec: you can take a screenshot or record a short video of your desktop.

It's a proof-of-concept; while it only supports a linear or tiledX by 4KB framebuffer and only the pixel format of my video card, those limitations are easy to expand.

Let me know if you like it!","title":"Show HN: A little utility to take screenshots and record screen on GNU/Linux","updated_at":"2026-03-05T23:12:36Z","url":"https://github.com/andreamonaco/screenrec"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamonaco"},"story_text":{"matchLevel":"none","matchedWords":[],"value":"I started writing a little online 2d shooter game. It already does a few things!

Any number of players can move in the same map and shoot at each other until they die; they can shoot at zombies too; they can collect rotten meat in their inventory. Meanwhile they must keep fed and hydrated.

I tested in a LAN, but it should work in any network. You can even start multiple clients locally if you don't have other people. Let me know how many people you manage to handle!

I will keep adding stuff to this game and will keep you updated. The map will also get bigger.

Make any question down here! Thanks for reading."},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: An online 2d shooter game in development"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://github.com/andreamonaco/zombieland"}},"_tags":["story","author_andreamonaco","story_44474085","show_hn"],"author":"andreamonaco","created_at":"2025-07-05T17:10:43Z","created_at_i":1751735443,"num_comments":0,"objectID":"44474085","points":3,"story_id":44474085,"story_text":"I started writing a little online 2d shooter game. It already does a few things!

Any number of players can move in the same map and shoot at each other until they die; they can shoot at zombies too; they can collect rotten meat in their inventory. Meanwhile they must keep fed and hydrated.

I tested in a LAN, but it should work in any network. You can even start multiple clients locally if you don't have other people. Let me know how many people you manage to handle!

I will keep adding stuff to this game and will keep you updated. The map will also get bigger.

Make any question down here! Thanks for reading.","title":"Show HN: An online 2d shooter game in development","updated_at":"2025-07-06T08:21:36Z","url":"https://github.com/andreamonaco/zombieland"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"fvoidstar"},"title":{"matchLevel":"none","matchedWords":[],"value":"Making a Blog in Go: A Quest for Simplicity"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://blog.andreamarino.dev/articles/making-this-blog"}},"_tags":["story","author_fvoidstar","story_41724887"],"author":"fvoidstar","children":[41725058],"created_at":"2024-10-02T20:54:18Z","created_at_i":1727902458,"num_comments":0,"objectID":"41724887","points":3,"story_id":41724887,"title":"Making a Blog in Go: A Quest for Simplicity","updated_at":"2024-10-03T06:19:32Z","url":"https://blog.andreamarino.dev/articles/making-this-blog"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"imartin2k"},"title":{"matchLevel":"none","matchedWords":[],"value":"Meta's Best Perk: The 5 Year Recharge"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://andrenader.substack.com/p/recharge"}},"_tags":["story","author_imartin2k","story_33370643"],"author":"imartin2k","children":[33370805,33379927],"created_at":"2022-10-28T12:42:24Z","created_at_i":1666960944,"num_comments":1,"objectID":"33370643","points":2,"story_id":33370643,"title":"Meta's Best Perk: The 5 Year Recharge","updated_at":"2024-09-20T12:26:39Z","url":"https://andrenader.substack.com/p/recharge"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"hudon"},"title":{"matchLevel":"none","matchedWords":[],"value":"Bitcoin Predicted to Be the Nail in the Coffin of Climate Change"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://www.forbes.com/sites/andreamorris/2018/10/29/bitcoin-predicted-to-be-the-nail-in-the-coffin-of-climate-change/#6b0a806a745e"}},"_tags":["story","author_hudon","story_18333423"],"author":"hudon","children":[18333486,18333853],"created_at":"2018-10-30T01:52:03Z","created_at_i":1540864323,"num_comments":1,"objectID":"18333423","points":2,"story_id":18333423,"title":"Bitcoin Predicted to Be the Nail in the Coffin of Climate Change","updated_at":"2024-09-20T03:16:16Z","url":"https://www.forbes.com/sites/andreamorris/2018/10/29/bitcoin-predicted-to-be-the-nail-in-the-coffin-of-climate-change/#6b0a806a745e"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamonaco"},"story_text":{"matchLevel":"none","matchedWords":[],"value":"I started writing a little online 2d shooter game. There's a demo already available.

Any number of players can move in the same map and shoot at each other until they die; they can shoot at zombies too; they can collect rotten meat in their inventory. Meanwhile they must keep fed and hydrated.

I tested in a LAN, but it should work in any network. You can even start multiple clients locally if you don't have other people. Let me know how many people you manage to handle!

I will keep adding stuff to this game and will keep you updated.

Make any question down here!"},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: An online 2d shooter game in development"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://github.com/andreamonaco/zombieland"}},"_tags":["story","author_andreamonaco","story_43810407","show_hn"],"author":"andreamonaco","created_at":"2025-04-27T08:39:35Z","created_at_i":1745743175,"num_comments":0,"objectID":"43810407","points":2,"story_id":43810407,"story_text":"I started writing a little online 2d shooter game. There's a demo already available.

Any number of players can move in the same map and shoot at each other until they die; they can shoot at zombies too; they can collect rotten meat in their inventory. Meanwhile they must keep fed and hydrated.

I tested in a LAN, but it should work in any network. You can even start multiple clients locally if you don't have other people. Let me know how many people you manage to handle!

I will keep adding stuff to this game and will keep you updated.

Make any question down here!","title":"Show HN: An online 2d shooter game in development","updated_at":"2025-04-27T10:34:43Z","url":"https://github.com/andreamonaco/zombieland"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"CoffeeOnWrite"},"title":{"matchLevel":"none","matchedWords":[],"value":"Strategies for Diversifying Away from FAANG+ Company Stock"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://andrenader.substack.com/p/strategies-for-rsu-concentration"}},"_tags":["story","author_CoffeeOnWrite","story_39674909"],"author":"CoffeeOnWrite","created_at":"2024-03-12T00:54:24Z","created_at_i":1710204864,"num_comments":0,"objectID":"39674909","points":2,"story_id":39674909,"title":"Strategies for Diversifying Away from FAANG+ Company Stock","updated_at":"2024-09-20T16:40:15Z","url":"https://andrenader.substack.com/p/strategies-for-rsu-concentration"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andrenader"},"story_text":{"matchLevel":"none","matchedWords":[],"value":"Often in tech a significant portion of your comp will come from RSUs (restricted stock units). This means that as your company's stock moves, the income you can expect also changes.

I created this dashboard in Google Sheets to help make it easy to understand your total compensation. This is important to help plan your financial life.

Google employee's have an awesome internal tool that does this for them. Now the rest of us have access to the same understanding."},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: Total Compensation Dashboard Workers Paid with RSUs (Via Googlesheets)"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://andrenader.substack.com/p/rsu-based-total-compensation-dashboard"}},"_tags":["story","author_andrenader","story_38958011","show_hn"],"author":"andrenader","created_at":"2024-01-11T19:55:36Z","created_at_i":1705002936,"num_comments":0,"objectID":"38958011","points":2,"story_id":38958011,"story_text":"Often in tech a significant portion of your comp will come from RSUs (restricted stock units). This means that as your company's stock moves, the income you can expect also changes.

I created this dashboard in Google Sheets to help make it easy to understand your total compensation. This is important to help plan your financial life.

Google employee's have an awesome internal tool that does this for them. Now the rest of us have access to the same understanding.","title":"Show HN: Total Compensation Dashboard Workers Paid with RSUs (Via Googlesheets)","updated_at":"2024-09-20T16:06:01Z","url":"https://andrenader.substack.com/p/rsu-based-total-compensation-dashboard"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"teh_klev"},"title":{"matchLevel":"none","matchedWords":[],"value":"Stephen Fry Receives Richard Dawkins Award for Lack of Faith"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://www.forbes.com/sites/andreamorris/2018/10/25/stephen-fry-receives-richard-dawkins-award-for-lack-of-faith/"}},"_tags":["story","author_teh_klev","story_18311698"],"author":"teh_klev","created_at":"2018-10-26T18:31:14Z","created_at_i":1540578674,"num_comments":0,"objectID":"18311698","points":2,"story_id":18311698,"title":"Stephen Fry Receives Richard Dawkins Award for Lack of Faith","updated_at":"2024-09-20T03:13:23Z","url":"https://www.forbes.com/sites/andreamorris/2018/10/25/stephen-fry-receives-richard-dawkins-award-for-lack-of-faith/"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamancuso"},"title":{"matchLevel":"none","matchedWords":[],"value":"Need feedback on my open source library"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://github.com/andreamancuso/xframes"}},"_tags":["story","author_andreamancuso","story_42149297"],"author":"andreamancuso","children":[42149298,42149344],"created_at":"2024-11-15T18:02:52Z","created_at_i":1731693772,"num_comments":2,"objectID":"42149297","points":1,"story_id":42149297,"title":"Need feedback on my open source library","updated_at":"2024-11-15T18:09:37Z","url":"https://github.com/andreamancuso/xframes"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"jacob_lev"},"title":{"matchLevel":"none","matchedWords":[],"value":"I built a grid system where each cell = a trade"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://adrenamarkets.com"}},"_tags":["story","author_jacob_lev","story_46902435"],"author":"jacob_lev","children":[46902436],"created_at":"2026-02-05T17:54:28Z","created_at_i":1770314068,"num_comments":1,"objectID":"46902435","points":1,"story_id":46902435,"title":"I built a grid system where each cell = a trade","updated_at":"2026-03-05T23:30:22Z","url":"https://adrenamarkets.com"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamazz"},"story_text":{"matchLevel":"none","matchedWords":[],"value":""},"title":{"matchLevel":"none","matchedWords":[],"value":"iOS Wave custom transition"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://github.com/andreamazz/AMWaveTransition"}},"_tags":["story","author_andreamazz","story_8365925"],"author":"andreamazz","created_at":"2014-09-25T06:43:24Z","created_at_i":1411627404,"num_comments":0,"objectID":"8365925","points":1,"story_id":8365925,"story_text":"","title":"iOS Wave custom transition","updated_at":"2024-09-19T21:08:56Z","url":"https://github.com/andreamazz/AMWaveTransition"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"zerop"},"story_text":{"matchLevel":"none","matchedWords":[],"value":""},"title":{"matchLevel":"none","matchedWords":[],"value":"The Big-Data Ecosystem Table"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"http://bigdata.andreamostosi.name/"}},"_tags":["story","author_zerop","story_8073946"],"author":"zerop","created_at":"2014-07-23T12:26:23Z","created_at_i":1406118383,"num_comments":0,"objectID":"8073946","points":1,"story_id":8073946,"story_text":"","title":"The Big-Data Ecosystem Table","updated_at":"2023-09-06T22:01:50Z","url":"http://bigdata.andreamostosi.name/"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamonti"},"story_text":{"matchLevel":"none","matchedWords":[],"value":""},"title":{"matchLevel":"none","matchedWords":[],"value":"PlaceHolder, save your locations and go back there later in a second"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://play.google.com/store/apps/details?id=com.andreamontanari.placeholder"}},"_tags":["story","author_andreamonti","story_7449371"],"author":"andreamonti","created_at":"2014-03-22T15:25:31Z","created_at_i":1395501931,"num_comments":0,"objectID":"7449371","points":1,"story_id":7449371,"story_text":"","title":"PlaceHolder, save your locations and go back there later in a second","updated_at":"2024-09-19T20:35:05Z","url":"https://play.google.com/store/apps/details?id=com.andreamontanari.placeholder"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamonaco"},"story_text":{"matchLevel":"none","matchedWords":[],"value":"I got this crazy idea of writing my own little 2d MMO game. Work has started, and I have a demo available.

Any number of players can move in the same little 2d map and shoot at each other until they die; they can shoot at zombies too.

I tested in a LAN, but it should work in any network. You can even start multiple clients locally if you don't have other people. Let me know how many people you manage to handle!

I will keep adding stuff to this game and will keep you updated.

Make any question down here! Software is GPL3+, assets are free too"},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: 2d MMO game about zombies in development"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://github.com/andreamonaco/zombieland"}},"_tags":["story","author_andreamonaco","story_43642331","show_hn"],"author":"andreamonaco","created_at":"2025-04-10T09:46:33Z","created_at_i":1744278393,"num_comments":0,"objectID":"43642331","points":1,"story_id":43642331,"story_text":"I got this crazy idea of writing my own little 2d MMO game. Work has started, and I have a demo available.

Any number of players can move in the same little 2d map and shoot at each other until they die; they can shoot at zombies too.

I tested in a LAN, but it should work in any network. You can even start multiple clients locally if you don't have other people. Let me know how many people you manage to handle!

I will keep adding stuff to this game and will keep you updated.

Make any question down here! Software is GPL3+, assets are free too","title":"Show HN: 2d MMO game about zombies in development","updated_at":"2025-04-28T03:54:02Z","url":"https://github.com/andreamonaco/zombieland"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"sanj"},"title":{"matchLevel":"none","matchedWords":[],"value":"NFC Clothes Tracking"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://andrenader.substack.com/p/nfc-clothes-tracker"}},"_tags":["story","author_sanj","story_41459915"],"author":"sanj","children":[41460296],"created_at":"2024-09-05T19:55:01Z","created_at_i":1725566101,"num_comments":0,"objectID":"41459915","points":1,"story_id":41459915,"title":"NFC Clothes Tracking","updated_at":"2024-09-20T17:46:27Z","url":"https://andrenader.substack.com/p/nfc-clothes-tracker"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"sarimkx"},"title":{"matchLevel":"none","matchedWords":[],"value":"FAANG Fire"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://andrenader.substack.com/"}},"_tags":["story","author_sarimkx","story_39778856"],"author":"sarimkx","created_at":"2024-03-21T14:25:02Z","created_at_i":1711031102,"num_comments":0,"objectID":"39778856","points":1,"story_id":39778856,"title":"FAANG Fire","updated_at":"2024-09-20T16:41:20Z","url":"https://andrenader.substack.com/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"mcguire"},"title":{"matchLevel":"none","matchedWords":[],"value":"Andrea Matranga and the Neolithic Revolution"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"https://twitter.com/andreamatranga/status/1248365674528772096"}},"_tags":["story","author_mcguire","story_27888893"],"author":"mcguire","created_at":"2021-07-20T00:33:15Z","created_at_i":1626741195,"num_comments":0,"objectID":"27888893","points":1,"story_id":27888893,"title":"Andrea Matranga and the Neolithic Revolution","updated_at":"2024-09-20T09:02:30Z","url":"https://twitter.com/andreamatranga/status/1248365674528772096"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreeamiclaus"},"title":{"matchLevel":"none","matchedWords":[],"value":"Build your own Siri locally and on-device"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://thehyperplane.substack.com/p/build-your-own-siri-locally-on-device"}},"_tags":["story","author_andreeamiclaus","story_43966694"],"author":"andreeamiclaus","children":[43967325,43967645,43967820,43967856,43968011,43968428,43968514,43968618,43968755,43969567,43969693,43970185,43971067],"created_at":"2025-05-12T19:32:19Z","created_at_i":1747078339,"num_comments":46,"objectID":"43966694","points":185,"story_id":43966694,"title":"Build your own Siri locally and on-device","updated_at":"2025-07-22T11:49:08Z","url":"https://thehyperplane.substack.com/p/build-your-own-siri-locally-on-device"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andrenarchy"},"title":{"matchLevel":"none","matchedWords":[],"value":"Is Your Site Leaking Password Reset Links?"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://robots.thoughtbot.com/is-your-site-leaking-password-reset-links"}},"_tags":["story","author_andrenarchy","story_12777896"],"author":"andrenarchy","children":[12778113,12778149,12778163,12778173,12778177,12778201,12778291,12778361,12778411,12778558,12778570,12778579,12778982,12779841,12779892,12779897,12780021,12780594,12780809,12780884,12781264,12786253],"created_at":"2016-10-24T11:14:18Z","created_at_i":1477307658,"num_comments":89,"objectID":"12777896","points":174,"story_id":12777896,"title":"Is Your Site Leaking Password Reset Links?","updated_at":"2024-09-19T23:54:19Z","url":"https://robots.thoughtbot.com/is-your-site-leaking-password-reset-links"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamichi"},"title":{"matchLevel":"none","matchedWords":[],"value":"Machine learning can boost the value of wind energy"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://deepmind.com/blog/machine-learning-can-boost-value-wind-energy/"}},"_tags":["story","author_andreamichi","story_19255475"],"author":"andreamichi","children":[19256622,19256656,19256658,19256686,19256806,19257170,19257407,19257752,19258055,19258074,19258825,19259355,19260524,19261244,19261506,19262300],"created_at":"2019-02-26T16:13:31Z","created_at_i":1551197611,"num_comments":32,"objectID":"19255475","points":148,"story_id":19255475,"title":"Machine learning can boost the value of wind energy","updated_at":"2024-09-20T03:52:38Z","url":"https://deepmind.com/blog/machine-learning-can-boost-value-wind-energy/"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamonaco"},"story_text":{"matchLevel":"none","matchedWords":[],"value":"Implementation of the standard is still not complete, but breakpoints and stepping work quite well! It also has some support for watchpoints, that no implementation has.

Now it ships with ASDF and is capable of loading systems!

Let me know if you like it. Support on Patreon or Liberapay is much appreciated"},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: A Common Lisp implementation in development, supports ASDF"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://savannah.nongnu.org/p/alisp"}},"_tags":["story","author_andreamonaco","story_43811432","show_hn"],"author":"andreamonaco","children":[43811461,43812668,43812930,43813151,43813295,43813633,43813827,43814542,43815682,43830425],"created_at":"2025-04-27T12:24:04Z","created_at_i":1745756644,"num_comments":60,"objectID":"43811432","points":96,"story_id":43811432,"story_text":"Implementation of the standard is still not complete, but breakpoints and stepping work quite well! It also has some support for watchpoints, that no implementation has.

Now it ships with ASDF and is capable of loading systems!

Let me know if you like it. Support on Patreon or Liberapay is much appreciated","title":"Show HN: A Common Lisp implementation in development, supports ASDF","updated_at":"2025-10-26T03:41:09Z","url":"https://savannah.nongnu.org/p/alisp"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamonaco"},"story_text":{"matchLevel":"none","matchedWords":[],"value":"It reached version 1.6, now it covers more than 80% of the standard.\nalisp ships with ASDF and is capable of loading many real-world systems, let me know if your favorite system succeeds!\nLicense is GPL3 or later, no LLMs used."},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: An implementation of Common Lisp in development, reached version 1.6"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://savannah.nongnu.org/news/?id=10889"}},"_tags":["story","author_andreamonaco","story_48105458","show_hn"],"author":"andreamonaco","children":[48107226],"created_at":"2026-05-12T07:55:35Z","created_at_i":1778572535,"num_comments":3,"objectID":"48105458","points":27,"story_id":48105458,"story_text":"It reached version 1.6, now it covers more than 80% of the standard.\nalisp ships with ASDF and is capable of loading many real-world systems, let me know if your favorite system succeeds!\nLicense is GPL3 or later, no LLMs used.","title":"Show HN: An implementation of Common Lisp in development, reached version 1.6","updated_at":"2026-05-13T03:16:18Z","url":"https://savannah.nongnu.org/news/?id=10889"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andrenatalbr"},"title":{"matchLevel":"none","matchedWords":[],"value":"iPhone 13 Pro blurry camera"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://discussions.apple.com/thread/253181534"}},"_tags":["story","author_andrenatalbr","story_29183515"],"author":"andrenatalbr","created_at":"2021-11-11T01:47:43Z","created_at_i":1636595263,"num_comments":0,"objectID":"29183515","points":24,"story_id":29183515,"title":"iPhone 13 Pro blurry camera","updated_at":"2024-09-20T09:51:11Z","url":"https://discussions.apple.com/thread/253181534"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamonaco"},"story_text":{"matchLevel":"none","matchedWords":[],"value":"I've been working on this for a couple years.

Implementation of the standard is still not complete, but in my opinion breakpoints and stepping work quite well! Support for loading systems with ASDF is near.

Let me know if you like it! Support on Patreon or Liberapay is much appreciated"},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: A Common Lisp implementation in development"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://savannah.nongnu.org/projects/alisp/"}},"_tags":["story","author_andreamonaco","story_42716790","show_hn"],"author":"andreamonaco","children":[42717235,42718559,42722172,42722332],"created_at":"2025-01-15T20:53:42Z","created_at_i":1736974422,"num_comments":9,"objectID":"42716790","points":18,"story_id":42716790,"story_text":"I've been working on this for a couple years.

Implementation of the standard is still not complete, but in my opinion breakpoints and stepping work quite well! Support for loading systems with ASDF is near.

Let me know if you like it! Support on Patreon or Liberapay is much appreciated","title":"Show HN: A Common Lisp implementation in development","updated_at":"2025-04-28T03:54:02Z","url":"https://savannah.nongnu.org/projects/alisp/"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamichi"},"title":{"matchLevel":"none","matchedWords":[],"value":"Supporting critical Open Source with $5M credits for vulnerability detection"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://depthfirst.com/open-defense"}},"_tags":["story","author_andreamichi","story_48113782"],"author":"andreamichi","children":[48113783,48113829,48116224],"created_at":"2026-05-12T20:09:35Z","created_at_i":1778616575,"num_comments":2,"objectID":"48113782","points":13,"story_id":48113782,"title":"Supporting critical Open Source with $5M credits for vulnerability detection","updated_at":"2026-05-13T18:41:21Z","url":"https://depthfirst.com/open-defense"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamichi"},"title":{"matchLevel":"none","matchedWords":[],"value":"Nginx Rift: RCE via heap buffer overflow in rewrite module (CVE-2026-42945)"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://depthfirst.com/nginx-rift"}},"_tags":["story","author_andreamichi","story_48123365"],"author":"andreamichi","children":[48123366,48135379],"created_at":"2026-05-13T15:40:02Z","created_at_i":1778686802,"num_comments":0,"objectID":"48123365","points":13,"story_id":48123365,"title":"Nginx Rift: RCE via heap buffer overflow in rewrite module (CVE-2026-42945)","updated_at":"2026-05-17T05:58:03Z","url":"https://depthfirst.com/nginx-rift"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreeamiclaus"},"title":{"matchLevel":"none","matchedWords":[],"value":"Data preparation for function tooling is boring"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://thehyperplane.substack.com/p/data-preparation-for-function-tooling"}},"_tags":["story","author_andreeamiclaus","story_43977821"],"author":"andreeamiclaus","children":[43977822,44009878,44010623],"created_at":"2025-05-13T21:16:09Z","created_at_i":1747170969,"num_comments":4,"objectID":"43977821","points":9,"story_id":43977821,"title":"Data preparation for function tooling is boring","updated_at":"2025-05-17T13:28:53Z","url":"https://thehyperplane.substack.com/p/data-preparation-for-function-tooling"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andrenatal"},"story_text":{"matchLevel":"none","matchedWords":[],"value":""},"title":{"matchLevel":"none","matchedWords":[],"value":"Meet Hello, Firefox's No-Login Video Chat System. It's a Big Deal"},"url":{"matchLevel":"none","matchedWords":[],"value":"http://www.fastcompany.com/3040944/meet-hello-firefoxs-no-login-video-chat-system-its-a-big-deal"}},"_tags":["story","author_andrenatal","story_8937056"],"author":"andrenatal","children":[8937142],"created_at":"2015-01-23T20:25:46Z","created_at_i":1422044746,"num_comments":1,"objectID":"8937056","points":7,"story_id":8937056,"story_text":"","title":"Meet Hello, Firefox's No-Login Video Chat System. It's a Big Deal","updated_at":"2023-09-06T23:20:55Z","url":"http://www.fastcompany.com/3040944/meet-hello-firefoxs-no-login-video-chat-system-its-a-big-deal"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamonaco"},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: A Common Lisp implementation in development"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://savannah.nongnu.org/news/?id=10876"}},"_tags":["story","author_andreamonaco","story_47650088","show_hn"],"author":"andreamonaco","created_at":"2026-04-05T14:56:09Z","created_at_i":1775400969,"num_comments":0,"objectID":"47650088","points":7,"story_id":47650088,"title":"Show HN: A Common Lisp implementation in development","updated_at":"2026-04-09T08:43:16Z","url":"https://savannah.nongnu.org/news/?id=10876"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andrenader"},"title":{"matchLevel":"none","matchedWords":[],"value":"Meta Drops Employee RSU Refreshers by >10%"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://www.faangfire.com/p/meta-drops-rsu-refreshers-10-or-more"}},"_tags":["story","author_andrenader","story_43121487"],"author":"andrenader","created_at":"2025-02-20T22:53:39Z","created_at_i":1740092019,"num_comments":0,"objectID":"43121487","points":6,"story_id":43121487,"title":"Meta Drops Employee RSU Refreshers by >10%","updated_at":"2025-02-21T07:15:00Z","url":"https://www.faangfire.com/p/meta-drops-rsu-refreshers-10-or-more"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamilano"},"title":{"matchLevel":"none","matchedWords":[],"value":"Garbage Valley"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://garbagevalley.substack.com/p/garbage-valley"}},"_tags":["story","author_andreamilano","story_25628575"],"author":"andreamilano","created_at":"2021-01-04T07:19:17Z","created_at_i":1609744757,"num_comments":0,"objectID":"25628575","points":5,"story_id":25628575,"title":"Garbage Valley","updated_at":"2024-09-20T07:37:52Z","url":"https://garbagevalley.substack.com/p/garbage-valley"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andrenarchy"},"title":{"matchLevel":"none","matchedWords":[],"value":"Despite the constant negative press envfefe \u2013 parse env vars nicely in Node.js"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://github.com/paperhive/envfefe"}},"_tags":["story","author_andrenarchy","story_15806307"],"author":"andrenarchy","created_at":"2017-11-29T12:39:48Z","created_at_i":1511959188,"num_comments":0,"objectID":"15806307","points":5,"story_id":15806307,"title":"Despite the constant negative press envfefe \u2013 parse env vars nicely in Node.js","updated_at":"2024-09-20T01:37:57Z","url":"https://github.com/paperhive/envfefe"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andrenarchy"},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: Fefe \u2013 Zero-hassle validation with functional TypeScript"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://github.com/paperhive/fefe"}},"_tags":["story","author_andrenarchy","story_18855836","show_hn"],"author":"andrenarchy","created_at":"2019-01-08T14:54:01Z","created_at_i":1546959241,"num_comments":0,"objectID":"18855836","points":4,"story_id":18855836,"title":"Show HN: Fefe \u2013 Zero-hassle validation with functional TypeScript","updated_at":"2024-09-20T03:32:46Z","url":"https://github.com/paperhive/fefe"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamazz"},"story_text":{"matchLevel":"none","matchedWords":[],"value":""},"title":{"matchLevel":"none","matchedWords":[],"value":"React and Flux Backed by Rails API"},"url":{"matchLevel":"none","matchedWords":[],"value":"http://fancypixel.github.io/blog/2015/01/28/react-plus-flux-backed-by-rails-api/"}},"_tags":["story","author_andreamazz","story_8983688"],"author":"andreamazz","created_at":"2015-02-02T11:31:24Z","created_at_i":1422876684,"num_comments":0,"objectID":"8983688","points":3,"story_id":8983688,"story_text":"","title":"React and Flux Backed by Rails API","updated_at":"2023-09-06T23:25:12Z","url":"http://fancypixel.github.io/blog/2015/01/28/react-plus-flux-backed-by-rails-api/"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andrenatalbr"},"title":{"matchLevel":"none","matchedWords":[],"value":"California Has $7B for Broadband. Sacramento May Just Sit on It"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://www.eff.org/deeplinks/2021/06/california-has-7-billion-broadband-sacramento-do-nothing-it"}},"_tags":["story","author_andrenatalbr","story_27427085"],"author":"andrenatalbr","created_at":"2021-06-07T21:18:59Z","created_at_i":1623100739,"num_comments":0,"objectID":"27427085","points":3,"story_id":27427085,"title":"California Has $7B for Broadband. Sacramento May Just Sit on It","updated_at":"2024-09-20T08:42:33Z","url":"https://www.eff.org/deeplinks/2021/06/california-has-7-billion-broadband-sacramento-do-nothing-it"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamancuso"},"story_text":{"matchLevel":"none","matchedWords":[],"value":"I recently proposed adding native support for Design by Contract to Python, starting with class invariants.

The idea: if a class defines an `__invariant__()` method, Python would automatically run it before and after every public method call. No decorators or metaclasses\u2014just opt-in, self-verifying code.

Languages like Eiffel, D, and Ada support this natively. I tried implementing it as a C extension, but Python\u2019s dynamic nature made that very difficult\u2014so I brought the idea to the [official Python forum](https://discuss.python.org/t/design-by-contract-in-python-proposal-for-native-class-invariants/85434) to see if there\u2019s broader interest.

Would love to hear what HN thinks\u2014especially:\n- Have you ever wished for this in Python?\n- Would you use it if it were opt-in and debug-mode only?\n- Is Python the right place for something like this?

Link to full proposal: \nhttps://discuss.python.org/t/design-by-contract-in-python-proposal-for-native-class-invariants/85434

\u2014 Andrea"},"title":{"matchLevel":"none","matchedWords":[],"value":"Ask HN: Should Python support native Design by Contract (class invariants)?"}},"_tags":["story","author_andreamancuso","story_43433891","ask_hn"],"author":"andreamancuso","children":[43433917,43434254],"created_at":"2025-03-21T10:19:10Z","created_at_i":1742552350,"num_comments":3,"objectID":"43433891","points":2,"story_id":43433891,"story_text":"I recently proposed adding native support for Design by Contract to Python, starting with class invariants.

The idea: if a class defines an `__invariant__()` method, Python would automatically run it before and after every public method call. No decorators or metaclasses\u2014just opt-in, self-verifying code.

Languages like Eiffel, D, and Ada support this natively. I tried implementing it as a C extension, but Python\u2019s dynamic nature made that very difficult\u2014so I brought the idea to the [official Python forum](https://discuss.python.org/t/design-by-contract-in-python-proposal-for-native-class-invariants/85434) to see if there\u2019s broader interest.

Would love to hear what HN thinks\u2014especially:\n- Have you ever wished for this in Python?\n- Would you use it if it were opt-in and debug-mode only?\n- Is Python the right place for something like this?

Link to full proposal: \nhttps://discuss.python.org/t/design-by-contract-in-python-proposal-for-native-class-invariants/85434

\u2014 Andrea","title":"Ask HN: Should Python support native Design by Contract (class invariants)?","updated_at":"2025-03-21T11:22:43Z"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andrewamber"},"story_text":{"matchLevel":"none","matchedWords":[],"value":"Hi, I am having a hard time explaining the concept of callback functions in DOM to a friend coming from Qt/C++ background. Any thoughts how I could make it sound more friendly sounding given his background. This was my most recent attempt:

The most common host environment in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of Facade Pattern is a utility to help run multiple versions of Node. Despite the performance limitations inherent to its dynamic nature, the increasing speed of JavaScript utilities designed for the web. HTTP requests. Virtual DOM is a predictable state container for apps."},"title":{"matchLevel":"none","matchedWords":[],"value":"Please help explaining this to a friend"}},"_tags":["story","author_andrewamber","story_12749120","ask_hn"],"author":"andrewamber","children":[12749145],"created_at":"2016-10-20T00:57:43Z","created_at_i":1476925063,"num_comments":2,"objectID":"12749120","points":2,"story_id":12749120,"story_text":"Hi, I am having a hard time explaining the concept of callback functions in DOM to a friend coming from Qt/C++ background. Any thoughts how I could make it sound more friendly sounding given his background. This was my most recent attempt:

The most common host environment in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of Facade Pattern is a utility to help run multiple versions of Node. Despite the performance limitations inherent to its dynamic nature, the increasing speed of JavaScript utilities designed for the web. HTTP requests. Virtual DOM is a predictable state container for apps.","title":"Please help explaining this to a friend","updated_at":"2024-09-19T23:51:39Z"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["andrenam"],"value":"andreamazz"},"story_text":{"matchLevel":"none","matchedWords":[],"value":""},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: Why I do Open Source and why sometimes I shouldn\u2019t"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://medium.com/@theandreamazz/why-i-do-open-source-and-why-sometimes-i-shouldn-t-4a1fb6eb3ad1"}},"_tags":["story","author_andreamazz","story_9773820","show_hn"],"author":"andreamazz","children":[9785330],"created_at":"2015-06-24T19:14:49Z","created_at_i":1435173289,"num_comments":1,"objectID":"9773820","points":2,"story_id":9773820,"story_text":"","title":"Show HN: Why I do Open Source and why sometimes I shouldn\u2019t","updated_at":"2023-09-07T03:03:08Z","url":"https://medium.com/@theandreamazz/why-i-do-open-source-and-why-sometimes-i-shouldn-t-4a1fb6eb3ad1"}],"hitsPerPage":50,"nbHits":1404,"nbPages":20,"page":0,"params":"query=Andrenam&tags=story&hitsPerPage=50&advancedSyntax=true&analyticsTags=backend","processingTimeMS":21,"processingTimingsMS":{"_request":{"queue":361,"roundTrip":31},"afterFetch":{"format":{"highlighting":1,"total":1},"merge":{"mergeLoop":{"prepareNextHit":1,"total":1},"total":1},"total":1},"fetch":{"query":15,"scanning":3,"total":19},"total":21},"query":"Andrenam","serverTimeMS":385}