 #  Someone Else’s Code 

 

  ![Someone Else’s Code](https://cdn.richeyweb.com/images/articles/other-peoples-code/other-peoples-code.webp)    I’ve been a [developer](/blog/development/bug-reports-a-developers-best-friend-not-a-burden "Bug Reports: A Developer's Best Friend, Not a Burden") long enough to know the drill: you’ve got to keep [learning](/blog/development/fair-reviews-and-support "Fair Reviews and Support"), keep growing, or you’re toast. Sticking to my niches is comfortable, but dipping into new languages, techniques, and approaches? That’s where the real juice is. Lately, though, I’ve been spending a lot of time peering over the fence - reviewing someone else’s [code](/blog/development/the-humbling-art-of-free-software "The Humbling Art of Free Software"). Sometimes I’m hunting for [bugs](/blog/development/my-software-powers-joomlas-volunteer-portal "My Software Powers Joomla’s Volunteer Portal") to feel smug about; other times, I’m hoping to spot [brilliance](/blog/personal/pre-configured-client-extension-inspired-by-sap "Pre-Configured Client Extension Inspired by SAP") in someone else’s code that I can quietly admire (or borrow). Most of the time? I find over-engineered messes or half-baked ideas that make me mutter, “Not Invented Here,” under my breath. You know the story - they didn’t do it my way, so it’s wrong.

I’ll own it: I’ve got a bad case of NIH syndrome. It’s a programmer’s curse. I’d rather rewrite something from scratch than admit someone else’s code might - just might - be worth a second look. I've seen other developers say it about my code ([a very senior developer who called my code "hacky" but offered it might be worth taking a look at](https://joomla.stackexchange.com/questions/7427/updating-user-session-to-reflect-latest-access-level-changes)). But every once in a while, the universe decides I need a slice of humble pie, and today was one of those days.

## My Old Faithful Firewall Trick

Years back, I wrote a little [script](/blog/development/did-i-just-solve-joomla-bot-spam-with-hashcash "Did I Just Solve Joomla Bot Spam With HashCash?") to keep my server firewalls armed with an [up-to-date list of TOR exit nodes](https://check.torproject.org/exit-addresses). I don’t access my admin interfaces through TOR - nobody sane does - so why let those nodes even knock on the door? Grabbing the list, processing it into something usable, done. Barely an inconvenience. It’s been humming along ever since, and I’ve patted myself on the back for it more times than I care to admit. My way worked. I didn’t need someone else’s code to figure that out. End of story.

Or so I thought.

## The “Oh, Duh” Moment

This morning, I was poking through a paid Joomla GA4 extension - purely out of curiosity, mind you, not because I needed it. I went in with my usual NIH goggles on, ready to nitpick someone else’s code. Then I saw it: a setting to track TOR exit nodes. [Simple](/blog/development/canonical-chaos-round-four-victory-in-sight "Canonical Chaos, Round Four: Victory in Sight"), elegant, sitting there like it was no big deal. My first instinct? “Pfft, I wouldn’t have done it that way.” But then it hit me - wait, why haven’t I done it that way? I sat there, blinking at the screen, as the realization sank in. This wasn’t just a feature; it was a gap in my thinking - a gap someone else’s code exposed. A gap so obvious in hindsight I almost laughed.

Here I was, smugly blocking TOR traffic at the [firewall](/blog/hosting/varnish-and-joomla "Varnish and Joomla") level, while someone else’s code was out there quietly [tracking](/blog/development/windownamestore-a-privacy-friendly-volatile-storage-solution-for-web-developers "WindowNameStore: A Privacy-Friendly Volatile Storage Solution for Web Developers") it in [analytics](/blog/development/server-timing-for-geoip-data-delivery-to-achieve-gdpr-compliance "Server-Timing for GeoIP Data Delivery to Achieve GDPR Compliance"). Not just shutting the door, but keeping a log of who’s knocking. It’s not rocket science - it’s barely a hop from what I was already doing - but I’d never considered it. My NIH blinders had me so locked into “my way” that I missed the bigger picture. And yeah, that’s humbling. I didn’t invent this idea, and I didn’t even think of it, but someone else’s code shoved it right in my face, and now I can’t unsee it.

## Pie Eaten, Lesson Learned

So, what’s a dev to do when they stumble across a [paradigm shift](/blog/personal/the-game-were-all-playing-whether-we-know-it-or-not "The Game We're All Playing (Whether We Know It Or Not)") courtesy of someone else’s code? You eat the pie, tip your hat to the unnamed coder who sparked it, and get to [work](/blog/development/gdpr-is-getting-a-facelift-and-im-not-crying-over-it "GDPR is Getting a Facelift - And I’m Not Crying Over It"). I spent the day digging into my [System - Google Tag Manager](/software/joomla/plugins/system-google-tag-manager) [plugin](/blog/personal/joomla-community-magazine-mention "Joomla Community Magazine Mention!"), weaving in TOR exit node detection. It’s not a total rewrite - just a tweak, really - but it’s one that feels right. A little nod to growth, a little proof that even a stubborn NIH sufferer like me can learn from someone else’s code.

For those of you using the plugin, keep an eye out. This feature’s coming soon, and I think you’ll like what it adds. Nothing flashy, just a quiet, obvious-in-hindsight upgrade. Turns out, sometimes the best ideas aren’t mine - they’re out there, hiding in someone else’s code, waiting to teach me a thing or two.

### Update:

I slapped myself for thinking I should implement this directly into [System - Google Tag Manager](/blog/personal/the-joomla-i-knew-was-free "The Joomla I Knew was Free"), because it occurred to me that this would also be [useful](/blog/personal/joomla-numbers-dont-lie "Joomla Numbers Don’t Lie") to [System - AdminExile](/software/joomla/plugins/system-adminexile), and possibly other [extensions](/blog/development/generator-tag-claim-your-joomla-sites "Generator Tag: Claim Your Joomla Sites"). So I've rolled back the GTM modifications in favor of creating a new plugin named [Console - Tor Nodes](/software/joomla/plugins/console-tor-nodes). This plugin manages the exit node list, providing it to any extension that needs it.

### Update 2:

Both [System - AdminExile](/software/joomla/plugins/system-adminexile) and [System - Google Tag Manager](/software/joomla/plugins/system-google-tag-manager) have received the Tor tracking [updates](/joomla-techniques/richeyweb-joomla-1-5-extensions-are-no-longer-available "RicheyWeb Joomla 1.5 extensions are no longer available").

![Tor tracking in Analytics](https://cdn.richeyweb.com/images/articles/other-peoples-code/analytics-tor.webp)



- [      email ](mailto:?subject=Someone+Else%E2%80%99s+Code&body=https%3A%2F%2Fwww.richeyweb.com%2Fblog%2Fpersonal%2Fsomeone-elses-code)
- [      facebook ](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.richeyweb.com%2Fblog%2Fpersonal%2Fsomeone-elses-code)
- [      x-twitter ](https://twitter.com/intent/tweet?text=Someone+Else%E2%80%99s+Code%3A+https%3A%2F%2Fwww.richeyweb.com%2Fblog%2Fpersonal%2Fsomeone-elses-code)
- [      linkedin ](http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.richeyweb.com%2Fblog%2Fpersonal%2Fsomeone-elses-code&title=Someone+Else%E2%80%99s+Code&summary=I%E2%80%99ve+been+a+developer+long+enough+to+know+the+dril...)
- [      pinterest ](http://pinterest.com/pin/create/button/?url=https%3A%2F%2Fwww.richeyweb.com%2Fblog%2Fpersonal%2Fsomeone-elses-code&media=https%3A%2F%2Fwww.richeyweb.com%2Fimages%2Farticles%2Fother-peoples-code%2Fanalytics-tor.webp&description=Someone+Else%E2%80%99s+Code)
 


 

   [  Previous article: This Is How You Kill Joomla as a Platform   This Is How You Kill Joomla as a Platform ](/blog/personal/this-is-how-you-kill-joomla-as-a-platform) [  Next article: Joomla Numbers Don’t Lie  Joomla Numbers Don’t Lie  ](/blog/personal/joomla-numbers-dont-lie)  

##### We Value Your Privacy

 

We use cookies to enhance your experience and for traffic analysis. By continuing to visit this site you agree to our use of cookies.

[Privacy Policy](/privacy-policy)

 Details 

###### Google Tag Manager Items

- Ad Storage
- Ad User Data
- Ad Personalization
- Analytics Storage
- Functionality Storage
- Personalization Storage
- Security Storage
 
 

 

 

 

 

 Decline Accept
```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.richeyweb.com/#organization","name":"RicheyWeb","url":"https://www.richeyweb.com/","logo":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/logo/richeyweb.svg","contentUrl":"https://www.richeyweb.com/images/logo/richeyweb.svg","width":{"@type":"QuantitativeValue","value":38,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":38,"unitCode":"PX"},"@id":"https://www.richeyweb.com/#logo"},"image":{"@id":"https://www.richeyweb.com/#logo"},"sameAs":["https://x.com/ComRicheyweb","https://www.facebook.com/RicheyWebDev/","https://www.youtube.com/channel/UCxnVG8BwOvQRO7hVqNX7T2g","https://community.joomla.org/service-providers-directory/listings/115:richeyweb.html"],"description":"RicheyWeb is a custom software developer specializing in Joomla extensions.","ContactPoint":[{"@type":"ContactPoint","url":"https://www.richeyweb.com/contact-us","telephone":"903-873-8460","contactType":"Owner/Administrator","areaServed":["United States",{"@type":"Country","name":"United States","sameAs":["https://en.wikipedia.org/wiki/United_States","https://www.wikidata.org/wiki/Q30","https://g.co/kg/m/09c7w0"]},"European Union",{"@type":"AdministrativeArea","name":"European Union","sameAs":["https://en.wikipedia.org/wiki/European_Union","https://www.wikidata.org/wiki/Q458","https://g.co/kg/m/0_6t_z8"]},"United Kingdom",{"@type":"Country","name":"United Kingdom","sameAs":["https://en.wikipedia.org/wiki/United_Kingdom","https://www.wikidata.org/wiki/Q145","https://g.co/kg/m/07ssc"]},"Australia",{"@type":"Country","name":"Australia","sameAs":["https://en.wikipedia.org/wiki/Australia","https://www.wikidata.org/wiki/Q408","https://g.co/kg/m/0chghy"]},"Canada",{"@type":"Country","name":"Canada","sameAs":["https://en.wikipedia.org/wiki/Canada","https://www.wikidata.org/wiki/Q16","https://g.co/kg/m/0d060g"]},"Russia",{"@type":"Country","name":"Russia","sameAs":["https://en.wikipedia.org/wiki/Russia","https://www.wikidata.org/wiki/Q159","https://g.co/kg/m/06bnz"]},"China",{"@type":"Country","name":"China","sameAs":["https://en.wikipedia.org/wiki/China","https://www.wikidata.org/wiki/Q148","https://g.co/kg/m/0d05w3"]}],"availableLanguage":"en"},{"@type":"ContactPoint","url":"https://www.richeyweb.com/bugs","telephone":"903-873-8460","contactType":"Technical Support","areaServed":["United States",{"@type":"Country","name":"United States","sameAs":["https://en.wikipedia.org/wiki/United_States","https://www.wikidata.org/wiki/Q30","https://g.co/kg/m/09c7w0"]},"European Union",{"@type":"AdministrativeArea","name":"European Union","sameAs":["https://en.wikipedia.org/wiki/European_Union","https://www.wikidata.org/wiki/Q458","https://g.co/kg/m/0_6t_z8"]},"United Kingdom",{"@type":"Country","name":"United Kingdom","sameAs":["https://en.wikipedia.org/wiki/United_Kingdom","https://www.wikidata.org/wiki/Q145","https://g.co/kg/m/07ssc"]},"Australia",{"@type":"Country","name":"Australia","sameAs":["https://en.wikipedia.org/wiki/Australia","https://www.wikidata.org/wiki/Q408","https://g.co/kg/m/0chghy"]},"Canada",{"@type":"Country","name":"Canada","sameAs":["https://en.wikipedia.org/wiki/Canada","https://www.wikidata.org/wiki/Q16","https://g.co/kg/m/0d060g"]},"Russia",{"@type":"Country","name":"Russia","sameAs":["https://en.wikipedia.org/wiki/Russia","https://www.wikidata.org/wiki/Q159","https://g.co/kg/m/06bnz"]},"China",{"@type":"Country","name":"China","sameAs":["https://en.wikipedia.org/wiki/China","https://www.wikidata.org/wiki/Q148","https://g.co/kg/m/0d05w3"]}],"availableLanguage":"en"}],"knowsAbout":["Computer programming",{"@type":"Thing","name":"Computer programming","sameAs":["https://en.wikipedia.org/wiki/Computer_programming","https://www.wikidata.org/wiki/Q80006","https://g.co/kg/m/01mf_"]},"PHP",{"@type":"Thing","name":"PHP","sameAs":["https://en.wikipedia.org/wiki/PHP","https://www.wikidata.org/wiki/Q59","https://g.co/kg/m/060kv"]},"JavaScript",{"@type":"Thing","name":"JavaScript","sameAs":["https://en.wikipedia.org/wiki/JavaScript","https://www.wikidata.org/wiki/Q2005","https://g.co/kg/m/02p97"]},"arduino","Computer forensics",{"@type":"Thing","name":"Computer forensics","sameAs":["https://en.wikipedia.org/wiki/Computer_forensics","https://www.wikidata.org/wiki/Q878553","https://g.co/kg/m/02wxbd"]},"White hat",{"@type":"Thing","name":"White hat","sameAs":["https://en.wikipedia.org/wiki/White_hat_(computer_security)","https://www.wikidata.org/wiki/Q7995625","https://g.co/kg/m/03ns_5"]},"Search engine optimization",{"@type":"Thing","name":"Search engine optimization","sameAs":["https://en.wikipedia.org/wiki/Search_engine_optimization","https://www.wikidata.org/wiki/Q180711","https://g.co/kg/m/019qb_"]},"Search engine marketing",{"@type":"Thing","name":"Search engine marketing","sameAs":["https://en.wikipedia.org/wiki/Search_engine_marketing","https://www.wikidata.org/wiki/Q846132","https://g.co/kg/m/06mw8r"]},"Digital marketing",{"@type":"Thing","name":"Digital marketing","sameAs":["https://en.wikipedia.org/wiki/Digital_marketing","https://www.wikidata.org/wiki/Q1323528","https://g.co/kg/g/122hcnps"]},"Web hosting service",{"@type":"Thing","name":"Web hosting service","sameAs":["https://en.wikipedia.org/wiki/Web_hosting_service","https://www.wikidata.org/wiki/Q5892272","https://g.co/kg/m/014pz4"]},"Email hosting service",{"@type":"Thing","name":"Email hosting service","sameAs":["https://en.wikipedia.org/wiki/Email_hosting_service","https://www.wikidata.org/wiki/Q5368818","https://g.co/kg/m/09w60m"]},"Internet hosting service",{"@type":"Thing","name":"Internet hosting service","sameAs":["https://en.wikipedia.org/wiki/Internet_hosting_service","https://www.wikidata.org/wiki/Q1210425","https://g.co/kg/m/09w5yw"]},"Virtual hosting",{"@type":"Thing","name":"Virtual hosting","sameAs":["https://en.wikipedia.org/wiki/Virtual_hosting","https://www.wikidata.org/wiki/Q588365","https://g.co/kg/m/024mvh"]},"Web performance",{"@type":"Thing","name":"Web performance","sameAs":["https://en.wikipedia.org/wiki/Web_performance","https://www.wikidata.org/wiki/Q7978612","https://g.co/kg/m/0gfj3f1"]},"Web content management system",{"@type":"Thing","name":"Web content management system","sameAs":["https://en.wikipedia.org/wiki/Web_content_management_system","https://www.wikidata.org/wiki/Q45211","https://g.co/kg/m/0615s2"]},"Content management system",{"@type":"Thing","name":"Content management system","sameAs":["https://en.wikipedia.org/wiki/Content_management_system","https://www.wikidata.org/wiki/Q131093","https://g.co/kg/m/0k23c"]},"General Data Protection Regulation",{"@type":"Thing","name":"General Data Protection Regulation","sameAs":["https://en.wikipedia.org/wiki/General_Data_Protection_Regulation","https://www.wikidata.org/wiki/Q1172506","https://g.co/kg/m/0pk_7xs"]},"SERP",{"@type":"Thing","name":"SERP","sameAs":["https://en.wikipedia.org/wiki/SERP","https://www.wikidata.org/wiki/Q2205811","https://g.co/kg/g/11c5szp7kc"]},"Artificial intelligence",{"@type":"Thing","name":"Artificial intelligence","sameAs":["https://en.wikipedia.org/wiki/Artificial_intelligence","https://www.wikidata.org/wiki/Q11660","https://g.co/kg/m/0mkz"]},"Prompt engineering",{"@type":"Thing","name":"Prompt engineering","sameAs":["https://en.wikipedia.org/wiki/Prompt_engineering","https://www.wikidata.org/wiki/Q108941486","https://g.co/kg/g/11p6kpgt_n"]},"E-learning",{"@type":"Thing","name":"E-learning","sameAs":["https://en.wikipedia.org/wiki/E-learning_(theory)","https://www.wikidata.org/wiki/Q182250","https://g.co/kg/g/122czm1f"]},"Sharable Content Object Reference Model",{"@type":"Thing","name":"Sharable Content Object Reference Model","sameAs":["https://en.wikipedia.org/wiki/Sharable_Content_Object_Reference_Model","https://www.wikidata.org/wiki/Q827811","https://g.co/kg/m/06_40"]},"Experience API",{"@type":"Thing","name":"Experience API","sameAs":["https://en.wikipedia.org/wiki/Experience_API","https://www.wikidata.org/wiki/Q7807728","https://g.co/kg/g/1yw9ktxr8"]},"Joomla",{"@type":"Thing","name":"Joomla","sameAs":["https://en.wikipedia.org/wiki/Joomla","https://www.wikidata.org/wiki/Q13167","https://g.co/kg/m/07qb81"]},"Nginx",{"@type":"Thing","name":"Nginx","sameAs":["https://en.wikipedia.org/wiki/Nginx","https://www.wikidata.org/wiki/Q306144","https://g.co/kg/m/02qft91"]},"MySQL",{"@type":"Thing","name":"MySQL","sameAs":["https://en.wikipedia.org/wiki/MySQL","https://www.wikidata.org/wiki/Q850","https://g.co/kg/m/04y3k"]}],"areaServed":["United States",{"@type":"Country","name":"United States","sameAs":["https://en.wikipedia.org/wiki/United_States","https://www.wikidata.org/wiki/Q30","https://g.co/kg/m/09c7w0"]},"European Union",{"@type":"AdministrativeArea","name":"European Union","sameAs":["https://en.wikipedia.org/wiki/European_Union","https://www.wikidata.org/wiki/Q458","https://g.co/kg/m/0_6t_z8"]},"United Kingdom",{"@type":"Country","name":"United Kingdom","sameAs":["https://en.wikipedia.org/wiki/United_Kingdom","https://www.wikidata.org/wiki/Q145","https://g.co/kg/m/07ssc"]},"Australia",{"@type":"Country","name":"Australia","sameAs":["https://en.wikipedia.org/wiki/Australia","https://www.wikidata.org/wiki/Q408","https://g.co/kg/m/0chghy"]},"Canada",{"@type":"Country","name":"Canada","sameAs":["https://en.wikipedia.org/wiki/Canada","https://www.wikidata.org/wiki/Q16","https://g.co/kg/m/0d060g"]},"Russia",{"@type":"Country","name":"Russia","sameAs":["https://en.wikipedia.org/wiki/Russia","https://www.wikidata.org/wiki/Q159","https://g.co/kg/m/06bnz"]},"China",{"@type":"Country","name":"China","sameAs":["https://en.wikipedia.org/wiki/China","https://www.wikidata.org/wiki/Q148","https://g.co/kg/m/0d05w3"]}],"memberOf":["Mensa International",{"@type":"Organization","name":"Mensa International","sameAs":["https://en.wikipedia.org/wiki/Mensa_International","https://www.wikidata.org/wiki/Q184194","https://g.co/kg/m/0140pf"]},"National Rifle Association",{"@type":"Organization","name":"National Rifle Association","sameAs":["https://en.wikipedia.org/wiki/National_Rifle_Association","https://www.wikidata.org/wiki/Q863259","https://g.co/kg/m/0j6f9"]},"CompTIA",{"@type":"Organization","name":"CompTIA","sameAs":["https://en.wikipedia.org/wiki/CompTIA","https://www.wikidata.org/wiki/Q597534","https://g.co/kg/m/040shq"]},"ISFCE LLC",{"@type":"Organization","name":"ISFCE LLC","sameAs":["https://isfce.com","https://g.co/kg/g/11wxm5r0rg"]}],"hasCredential":[{"@type":"EducationalOccupationalCredential","name":"Joomla 3 Certified Administrator","credentialCategory":"Certification","description":"Administrator Exam is the first available Joomla! certification exam","recognizedBy":{"@type":"Organization","name":"Open Source Matters, Inc.","sameAs":["https://en.wikipedia.org/wiki/Open_Source_Matters,_Inc.","https://g.co/kg/g/11f00wvjhz"]},"url":"https://certification.joomla.org/certified-user-directory/michael-richey","about":["Content management system",{"@type":"Thing","name":"Content management system","sameAs":["https://en.wikipedia.org/wiki/Content_management_system","https://www.wikidata.org/wiki/Q131093","https://g.co/kg/m/0k23c"]},"Web content management system",{"@type":"Thing","name":"Web content management system","sameAs":["https://en.wikipedia.org/wiki/Web_content_management_system","https://www.wikidata.org/wiki/Q45211","https://g.co/kg/m/0615s2"]},"Joomla",{"@type":"Thing","name":"Joomla","sameAs":["https://en.wikipedia.org/wiki/Joomla","https://www.wikidata.org/wiki/Q13167","https://g.co/kg/m/07qb81"]}],"educationalLevel":"expert","image":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/contact/badge.webp","contentUrl":"https://www.richeyweb.com/images/contact/badge.webp","width":{"@type":"QuantitativeValue","value":300,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":86,"unitCode":"PX"},"caption":"Joomla 3 Certified Administrator"}},{"@type":"EducationalOccupationalCredential","name":"Certified Computer Examiner","credentialCategory":"Certification","description":"Internationally recognized computer forensics certifiecation","recognizedBy":{"@type":"Organization","name":"ISFCE LLC","sameAs":["https://en.wikipedia.org/wiki/ISFCE_LLC","https://g.co/kg/g/11wxm5r0rg"]},"url":"https://isfce.com/","about":["Digital forensics",{"@type":"Thing","name":"Digital forensics","sameAs":["https://en.wikipedia.org/wiki/Digital_forensics","https://www.wikidata.org/wiki/Q3246940","https://g.co/kg/m/0cnxzfx"]},"Computer forensics",{"@type":"Thing","name":"Computer forensics","sameAs":["https://en.wikipedia.org/wiki/Computer_forensics","https://www.wikidata.org/wiki/Q878553","https://g.co/kg/m/02wxbd"]},"Mobile device forensics",{"@type":"Thing","name":"Mobile device forensics","sameAs":["https://en.wikipedia.org/wiki/Mobile_device_forensics","https://www.wikidata.org/wiki/Q6887097","https://g.co/kg/m/06zp3tp"]},"Network forensics",{"@type":"Thing","name":"Network forensics","sameAs":["https://en.wikipedia.org/wiki/Network_forensics","https://www.wikidata.org/wiki/Q7001032","https://g.co/kg/m/05pb280"]},"Database forensics",{"@type":"Thing","name":"Database forensics","sameAs":["https://en.wikipedia.org/wiki/Database_forensics","https://www.wikidata.org/wiki/Q5227405","https://g.co/kg/m/0cgqsy"]}],"educationalLevel":"expert","image":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/contact/isfce-cce.webp","contentUrl":"https://www.richeyweb.com/images/contact/isfce-cce.webp","width":{"@type":"QuantitativeValue","value":150,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":150,"unitCode":"PX"},"caption":"Certified Computer Examiner"}}],"hasOfferCatalog":{"@type":"OfferCatalog","name":"Web Services","itemListElement":[{"@type":"Offer","itemOffered":{"@type":"Service","name":"Hosting"}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Development"}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Search Engine Optimization"}}]}},{"@type":"WebSite","@id":"https://www.richeyweb.com/#website","url":"https://www.richeyweb.com/","name":"RicheyWeb","publisher":{"@id":"https://www.richeyweb.com/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.richeyweb.com/search?q={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string","valueMaxLength":256,"valueMinLength":2,"valuePattern":"^[A-Za-z0-9\\s]+$"}},"creator":{"@id":"https://www.richeyweb.com/#organization"},"copyrightHolder":{"@id":"https://www.richeyweb.com/#organization"}},{"@type":"WebPage","@id":"https://www.richeyweb.com/blog/personal/someone-elses-code#webpage","url":"https://www.richeyweb.com/blog/personal/someone-elses-code","name":"Someone Else’s Code","description":"Reflecting on NIH syndrome and a paradigm shift from someone else’s code: adding TOR exit node tracking to my GTM plugin after a humbling discovery.","isPartOf":{"@id":"https://www.richeyweb.com/#website"},"about":{"@id":"https://www.richeyweb.com/#organization"},"inLanguage":"en-GB"},{"@type":"Article","image":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/articles/other-peoples-code/other-peoples-code.webp","contentUrl":"https://www.richeyweb.com/images/articles/other-peoples-code/other-peoples-code.webp","width":{"@type":"QuantitativeValue","value":598,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":336,"unitCode":"PX"},"caption":"Someone Else’s Code","representativeOfPage":true},"headline":"Someone Else’s Code","description":"Reflecting on NIH syndrome and a paradigm shift from someone else’s code: adding TOR exit node tracking to my GTM plugin after a humbling discovery.","author":{"@type":"Person","name":"Michael Richey","url":"https://www.richeyweb.com/contact-us","@id":"https://www.richeyweb.com/contact-us#person"},"datePublished":"2025-04-01T00:00:00+00:00","dateModified":"2026-02-23T00:00:00+00:00","about":["Joomla",{"@type":"Thing","name":"Joomla","sameAs":["https://en.wikipedia.org/wiki/Joomla","https://www.wikidata.org/wiki/Q13167","https://g.co/kg/m/07qb81"]},"Content management system",{"@type":"Thing","name":"Content management system","sameAs":["https://en.wikipedia.org/wiki/Content_management_system","https://www.wikidata.org/wiki/Q131093","https://g.co/kg/m/0k23c"]},"Tor",{"@type":"Thing","name":"Tor","sameAs":["https://en.wikipedia.org/wiki/Tor_(network)","https://www.wikidata.org/wiki/Q224457","https://g.co/kg/m/04n38z"]},"Computer network",{"@type":"Thing","name":"Computer network","sameAs":["https://en.wikipedia.org/wiki/Computer_network","https://www.wikidata.org/wiki/Q1301371","https://g.co/kg/m/025szts"]},"Google Analytics",{"@type":"WebSite","name":"Google Analytics","sameAs":["https://en.wikipedia.org/wiki/Google_Analytics","https://www.wikidata.org/wiki/Q220577","https://g.co/kg/m/08w9_f"]},"Intrusion detection system",{"@type":"Thing","name":"Intrusion detection system","sameAs":["https://en.wikipedia.org/wiki/Intrusion_detection_system","https://www.wikidata.org/wiki/Q745881","https://g.co/kg/m/0svkb"]}],"mentions":["web development (field)","Console - Tor Nodes",{"@type":"Thing","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#softwareapplication","name":"Console - Tor Nodes","sameAs":["https://extensions.joomla.org/extension/access-a-security/console-tor-nodes/","https://en.wikipedia.org/wiki/Console_-_Tor_Nodes"]},"Firewall",{"@type":"Thing","name":"Firewall","sameAs":["https://en.wikipedia.org/wiki/Firewall_(computing)","https://www.wikidata.org/wiki/Q8351206","https://g.co/kg/m/04wrr6"]},"Google Analytics",{"@type":"Thing","name":"Google Analytics","sameAs":["https://en.wikipedia.org/wiki/Google_Analytics","https://www.wikidata.org/wiki/Q220577","https://g.co/kg/m/08w9_f"]},"Information privacy",{"@type":"Thing","name":"Information privacy","sameAs":["https://en.wikipedia.org/wiki/Information_privacy","https://www.wikidata.org/wiki/Q456632","https://g.co/kg/m/01jgj_"]},"System - Google Tag Manager",{"@type":"Thing","@id":"https://www.richeyweb.com/software/joomla/plugins/system-google-tag-manager/#softwareapplication","name":"System - Google Tag Manager","sameAs":["https://extensions.joomla.org/extension/site-management/analytics/system-google-tag-manager/","https://en.wikipedia.org/wiki/System_-_Google_Tag_Manager"]},"System - AdminExile",{"@type":"Thing","@id":"https://www.richeyweb.com/software/joomla/plugins/system-adminexile/#softwareapplication","name":"System - AdminExile","sameAs":["https://extensions.joomla.org/extension/access-a-security/site-security/adminexile/","https://en.wikipedia.org/wiki/System_-_AdminExile"]},"Code review",{"@type":"Thing","name":"Code review","sameAs":["https://en.wikipedia.org/wiki/Code_review","https://www.wikidata.org/wiki/Q1342704","https://g.co/kg/m/02lwxs"]},"Not invented here",{"@type":"Thing","name":"Not invented here","sameAs":["https://en.wikipedia.org/wiki/Not_invented_here","https://www.wikidata.org/wiki/Q1782368","https://g.co/kg/m/0gc2h"]},"Humility",{"@type":"Thing","name":"Humility","sameAs":["https://en.wikipedia.org/wiki/Humility","https://www.wikidata.org/wiki/Q1186677","https://g.co/kg/m/01hqyb"]}],"@id":"https://www.richeyweb.com/blog/personal/someone-elses-code#article","isPartOf":{"@id":"https://www.richeyweb.com/blog/personal/someone-elses-code#webpage"},"publisher":{"@id":"https://www.richeyweb.com/#organization"},"keywords":"developer, learning, growing, code, languages, techniques, approaches, bugs, brilliance, over-engineered, messes, half-baked ideas, NIH syndrome, rewrite, humble pie, firewall, TOR exit nodes, script, admin interfaces, inconvience, working, feature, analytics, tracking, logic, insight, bigger picture, paradigm shift, coder, lesson, growth, upgrade, ideas, extensions, plugin, System - Google Tag Manager, System - AdminExile, Console - Tor Nodes, tracking updates, curiosity, setting, simple, elegant, unnoticed, niptick, realization, hindsight, blocking, log, knocking, rocket science, hop, way, missed, picture, unsee, ate the pie, tip your hat, work, tweak, nod to growth, stubborn, unsee it, hiding, teach, upgrade, best ideas, out there, waiting, implement, directly, useful, other extensions, rolled back, creating, manages, providing, needs it, updates, both, received, both","articleSection":"Personal","url":"https://www.richeyweb.com/blog/personal/someone-elses-code"}]}
```
