Author Archives: Ethan Banks
Author Archives: Ethan Banks
The business benefits of network automation are sometimes lost in discussion about technology and tools. Guest Tim Fiola joins this episode of Heavy Networking to discuss how to engage the business at a cultural level so that network automation is properly embraced and supported by management.
The post Heavy Networking 627: Network Automation As A Business Culture appeared first on Packet Pushers.
Today's Heavy Networking, sponsored by Juniper, dives into the custom vs. merchant silicon debate. Juniper makes the case for its Trio 6 ASIC in MX routers. We get into the specifics of Trio 6 capabilities, examine the needs of the multi-service edge, and discuss the technology and business cases for custom hardware.
The post Heavy Networking 626: Choosing The Right Silicon For The Job (Sponsored) appeared first on Packet Pushers.
Today's Heavy Networking dives into home IoT at scale. We’re going to get into the weeds with two network engineers who’ve gone way beyond lighting and a few smart plugs in their home automation setup. We'll talk devices, protocols, security, and more.
The post Heavy Networking 625: Home IoT Networking At Scale appeared first on Packet Pushers.
When parsing Apache web server logs on Linux, I find it interesting to monitor access requests resulting in HTTP status codes other than 200s. An HTTP status code in the 200s mean the request was successful, and hey–that’s boring.
I want to see the requests that my dear Apache instance is upset about. So the question becomes…how do I filter the logs to show me every entry that doesn’t have a status code in the 200s?
Let’s back our way into this. We’ll start with the answer, then explain how we got there.
This CLI incantation will get the job done.
sudo grep -E '\" [1345][01235][0-9] [[:digit:]]{1,8} \"' /var/log/apache2/access.log
If you’d like to watch the log entries scroll by in real time, try this.
sudo tail -f /var/log/apache2/access.log | grep -E '\" [1345][01235][0-9] [[:digit:]]{1,8} \"'
Let’s focus on the regular expression (regex) grep is using to find the matches. In plain English, the grep utility is using an extended -E regex to display all lines in the file /var/log/apache2/access.log matching the regex.
The regex portion of the command is as follows.
'\" [1345][01235][0-9] [[:digit:]]{1,8} \"'
The regex is enclosed in single quotes Continue reading
Fantastical Openings can’t replace Calendly for my scheduling needs yet, but it’s close.
I use Calendly so that folks can schedule me for appointments. I send people a Calendly link, and they choose an available time slot. Calendly creates calendar invitations and sends them to me and the requestor. Calendly also integrates with Zoom, so that an invite comes with a Zoom meeting already attached.
In my years of Calendly use, I’ve found it to be…
I also use Fantastical by Flexibits. In my few months as a Fantastical user, I’ve found it to be…
Start that business. You have sufficient technical & business skills, and you can figure out what you don’t know. Take the chance now while you have little at risk.
You’re not the standard everyone else is supposed to live up to. Work on your own faults. They are legion.
Your boss is your boss for a reason. You’re not the boss for a reason, too. When you understand and accept those reasons, you’ll reduce the workplace friction you keep experiencing.
Meritocracy doesn’t mean what you think it means. Being good at your job doesn’t mean you deserve a promotion.
More responsibility comes easy, because no one wants it. More compensation comes hard, because everyone wants it.
Business owners who cheat their partners & customers will cheat their employees, too. Run at the first sign of dishonest business dealings.
Define your goals so you know when you’ve reached them. Otherwise, you’ll exhaust yourself with endless effort.
You are your own worst critic. Take yourself less seriously.
When you work for someone else, you are a replaceable component in a larger machine. This is by design.
You don’t Continue reading
Today's Heavy Networking is a roundtable conversation about career growth. Maybe your title is junior engineer, but you want to be a senior engineer. Be careful what you wish for! Maybe your title is junior but you feel you’re doing the job of a senior. Are you really? How would you justify this to your manager? We address these and other questions and issues including certs vs. experience, paying dues, the importance of communication skills, and more.
The post Heavy Networking 623: Growing From Junior To Senior Engineer appeared first on Packet Pushers.
On today's Tech Bytes with sponsor Singtel, we look at SD-WAN as a critical network feature for cloud access, including the use of overlays to simplify operations. We also discuss why organizations might consider a service provider for SD-WAN and dig into Singtel's SD-WAN offering.
The post Tech Bytes: The Advantages Of Singtel SD-WAN For Cloud Access (Sponsored) appeared first on Packet Pushers.
When running ‘apt update’ on Ubuntu 18.04 to prepare for routine system patching, the system kicked back the following error.
N: Skipping acquire of configured file 'nginx/binary-i386/Packages' as repository
'http://nginx.org/packages/ubuntu bionic InRelease' doesn't support architecture 'i386'
The issue is that the existing sources list file for NGINX has gone stale, and appears to be requesting the i386 package. NGINX does not support i386 on Ubuntu 18.04 (Bionic). The solution is to update the sources list file for NGINX.
deb http://nginx.org/packages/ubuntu bionic nginx
deb [arch=amd64] http://nginx.org/packages/mainline/ubuntu/ bionic nginx
After this change, the error should be gone when running ‘apt update’.
NGINX update issue (Ubuntu 18.04 Bionic) – Vesta Control Panel Forum
Ubuntu Server 18.04 Nginx i386 – StackOverflow
On today's Heavy Networking, sponsor Itential joins us to discuss how you can deliver a scalable and sustainable network automation system for your enterprise. Our guest is Peter Sprygada, VP of Product Management at Itential.
The post Heavy Networking 621: Get Scalable Network Automation With Itential (Sponsored) appeared first on Packet Pushers.
Python gives you the ability to write a bit of code and the call that code as a function. You can call the function from within the same script where the function is defined, or you can save the function in a separate script and then import the function inside of other scripts.
Writing and calling functions is a key component of the Don’t Repeat Yourself (DRY) principle of software development. Creating a function in a single script and calling that function from other scripts is preferable to performing copypasta of the same bit of code throughout several scripts. When a function lives in a single script, it only needs to be updated in that one place when it inevitably needs updating.
While Python functions can perform isolated tasks, my typical use cases send values into the function and receive a value returned from the function. In this example, I’ll import a Python function used to refresh an access token required to authenticate to a remote API endpoint. I’ll pass other tokens required to refresh the access token into the function, and the function will return the refreshed access token back to the calling script.
The names of Continue reading