{"id":15976,"date":"2026-08-31T15:46:35","date_gmt":"2026-08-31T13:46:35","guid":{"rendered":"https:\/\/monodes.com\/predaelli\/?p=15976"},"modified":"2026-08-31T15:46:37","modified_gmt":"2026-08-31T13:46:37","slug":"a-good-usage-of-vibe-coding","status":"publish","type":"post","link":"https:\/\/monodes.com\/predaelli\/2026\/08\/31\/a-good-usage-of-vibe-coding\/","title":{"rendered":"A good usage of vibe-coding"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Here an application where vibe-coding is used positively:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/tizbac\/firmadigitaleopenng\">https:\/\/github.com\/tizbac\/firmadigitaleopenng<\/a> &#8211; Opensource Italian Digital Signing for Linux<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Let me be clear with that, this project is mostly vibe-coded, from original python version i made, if you are not ok with that, feel free to use the crashy ones that barely run on linux or require ubuntu 8.04 \ud83d\ude42 Resulting signatures have been verified against Infocert verification tool, and they fully pass. Beware for some smart card readers you may need not just opensc but also cccid drivers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C++\/Qt6 rewrite of the Python <code class=\"\" data-line=\"\">FirmaDigitaleOpen<\/code> tool. It signs PDFs with <strong>PAdES-BES<\/strong> and produces\/verifies <strong>P7M<\/strong> (CMS detached) signatures, using a PKCS#11 security token (Bit4id) for the private key. It also verifies <strong>TSL<\/strong> (Trusted Lists) status lists.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The cryptographic core (<code class=\"\" data-line=\"\">fdo_core<\/code>) has no Qt dependency and is fully unit tested; the Qt GUI sits on top of it.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Now we &#8220;just&#8221; have to add all the testing. Having used design by contract would have helped here<\/p>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">Here an application where vibe-coding is used positively: https:\/\/github.com\/tizbac\/firmadigitaleopenng &#8211; Opensource Italian Digital Signing for Linux Let me be clear with that, this project is mostly vibe-coded, from original python version i made, if you are not ok with that, feel free to use the crashy ones that barely run on linux or require ubuntu&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/monodes.com\/predaelli\/2026\/08\/31\/a-good-usage-of-vibe-coding\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_members_access_role":[],"_members_access_error":""},"categories":[52,14],"tags":[],"class_list":["post-15976","post","type-post","status-publish","format-standard","hentry","category-software","category-software-libero"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6daft-49G","jetpack-related-posts":[{"id":14807,"url":"https:\/\/monodes.com\/predaelli\/2026\/01\/23\/the-xonsh-shell-python-powered-shell\/","url_meta":{"origin":15976,"position":0},"title":"The Xonsh Shell \u2014 Python-powered shell","author":"Paolo Redaelli","date":"2026-01-23","format":false,"excerpt":"The Xonsh Shell \u2014 Python-powered shell. Python shell. Python in the shell. Shell in Python. Shell and Python. Python and shell.Xonsh (sounds like \"consh\") is a modern, full-featured and cross-platform python shell. The language is a superset of Python 3.6+ with additional shell primitives that you are used to from\u2026","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"https:\/\/monodes.com\/predaelli\/category\/python\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2026\/01\/xonsh.webp?fit=257%2C399&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":11243,"url":"https:\/\/monodes.com\/predaelli\/2024\/01\/19\/pssh-run-commands-on-multiple-remote-linux-systems\/","url_meta":{"origin":15976,"position":1},"title":"PSSH &#8211; Run Commands on Multiple Remote Linux Systems","author":"Paolo Redaelli","date":"2024-01-19","format":"link","excerpt":"\u00a0PSSH is a small Python-based program, which allows you to execute commands on multiple Linux remote servers in parallel at the same time using the single shell. Source:- Run Commands on Multiple Remote Linux Systems","rel":"","context":"In &quot;Tricks&quot;","block_context":{"text":"Tricks","link":"https:\/\/monodes.com\/predaelli\/category\/documentations\/tricks\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4928,"url":"https:\/\/monodes.com\/predaelli\/2018\/11\/17\/green-recorder-a-simple-screen-recorder-for-linux-with-wayland-support-2daygeek-com\/","url_meta":{"origin":15976,"position":2},"title":"Green Recorder &#8211; A Simple Screen Recorder For Linux With Wayland Support | 2daygeek.com","author":"Paolo Redaelli","date":"2018-11-17","format":false,"excerpt":"Green recorder is a free, open source, simple desktop recorder for Linux systems and written using Python, GTK+3 and ffmpeg. It supports audio and video Source: Green Recorder - A Simple Screen Recorder For Linux With Wayland Support | 2daygeek.com","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":14846,"url":"https:\/\/monodes.com\/predaelli\/2026\/01\/28\/flutter-a-necessary-evil\/","url_meta":{"origin":15976,"position":3},"title":"Flutter? A necessary evil","author":"Paolo Redaelli","date":"2026-01-28","format":false,"excerpt":"Flutter SDK is available only for Linux x64. MacOS has ARM and x64 packages, Windows has x64. This make developing on Raspberry a real chore, not to speak *BSD. This makes me distrust the language as it seems a little to much under the whims of the GAFAM that controls\u2026","rel":"","context":"In &quot;Ethics&quot;","block_context":{"text":"Ethics","link":"https:\/\/monodes.com\/predaelli\/category\/ethics\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2025\/12\/flet-dev.webp?fit=752%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2025\/12\/flet-dev.webp?fit=752%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2025\/12\/flet-dev.webp?fit=752%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2025\/12\/flet-dev.webp?fit=752%2C800&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":9031,"url":"https:\/\/monodes.com\/predaelli\/2021\/12\/30\/packaging-pyqt5-apps-with-fbs-distribute-cross-platform-gui-applications-with-the-fman-build-system\/","url_meta":{"origin":15976,"position":4},"title":"Packaging PyQt5 apps with fbs \u2014 Distribute cross-platform GUI applications with the fman Build System","author":"Paolo Redaelli","date":"2021-12-30","format":"link","excerpt":"Packaging PyQt5 apps with fbs \u2014 Distribute cross-platform GUI applications with the fman Build System Packaging PyQt5 apps with fbs Distribute cross-platform GUI applications with the fman Build System by Martin Fitzpatrick Read time 13:29 Packaging and distribution Packaging and distribution course Packaging PyQt5 applications for Windows, with PyInstaller Packaging\u2026","rel":"","context":"In &quot;Documentations&quot;","block_context":{"text":"Documentations","link":"https:\/\/monodes.com\/predaelli\/category\/documentations\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4960,"url":"https:\/\/monodes.com\/predaelli\/2018\/11\/22\/object-relational-mappers-orms-full-stack-python\/","url_meta":{"origin":15976,"position":5},"title":"Object-relational Mappers (ORMs) &#8211; Full Stack Python","author":"Paolo Redaelli","date":"2018-11-22","format":false,"excerpt":"Object-relational Mappers (ORMs) - Full Stack Python Object-relational mappers (ORMs) bridge relational databases and data represented in Python code. Great post on Full Stack Python about Object-relational Mappers (ORMs)! When I started coding most of them didn't exist. In fact an unfinished project of mine started hand-coding an object-relational mapping.\u2026","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"https:\/\/monodes.com\/predaelli\/category\/python\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/15976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/comments?post=15976"}],"version-history":[{"count":1,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/15976\/revisions"}],"predecessor-version":[{"id":15978,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/15976\/revisions\/15978"}],"wp:attachment":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media?parent=15976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/categories?post=15976"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/tags?post=15976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}