learning
May 2, 2024
PHP to Rust via Copilot
I set out to build a small project in Rust. I wanted to scrape a website and parse a JSON payload. I ran into issues quickly as this was my first real project build it Rust. I thought this might be a great use case to see if GitHub Copilot could help me convert some PHP code I had to Rust. Below is the PHP code I wanted to convert to Rust. Savvy PHP developers will quickly spot this is a...
ReadOctober 2, 2023
Compiling Python 3.12 from Source Tarball on Linux
Debian/Ubuntu
Red Hat or Fedora:
Download "Gzipped source tarball" the from Python.org, and it extract it locally.
Check how many CPUs you have to enable faster compilation:
In this example we have 8 CPUs on the github-cicd
server. We want to use all our cores to compile so it runs faster. If you run into issues you can try using 1 or 2 fewer CPUS than reported by...
July 10, 2023
HTML Form Processing with PHP - php[architect] Magazine August 2014
Forms are everywhere. Every application that interacts with a user uses forms in some manner. Whether you are logging into a website, filling out a survey, or signing up for a service you are interacting with a form that someone had to create in order to get some info from you. You have a PHP application that needs input. How do you safely, securely, and reliably obtain that input or other...
ReadJuly 5, 2023
The Workshop: Local Dev with Lando - php[architect] Magazine November 2022
This month we’re going to visit a topic that is near and dear to my heart: local development environments. I’ve been maintaining Laravel Homestead since late 2016 and have been a longtime tinkerer of just about every local development tool you’ve ever heard of and they all have their strengths and weaknesses. Lando is just about the only tool I haven’t had a chance to dive into so join...
ReadNovember 28, 2022
The Workshop: Accept testing with Codeception - php[architect] Magazine April 2022
Acceptance testing is a method of verifying our application behaves exactly as expected, often utilizing a web browser. We will write test scenarios that will be acted out by a user interacting with our application such as logging in or performing a specific task. Acceptance tests are slower than unit tests because they rely on a web browser. What we lose in the speed of running acceptance...
learning phparch writing testing
ReadMay 13, 2022
The Workshop: Apache and PHP – Back to Basics - php[architect] Magazine January 2022
This month we’re diving into Apache and PHP configuration to better understand the relationship between the web (HTTP) server and our application. When getting started with PHP it’s quite common for tutorials and guides to skip over the webserver and focus more on the language aspects. PHP developers need to have a strong understanding of how the webserver executes their code as requests...
learning phparch writing php apache
ReadFebruary 25, 2022
The Workshop: Testing with Pest Framework - php[architect] Magazine August 2021
Pest is a PHP testing framework focused on simplicity and brings a powerful expectations API to PHP. Pest is influenced by Jest, a JavaScript testing framework. Pest was created by Nuno Maduro originally via Sponsorware license, and ultimately has been published under the MIT open source license. You can think of Pest ha an alternative to other testing frameworks, such as Codeception, which can...
learning phparch writing php testing
ReadOctober 14, 2021
Getting Takeout with Homestead
With the release of Homestead Base box Tighten's Takeout is now included by default. Takeout is a cli tool for creating general use Docker containers. Homestead has supported Docker since it's early days however takeout makes it incredibly convenient to create services via Docker instead of having to install and configure the service directly in the virtual machine. Why would you want to use...
learning vagrant homestead docker
ReadJune 11, 2021
The Workshop: S3 Storage with MinIO - php[architect] Magazine January 2021
This month we’re diving into running our own S3 compatible open-source server via the open-source project MinIO. We’ll configure MinIO alongside our local development environment so we can easily replicate the integration of our application with S3 object storage without operating on “production” storage buckets or having to setup “dev” buckets. Amazon’s Simple Storage Service...
learning phparch writing php s3 data storage
ReadJune 2, 2021
Adding Another Disk to WSL2
The Windows Subsystem for Linux has fundamentally changed how I develop projects. WSL2 providing native Ubuntu 20.04 cleanly running inside of Windows 10 has been an incredible experience. While many WSL users may be excited for WSLg; I'm just as excited about being able to Mount a VHD in WSL. VHD is a file format which represents a virtual hard disk drive. Typically these files are used with...
ReadJanuary 10, 2021
The Workshop: Easy CLI PHP with Symfony Console 5 - php[architect] Magazine April 2020
Writing console commands with PHP is something I have always taken for granted. I started my career having learned Linux and command line server configuration and was very comfortable writing small applications with BASH scripts, Python, and even dabbling in C and Microsoft Qbasic. These commands copied files to a backup location, process batched data records in CSV, XML, and various other...
ReadJanuary 10, 2021
The Workshop: Specification BDD with Phpspec - php[architect] Magazine May 2020
phpspec is a package in which we can use behavior driven development, BDD, which comes fromtest driven development, TDD. When applying BDD we’ll write our tests first and then only enough code to pass our tests and then refactor and verify the tests still pass exactly as we would with TDD. This cycle continues and is often referred to as red-green development of writing tests that fail and...
learning phparch writing php testing
ReadDecember 10, 2020
The Workshop: Managing LAMP with Virtualmin - php[architect] Magazine March 2020
Virtualmin is a web hosting and cloud computing control panel. A hosting control panel is a web-based application that runs on a server and manages all the aspects of a hosting account. This includes account information, web sites, web servers, databases, mail servers, and all the other services which ultimately work together to allow you to run your application. A lot of value I get from...
ReadDecember 1, 2020
The Workshop: Ansible in Practice - php[architect] Magazine January 2020
This month, we're going to dive into a practical application of Ansible by building a playbook with roles to implement a fully functional Linux, MySQL, PHP, and NGINX web server. By the end, you should be able to take the playbook we build together and extend it to suit your requirements. To follow along or review any parts of the playbook we're building, you can clone the repository....
ansible learning phparch writing php
ReadSeptember 26, 2020
The Workshop: Real World PDF Generation - php[architect] Magazine September 2019
Last month we covered the basics of PDF generation by focusing on the FPDF library. We generated a custom PDF by placing cells on the page and adding data to those cells. FPDF is a relatively low-level library in comparison to modern libraries which may do more of the heavy lifting for you. This month we’re going to pick up where we left off with our example application which you can...
ReadSeptember 24, 2020
The Workshop: Introduction to PDF Generation - php[architect] Magazine August 2019
In early July 2019 I asked Reddit What questions do you have about generating PDFs w/ PHP? (Research for an article) : PHP and I was pleasantly surprised at the genuine answers and feedback I received (as opposed to the normal nonstop trolling that Reddit is usually known for). One comment listed 19 different questions! Many of the comments mention different libraries and services and I believe...
ReadSeptember 10, 2020
The Workshop: Run Amazon Linux Locally - php[architect] Magazine July 2019
Amazon Linux 2 is the current generation of Linux provided by Amazon Web Services (AWS) specifically for use in its ElasticCloud (EC2) platform. Amazon Linux evolved out of the Red Hat Enterprise Linux and CentOS ecosystems. If you have used either of these distributions you will feel right at home. Amazon Linux also has the added benefit of support directly from AWS as well as security...
learning packages phparch writing linux
ReadSeptember 5, 2020
The Workshop: The Road to 7.3 (Part 2) - php[architect] Magazine February 2019
Last month we explored the world of static analyzers Phan and PhpStan to find compatibility issues any several other common issues in our PHP Easy Math code base. This month we’re going to review our code base and implement new and recent features from PHP 7.x One of the best features of new PHP versions is the performance boost. With every PHP 7 release we have enjoyed some amount...
learning packages phparch writing php
ReadSeptember 4, 2020
The Workshop: The Road to 7.3 (Part 1) - php[architect] Magazine January 2019
Last month as I was writing “The Workshop: Producing Packages (Part 3)” I had a feeling I would end up regretting the line “This will be the third and final installment in this series”. Sure enough I have one more topic I want to cover: upgrading to a new PHP version. Upgrading PHP versions is enough to be its own “The Workshop” series however since 7.3 was just released...
learning packages phparch writing php
ReadSeptember 3, 2020
The Workshop: Producing Packages (Part 3) - php[architect] Magazine December 2018
Over the past two months we've been building PHP Easy Math a purposely simple example library to demonstrate how to build a reusable package for the PHP ecosystem. Make sure to check the previous issues if you're just now joining us! This will be the third and final installment in this series. This month we're going to cover triaging and managing issues users may open as well as pull...
learning packages phparch writing php
ReadSeptember 2, 2020
The Workshop: Producing Packages (Part 2) - php[architect] Magazine November 2018
Last month we started building PHP Easy Math, a small library which can be included in PHP projects to provide simple methods to do basic addition and subtraction. We're using this as an example library to focus on what makes a library "good" we are less worried about the practical need for and usage of our package. If you have not yet read Part 1 pause here and go read The...
learning packages phparch writing php
ReadSeptember 1, 2020
The Workshop: Producing Packages (Part 1) - php[architect] Magazine October 2018
This month we are diving into creating PHP packages and ensuring our packages are held to a high standard of having tests, license information, and other best practices for creating and maintaining high quality PHP packages. Composer changed the entire PHP ecosystem by giving us Composer, a fantastic package manager and Packagist, the public repository of libraries. PHP developers can...
learning packages phparch writing php
ReadAugust 27, 2020
The Workshop: Describe Your Tests with Kahlan - php[architect] Magazine September 2018
This month we're covering a full featured unit and behavior driven development (BDD) test framework named Kahlan. Kahlan is similar to Rspec (Ruby) and JSpec (Java) using BDD style syntax where you describe the behavior your application should have. We already have tons of PHP testing frameworks readily available in the PHP ecosystem such as PHPUnit, phpspec, Codeception, Behat, and...
learning phparch writing testing php
ReadAugust 26, 2020
The Workshop: Make PhpStorm Work for You - php[architect] Magazine August 2018
This month we're going to dive into using PhpStorm and cover configuration from personal preferences to obeying standards and day to day usage. PhpStorm is practically the de facto integrated development environment (IDE) for PHP development. It's a paid product from a company named JetBrains. Jetbrains develops and maintains several IDEs for specific languages such as WebStorm for...
learning packages phparch writing php
ReadAugust 24, 2020
The Workshop: CakePHP Part Two - php[architect] Magazine July 2018
Last month we covered the basics of CakePHP and how to get started creating routes, controllers, database tables, and retrieving data. This month we're going to dive into returning HTML views, creating and validating forms to create new widgets. We are going to start off by refactoring the routes code we built in the previous article "The Workshop: CakePHP, Part 1". You can find the code...
learning packages phparch writing cakephp
ReadAugust 23, 2020
The Workshop: CakePHP Part One - php[architect] Magazine June 2018
Welcome to the first installment of The Workshop, a column where we try out new tools and techniques to hone our craft as developers. We'll be covering frameworks, packages, tools, and exploring topics related to the PHP development ecosystem. This month we're going to jump into CakePHP. CakePHP has recently released version 3.6 of their full stack framework. CakePHP started out as a...
learning packages phparch writing cakephp
ReadAugust 19, 2020
The Workshop: System Management with Ansible php[architect] Magazine December 2019
Ansible is an IT automation tool used for configuring systems and deploying applications. Ansible is open source is supported in the enterprise by RedHat. Ansible communicates over SSH so there is no need to install any extra software on the remote systems. Ansible allows us to version control our infrastructure in YAML files and supports Jinja templates allowing flexibility in how we can...
learning packages phparch writing ansible
ReadJuly 12, 2020
Exporting and Importing WSL Linux Distributions on Windows 10
I've recently spent a lot of dedicated time exploring Windows 10 as a development environment. The best part of this process has been becoming familiar with Windows Subsystem for Linux, or WSL. With WSL 2.0 Microsoft is shipping a complete Linux kernel with Windows 10. Getting started with WSL is a few steps through the Windows Features menu to ensure you have enabled WSL services, then into...
ReadFebruary 12, 2020
Contrarian bikeshedding isn't helpful
Users who reply to threads about $technology
with comments such as:
OMG! Why are you still using $technology
when $new_tech
exists!
These replies offer nothing of value and should be moderated or down voted into oblivion.
Go forth and stop telling people to buy an orange when their pear isn't working out.
February 10, 2020
It's always ok to ask questions
I've noticed a trend lately where people who report issues on open source projects are seemingly using throwaway accounts to post issues and receive help. One case in particular was last month I solved an issue for a user who's GitHub account was brand new. They created this account just to post the issue. How do I know? They left their email address publicly viewable on their profile (Maybe it's...
ReadJanuary 27, 2020
Introduction to Computer Science and Programming Using Python
I started the edx course "Introduction to Computer Science and Programming Using Python" last Thursday. I learned Python way back in the late 90s early 2000s as I was learning Linux as well at the time. I'm ~8 months into my Python focused day job and I want the guided newbie approach. I even spent the $75 to get the validated identification so at the end of the course I'll get a certificate (so...
ReadAs Seen On
Recent Posts
- PHP to Rust via Copilot
- Compiling Python 3.12 from Source Tarball on Linux
- HTML Form Processing with PHP - php[architect] Magazine August 2014
- The Workshop: Local Dev with Lando - php[architect] Magazine November 2022
- Getting back into the swing of things
- All Posts
Categories
- ansible
- apache
- applesilicon
- aws
- blackwidow
- cakephp
- community
- composer
- conferences
- copilot
- data-storage
- day-job
- devops
- docker
- fpv
- general
- github
- givecamp
- homestead
- jigsaw
- joindin
- keyboard
- laravel
- learning
- linux
- maker
- mamp
- mentoring
- music
- nonprofit
- opensource
- packages
- php
- phparch
- projects
- provisioning
- python
- razer
- rust
- s3
- security
- slimphp
- speaking
- static-sites
- storage
- testing
- tiny-whoop
- today-i-learned
- training
- ubuntu
- vagrant
- version-control
- windows
- writing
- wsl
- wsl2
- zend-zray