The VP Geek Speaks
- Home /
- The VP Geek Speaks
The Number 1 Cause of the Not Invented Here Syndrome
One of the quickest ways to get a new internal tool bootstrapped is to utilize an existing design, making slight adjustments to ensure the design matches the requirements of the current project. Instead of using another internal tool as the basis for the new design, I used a design that was purchased specifically for this project.
This particular design was unique in that there were multiple working examples using AJAX, pure HTML, and AngularJS. While it was nice having supposed working examples, when you start to look at the readme file for how to get this functionality working on your own hosting setup, thats when the niceties disappear. Specifically when lookng at the readme file for AngularJS, it effectively says: “Because this is a well-known JavaScript framework, we are not including any documentation for how it works or how to get started with our design”. Granted, the inner workings of AngularJS need not be covered in the readme, but a simple walkthrough of what to expect this design to do would make things much more user/developer friendly.
Firefox 36 Has A Massive Memory Leak
While looking through our TrackJS logs the other day, I ran across a peculiar error message coming from Firefox 36 on Windows 7. The error message was simply out of memory. It seemed that the pesky local storage issue had reappeared mysteriously. However, with a quick check of the codebase, I verified that no one had accidentally reverted those fixes.
With that possible cause ruled out, I turned to a developer’s best friend, Google, for solutions. Well, it appears that Firefox 36.0.0 has quite the memory leak issue. When looking into the detail of the issue, it became highly probably that this issue was the cause of the errors in our monitoring tools. Apparently, this bug rears its ugly head when you are doing 2D rendering on your page, and the site uses a 2D charting library to present information.
Authenticate Magento Admin Users
Magento’s admin interface allows you to do the vast majority of everything that you would ever want to do to manage your eCommerce website. However, there are times when the rigidity of the framework makes it difficult for developers to appropriately customize a layout.
One of the things that we have done to combat these limitations is to create a new administration section of the website specifically for the use of developers and other advanced administrators of the site. In order to do this as seamlessly as possible, one of the requirements was to enable current admin users to use the same authenticated session across the standard Magento admin and our new custom admin systems.
The Top Sign You Hired The Wrong Developer
I have been a part of the interview process at a few different companies now, and there is one thing that I have seen correlate completely with how useless a developer hire is. If the hiring manager ever brings me a resume that mentions how many conferences a candidate attends or gives talks at, I will immediately rule that candidate out for the purposes of the development position I am interviewing for.
The Amazing Magento Configuration
At the heart of every piece of PHP in Magento is the XML configuration files that tell core Magento code where to find functions and what to do with them. It seems to be the biggest hurdle that most developers face when they begin developing with Magento.
When going through a bit of code recently, I discovered something in the configuration that looks like it should have never worked, but amazingly enough, has worked without issue the entire time it has been in place. Let’s see if you spot the bit of strangeness.
Don't Be a Dunce, Save Your Orders
There are some gotchas that you think that you will always see coming. One such gotcha is the need to save an object to the datastore to persist any changes you may have made to that object.
While it seems like a reasonable concept at the base level, there are times that the need to save an object completely escapes your mind. It seems that for many non-developers, this occurs when they have been working a long time on a file, typically a Microsoft Word document, shortly before their computer blue screens, losing all of their work.
Magento's preDispatch Observer
One of the decisions that always seems to arise when adding functionality to a Magento website is what the best strategy is for doing so. Should you override the controller or function, edit it in place, or use an observer to listen for a particular event to occur.
It just so happens that if you want to make sure that you have some sort of validation logic that runs before a particular controller action is executed, the easiest way to implement it is via a preDispatch observer. The other aspect of preDispatch controllers is that they can be configured to listen only for preDispatch events from a particular module, or they can listen for preDispatch events from every module, allowing you to add some password expiration policies to the adminhtml side of your website, for example.
Avoid 'Persistent storage maximum size reached' in Firefox
One of the nice tools out there for tracking down issues that your website’s visitors are having is TrackJS. We started noticing the other day that we were getting overwhelmed by errors with the text Persistent storage maximum size reached for our Magento site. When we looked further into the issue, it quickly became obvious that all of the errors originated from a single user that was running Firefox.
It quickly became obvious that there was a single user that had exhausted their localStorage resources on their browser, but why was it only one user? Well, as it turns out, there is one browser that allows the user to set the amount of space that localStorage can use, and that one browser is Firefox.
Stop Wanting and Start Choosing
I am used to hearing people use phrases like “I want to be able to do X thing” or “I want to have X position at my company” when people are talking in generalities about their goals. I tend to do it often as well, especially when using “self-talk” to attempt to work on internal goals and desires. However, when reading a book from Paul Tough, How Children Succeed, one of the quotes that he references from Jonathan Rowson, a Scottish chess grand master who had written about the importance of emotion and psychology in chess success.
Authorize.Net Directpost is Overly Complex
One of the necessary evils that every ecommerce website that wants to accept credit card transactions must deal with is some sort of payment processing company. It just so happens that Authorize.net is one of the largest payment processors around, and they allow you to choose from a few different ways to integrate their payment processing functionality into your website. One of their ways is via DirectPost, which allows an eCommerce website to process a credit card transaction without the credit card information ever being sent through the website’s servers.
Categories
Tags
- 100pounds
- 2020
- Acp
- Adblock-Plus
- Adoption
- Agentic
- Agents
- Agile
- Ai
- Ai-Agents
- Amazon
- Apache
- Apple
- Architecture
- Authorize-Net
- Automation
- Azure
- Bing
- Bingbot
- Blog
- Book-Reviews
- Books
- Burnout
- Business-Tools
- Cache
- Career
- Chatgpt
- Chrome
- Cicd
- Claude
- Cloudflare
- Code-Quality
- Code-Review
- Codex
- Coding
- Coding-Agents
- Compass
- Conversion
- Copilot
- Css
- Culture
- Cursor
- Cve
- Design-Patterns
- Developer-Experience
- Developer-Tools
- Developer-Velocity
- Development
- Disqus
- Docker
- Documentation
- Enterprise
- Fine-Tuning
- Firefox
- Future-of-Work
- Gemini
- Genesis-Framework
- Getting-Started
- Ghost-Tag
- Github
- Github-Copilot
- Githubpages
- Google-Slides
- Google-Workspace
- Governance
- Helper
- Hiring
- How-Not-To
- How-To
- Html
- Hugo
- Infrastructure
- Integration
- Internet-Explorer
- Interviews
- Iphone-6
- Javascript
- Jekyll
- Jetbrains
- Jquery
- Junior-Developers
- Knowledge-Management
- Laravel
- Leadership
- Legal
- Lessons-Learned
- Local-First
- MacOS
- Magento
- Magento 2
- Magento2
- Management
- Mcp
- Meetings
- Mental-Health
- Mentorship
- Metr
- Metrics
- Microsoft
- Moltbot
- Multi-Agent
- Mysql
- Netlify
- Nginx
- Nodejs
- Open-Source
- Openai
- Openclaw
- Orchestration
- OSX
- Performance
- Personal
- Php
- Policy
- Presentations
- Process
- Productivity
- Programming
- Prompt-Injection
- Pull-Requests
- Python
- Quality
- Rant
- Remote-Work
- Research
- Responsive-Web-Design
- Retrospective
- Roi
- Safari
- Sales
- Scrum
- Security
- Senior-Engineers
- Series
- Sitecatalyst
- Sota
- Sql
- Sql-Server
- Tasks
- Teams
- Technical-Debt
- Testing
- Tier-Pricing
- Tips
- Tmobile
- Tools
- Trust
- Unittest
- Ux
- Varnish
- Verification
- Vibe-Coding
- Visual-Studio
- Web-Development
- Windows-7
- Windows-Vista
- Woocommerce
- Wordpress
- Workflow
- Workflows
- Xml