<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Resources on Osmar Petry</title><link>https://osmarpetry.dev/tags/resources/</link><description>Recent content in Resources on Osmar Petry</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Tue, 15 Apr 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://osmarpetry.dev/tags/resources/rss.xml" rel="self" type="application/rss+xml"/><item><title>Conway’s Law — origins, literature, and team design</title><link>https://osmarpetry.dev/blog/conways-law-birth-1968/</link><pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate><guid>https://osmarpetry.dev/blog/conways-law-birth-1968/</guid><description>&lt;h2 id="reference-stack"&gt;Reference stack&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Melvin Conway, “How Do Committees Invent?” (1968).&lt;/li&gt;&#10;&lt;li&gt;Thoughtworks, “Applying Conway’s Law to Improve Your Software Development.”&lt;/li&gt;&#10;&lt;li&gt;M. Soldani et al., “A Decade of Conway’s Law: A Literature Review 2003–2012” (IEEE).&lt;/li&gt;&#10;&lt;li&gt;Video summary: &lt;a href="https://youtu.be/SWrlFod8t5g" target="_blank" rel="noreferrer"&gt;https://youtu.be/SWrlFod8t5g&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="essence-of-the-law"&gt;Essence of the law&lt;/h2&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;“Any organization that designs a system will produce a design whose structure is a copy of the organization’s communication structure.”&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Architecture mirrors team communication pathways; siloed teams create siloed modules, joined at fragile seams.&lt;/li&gt;&#10;&lt;li&gt;“Monolithic teams do not build microservices”—system modularity depends on cross-team autonomy and shared vocabulary.&lt;/li&gt;&#10;&lt;li&gt;Neglecting communication design results in accidental system design, rather than deliberate architecture.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="historical-context--popularization"&gt;Historical context &amp;amp; popularization&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Conway observed the phenomenon across software, military, and governmental projects in the 1960s.&lt;/li&gt;&#10;&lt;li&gt;Frederick Brooks amplified the idea in &lt;em&gt;The Mythical Man-Month&lt;/em&gt;, cementing “Conway’s Law” in software folklore.&lt;/li&gt;&#10;&lt;li&gt;Later research confirms that org charts and interface diagrams often align, sometimes unintentionally.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="key-takeaways-from-the-literature-review"&gt;Key takeaways from the literature review&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Larger organizations introduce communication friction, leading to complex, tightly coupled systems.&lt;/li&gt;&#10;&lt;li&gt;Parkinson’s Law: management layers tend to expand, exacerbating coordination overhead.&lt;/li&gt;&#10;&lt;li&gt;Small, autonomous teams (“two-pizza teams”) correlate with cleaner, more modular architecture.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="review-questions"&gt;Review questions&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;How does organizational structure influence the resulting system design?&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Systems reflect the communication patterns of their creators; poor cross-team collaboration manifests as brittle interfaces.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;How does company size impact system complexity?&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;As organizations grow, coordination paths lengthen, producing sprawling systems with integration pain; keeping teams small mitigates the effect.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="practical-implications"&gt;Practical implications&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Design teams around the architecture you want (the “inverse Conway maneuver”): align squads to bounded contexts before writing code.&lt;/li&gt;&#10;&lt;li&gt;Optimize for communication density: co-locate domains, create shared rituals, and collapse unnecessary hierarchy.&lt;/li&gt;&#10;&lt;li&gt;When introducing API gateways or platform teams, ensure their communication network matches the required integrations.&lt;/li&gt;&#10;&lt;li&gt;Regularly map org structures to architecture diagrams; adjust teams when misalignment appears.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="next-actions"&gt;Next actions&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Compare current team topology with service/module boundaries; plan reorg if misalignment exists.&lt;/li&gt;&#10;&lt;li&gt;Share the original essay and Thoughtworks article with engineering leadership to ground discussions in historical context.&lt;/li&gt;&#10;&lt;li&gt;Incorporate Conway’s Law checkpoints into architecture reviews (e.g., “Does a team own each interface?”).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="related-notes"&gt;Related Notes&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;[[DbC|Design by Contract]]&lt;/li&gt;&#10;&lt;li&gt;[[no-silver-bullet-1986|No Silver Bullet — Essence &amp;amp; Accidents]]&lt;/li&gt;&#10;&lt;li&gt;[[parnas-modularization-1972|Modularization Criteria — Parnas 1972]]&lt;/li&gt;&#10;&lt;li&gt;[[software-aging-1994|Software Aging]]&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Teach Yourself Programming in Ten Years</title><link>https://osmarpetry.dev/blog/teach-yourself-programming-ten-years-2001/</link><pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate><guid>https://osmarpetry.dev/blog/teach-yourself-programming-ten-years-2001/</guid><description>&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;&#10;&lt;p&gt;Peter Norvig critiques promises of learning programming in weeks. Drawing on research in chess, music, and sports, he argues true mastery requires about ten years of deliberate practice—progressive challenges, feedback, and continual improvement. There are no shortcuts: success comes from sustained effort and critical self-analysis.&lt;/p&gt;&#10;&lt;h2 id="key-points"&gt;Key points&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Questions the abundance of “Learn X in 24 Hours/21 Days” books.&lt;/li&gt;&#10;&lt;li&gt;Excellence in any complex field typically demands ~10 years of deliberate practice (citing K. Anders Ericsson’s work).&lt;/li&gt;&#10;&lt;li&gt;Historical examples (Mozart, Beatles) show their peak came only after years of intense practice.&lt;/li&gt;&#10;&lt;li&gt;No magical formulas; commitment to long-term learning is essential.&lt;/li&gt;&#10;&lt;li&gt;Practical advice: explore multiple languages, seek challenges, learn from peers, blend theory with real projects.&lt;/li&gt;&#10;&lt;li&gt;Books alone are insufficient; hands-on experience is irreplaceable.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="connections"&gt;Connections&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Ties to deliberate practice theory and Malcolm Gladwell’s “10,000 hours” popularisation.&lt;/li&gt;&#10;&lt;li&gt;Informs discussions on computing education and depth vs superficial knowledge.&lt;/li&gt;&#10;&lt;li&gt;Supports lifelong learning and career development perspectives in tech.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="questions"&gt;Questions&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;How to balance theory and deliberate practice?&lt;/li&gt;&#10;&lt;li&gt;Does the “ten-year” model apply uniformly across computing domains?&lt;/li&gt;&#10;&lt;li&gt;How to maintain motivation through multi-year learning journeys?&lt;/li&gt;&#10;&lt;li&gt;Which strategies accelerate progress without sacrificing depth?&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="personal-reflections"&gt;Personal reflections&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Reinforces patience and persistence when building programming expertise.&lt;/li&gt;&#10;&lt;li&gt;Relevant to today’s culture of immediacy—reminds us depth takes time.&lt;/li&gt;&#10;&lt;li&gt;Agrees that combining study, deliberate practice, and real projects yields steady growth.&lt;/li&gt;&#10;&lt;li&gt;Encourages valuing the learning process rather than chasing quick wins.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="detailed-notes"&gt;Detailed notes&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Abundance of quick-learning resources doesn’t reflect real mastery requirements.&lt;/li&gt;&#10;&lt;li&gt;Deliberate practice: constant challenge, error analysis, improvement.&lt;/li&gt;&#10;&lt;li&gt;Role of mentors, community, and diverse language exposure.&lt;/li&gt;&#10;&lt;li&gt;Suggested languages: Python, Scheme, JavaScript, Alice, Squeak, Blockly (depending on learner profile).&lt;/li&gt;&#10;&lt;li&gt;“Ten years” is illustrative; the key is sustained, deliberate work.&lt;/li&gt;&#10;&lt;li&gt;Original essay: &lt;a href="https://norvig.com/21-days.html" target="_blank" rel="noreferrer"&gt;https://norvig.com/21-days.html&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Master’s Article Summaries</title><link>https://osmarpetry.dev/blog/masters-article-summaries/</link><pubDate>Wed, 04 Sep 2024 00:00:00 +0000</pubDate><guid>https://osmarpetry.dev/blog/masters-article-summaries/</guid><description>&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Replay attacks remain the easiest ASV spoofing vector; DL-RAD, autoencoders + Siamese networks, and CQCC features significantly improve detection.&lt;/li&gt;&#10;&lt;li&gt;ASVspoof 2021 pushes detection into real-world, noisy settings requiring domain generalisation.&lt;/li&gt;&#10;&lt;li&gt;Remote sensing (NEON/NIST) mirrors the need for multi-source data fusion—hyperspectral, LiDAR, RGB—for ecological insights.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="spied-articles"&gt;SPIED articles&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Ren et al. — Replay attack detection via loudspeaker distortion (DL-RAD).&lt;/li&gt;&#10;&lt;li&gt;ASVspoof 2021 — Spoofed/deepfake speech detection in the wild.&lt;/li&gt;&#10;&lt;li&gt;NIST DSE — Plant identification with airborne remote sensing.&lt;/li&gt;&#10;&lt;li&gt;Adiban et al. — Autoencoder + Siamese countermeasures on ASVspoof 2019.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="context"&gt;Context&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Consolidated notes from 4 September 2024 research sprint.&lt;/li&gt;&#10;&lt;li&gt;Focus: voice authentication security (spoofing/deepfake) and ecological remote sensing.&lt;/li&gt;&#10;&lt;li&gt;Supporting docs: ZIP archive with slides/text; online share for extended summaries.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="1-replay-attack-detection-based-on-distortion-by-loudspeaker"&gt;1. Replay Attack Detection Based on Distortion by Loudspeaker&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Source&lt;/strong&gt;: Ren et al., &lt;em&gt;Multimedia Tools and Applications&lt;/em&gt;, 2019. DOI: 10.1007/s11042-018-6834-3.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: DL-RAD detects replay attacks by analysing loudspeaker-induced distortions (low-frequency attenuation, harmonic energy).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Highlights&lt;/strong&gt;: Harmonic Energy Ratio, Low Spectral Variance. Achieves &amp;gt;98% detection accuracy.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Application&lt;/strong&gt;: voice authentication systems (mobile, banking). Focus on dependable feature extraction.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Reflection&lt;/strong&gt;: Consider how speaker hardware signatures can serve as anti-spoof signals.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="2-asvspoof-2021-deepfake-speech-detection-in-the-wild"&gt;2. ASVspoof 2021: Deepfake Speech Detection in the Wild&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Source&lt;/strong&gt;: ASVspoof 2021 challenge; TASLP 2023 paper (DOI: 10.1109/TASLP.2023.3285283).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: Evaluates spoofed/deepfake detection in noisy, uncontrolled environments; introduces large-scale dataset.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Highlights&lt;/strong&gt;: Variance across capture devices, environmental noise; combination of spectrogram analysis and deep models.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Application&lt;/strong&gt;: deploy robust detectors for real-world ASV systems, banking, call centers.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Reflection&lt;/strong&gt;: emphasises the need for adaptive models and domain generalization.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="3-nist-dse-plant-identification-with-remote-sensing"&gt;3. NIST DSE Plant Identification with Remote Sensing&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Source&lt;/strong&gt;: NIST publication on airborne remote sensing data challenge.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: Integrates hyperspectral, LiDAR, RGB data to segment tree crowns, align field data, classify species.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Highlights&lt;/strong&gt;: data fusion, scaling ecological monitoring, addressing heterogeneous resolutions.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Application&lt;/strong&gt;: environmental monitoring, conservation, precision agriculture.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Reflection&lt;/strong&gt;: parallels with multi-modal data integration in other domains (e.g., security sensors).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="4-replay-spoofing-countermeasure-using-autoencoder--siamese-networks-asvspoof-2019"&gt;4. Replay Spoofing Countermeasure Using Autoencoder &amp;amp; Siamese Networks (ASVspoof 2019)&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Source&lt;/strong&gt;: Adiban et al., &lt;em&gt;Computer Speech &amp;amp; Language&lt;/em&gt;, 2020. DOI: 10.1016/j.csl.2020.101105.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: Combines autoencoders (denoising) with Siamese networks (similarity) to detect replay attacks.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Highlights&lt;/strong&gt;: CQCC features, improved EER by 10.73%, t-DCF drop of 0.2344.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Application&lt;/strong&gt;: mobile authentication, payment systems, secure access.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Reflection&lt;/strong&gt;: underscores the power of hybrid feature + metric-learning approaches.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="supporting-docs"&gt;Supporting Docs&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Comparative notes across TXT/PPTX/Google Docs for detailed methodology.&lt;/li&gt;&#10;&lt;li&gt;Extended definitions (CQCC, EER, t-DCF) stored in local dictionary.&lt;/li&gt;&#10;&lt;li&gt;Presentations (March 25) outline challenge evolutions and future work.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="next-steps"&gt;Next steps&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Investigate combined defenses against multi-modal spoofing (synthetic + replay).&lt;/li&gt;&#10;&lt;li&gt;Explore edge deployment viability for real-time detection.&lt;/li&gt;&#10;&lt;li&gt;Compare ecological data pipelines with security workflows for cross-domain insights.&lt;/li&gt;&#10;&lt;/ul&gt;</description></item></channel></rss>