Category: Programming Quickies
Back in they day, I ran a Tumblr blog named Magento Quickies where I’d post shorter, less in-depth posts about my travels through Magento’s source code. This Programming Quickies categories is the successor to that Tumblr blog. You’ll find all the old Magento Quickies content here, as well as new short posts about programming in general.
This section has its own RSS feed, the old Magento Quickies feed should should be redirecting, and we’re cross posting notifications for new posts over to magento-quickies.tumblr.com. In other words, you shouldn’t need to know any of this, but the duct tape that keeps the internet held together isn’t aging well, so your mileage may vary.
Below you'll find all the Programming Quickies articles on the site,
followed by a chronological listing of the same.
You may also browse the
7
series directly via the following links.
Pestle, Four Steps to Async Iterators, Checking in on OpenMage and Magento in 2020, Text Encoding and Unicode, Shopware's Development Environment, A Sentimental Gen-X Programmer Culls his Tech Books, and, Containers, Containers, Containers.
Magento 2, like its forbearers, starts to fall apart when you push larger amounts of data through its systems. One example of this is Configurable Products. Configurable Products allow users to pick options for a product (size, color, etc.), and have each configuration mapped onto a single Simple Product entity. In theory, there’s [...]
astorm
I don’t know much about its provenance, but this small python program is just the thing if you’re trying to export a large Excel spreadsheet to a far more usable/malleable CSV file. Particularly useful for folks with Macs, since Numbers, Libre Office, and Open Office don’t handle large files well (Numbers and Open [...]
astorm
It’s been long enough and I’m now old enough that I can’t quite remember when I started following Simon Willison’s work. He’s the co-creator of Django and one of those early online programming voices that were invaluable if you were cobbling together how all this stuff worked without direct access to the [...]
astorm
When it comes to retro gaming I’m mostly a dillitante, and I’m mostly chasing nostalgia. That probably explains why I’ve only just discovered this fantastic four year old series from a modern game critic (LIne Hollis) playing through the origial Sierra On-Line lineup. I mention this here, on a programming blog, because [...]
astorm
One of the less fun parts about working in a C code base is dealing with the toxic machismo that’s still present in the wider culture. The people I work with are (fortunatly) great, but when I’m wading through the internet for answers I come across things like this time and time again. The top answer is a rant that spends [...]
astorm
Vinai Koop has opened his Mage2.tv service/channel as a free public beta. Right now there’s over an hour of free Magento 2 tutorials, and a roapmap for what content’s coming next. It’s also an interesting example of a single person’s vision for a video delivery system. These sort of systems are common, but are [...]
astorm
While there were a number of extensions for Magento 1 that let you change the IDs generated and printed for Magento’s orders, invoices, shipments, and credit memos, I haven’t seen one emerge for. This post from Classy Llama jumps down into M2’s database table and tries to figure out where Magento 2 generates these IDs.
astorm
The latest version of Google Chrome (Chrome 63) will redirect any domain that ends in .dev and .foo to an https URL automatically. It sounds like Google felt they could do this since they bought the entire .dev and .foo global top-level domains (gTLD). I joke complained about this on Twitter before, but it seems like my Chrome finally [...]
astorm
Two of the biggest mind shifts I’ve had to make in coming back to C programming have been strings and variable scope/lifetime. This Stack Overflow question is a nice encasulation of both. First off — strings aren’t a first class type in C. They’re just a char array of individual characters, with a NULL character as the final [...]
astorm
In Magento 1, it was pretty common to write a bit of layout update XML that looked like the following. <reference name="head"> <action method="setLabel"> <label>skin_js</label> </action> </reference> This XML translates roughly into the following PHP pseudo code $block = $layout->getBlock('head'); [...]
astorm
One of the bigger changes to Magento 2’s layout system is how a end-user-programmer uses layout handles. In Magento 1, layout handles were top level configuration nodes in a set of layout update xml files <handle_name> <!-- layout update xml nodes --> </handle_name> In Magento 2, layout handles are individual XML [...]
astorm
Magento 2 introduced a new node type to its Layout XML DSL — the <arguments/> and <argument/> node. #File: vendor/magento/module-shipping/view/frontend/layout/sales_guest_view.xml <referenceBlock name="sales.order.view"> <block class="Magento\Shipping\Block\Tracking\Link" name="tracking-info-link" [...]
astorm
This in an interesting Magento layout technique that came my way via Vinai Kopp (of Mage2.tv fame). Magento 2’s automatic constructor dependency injection system presents a problem for class trees with multiple levels of inheritance. First, programmers end up needing to call parent constructors with the right arguments, and in the [...]
astorm
Debugging cron jobs is one of my least favorite activities. This clever tip over on Stack Overflow shows how to use cron and the env generate the enviornmental variable your system’s cron runs under, which in turn will let you pretend to be the cron job. (This won’t help you if you’re using a PHP system that layers its [...]
astorm
One long time resident of my ~/bin folder is lns lns — a friendly program for making symbolic links For whatever reason I’ve never been able to get the argument order to ln -s memorized. The lns perl script (which has always run out of the box on system provided perl without issue) make it so I never need to. Whether you lns [...]
astorm
Speaking of composer and sematnic versioning, here’s a neat web page that will List all the avaiable versions of a particular packagist package Highlight which versions composer will pick when you use a particular set of SemVer characters Useful when you’re chasing down composer dependencies — although this project (as [...]
astorm
I checked some code into pestle (my PHP command-line framework and Magento 2 code generation tool) for the first time in a bit, and was greeted with a broken travis build (for PHP 5.6). Digging into the problem, I saw a sight that’s become increasingly familiar to PHP developers in recent years $ composer install Loading composer [...]
astorm
While Laravel’s a fantastic framework, I don’t think anyone would ascribe Plays Well with Others as a core tennant of the project. i.e. Using individual Laravel components like the Eloquent ORM in your own projects is never a straight forward affair. They’re just not designed for that use case. This makes projects like [...]
astorm
On of my work hobbies is finding a way to replace Dominant Accounting Software package in my life, and because I’m a programmer (and a little weird) that means writing one off applications to repace the functionality of Dominant Accounting Software package. This is why today’s links are the wikipedia PostScript page and [...]
astorm
GNU Make is the original build system and, strange modern outliers asside, is mostly used (and useful) in C or C++ based projects. It’s syntax reflects 40+ years of — organic? — growth, and I was happy to discover this free O’Reilly book that grounds you in the fundamental concepts.
astorm