I was working on https://github.com/lathama/Adynaton and playing with pylint for linting. One common issue I see is the naming conflicts. PEP8 has good guidance on naming and when dealing with abbreviations. So when using DNS for Domain Name System it is proper to use the uppercase abbreviation. Elsewhere in the guidelines the recommendation that abbreviations not be used when possible and to be very descriptive. So when a linter says that a variable name is not valid like self.DNS_port it is sort of frustrating to know that the results will be skewed. I understand that self.domain_name_system_port is descriptive and that inferring the class name is the defined way to go. My concern is with legacy code that might exist with acceptable usage of naming conventions but linters fail the developers attempting to improve their code. Lets not lower the standards of linters but instead offer a legacy switch to enable developers to benefit first from the serious issues before getting into the fine details.
I have a series of PCEngines APU2 systems I use for my lab and I am re-thinking how to manage them as far as PXE booting. I want to work on some IPv6 booting options and need to isolate the environment like normal. Of course I can use VLAN isolation and configure the mapping per port on the managed switch. The real problem is that there are too many options.
Some quotes that are interesting.
Too much change is called war. Too little change is also called war. -- Andrew Latham 2008
Always run a honeypot on VLAN1 -- Andrew Latham 2004
Opinions can't be right or wrong as they are not assertions. -- Andrew Latham 2012
I am an Autodidact. I have worked in technology for most of my life. In the large technical community I see that my processing of information and situations is different. Being different is not a bad thing and has opened up some doors in understanding how the world works. "Self Taught" is mostly untrustworthy in my areas of work so I will often omit education from my CV or Resume all together. There is much to learn about how the world accepts different and how people and organizations build walls. I worked in a country where an approved degree from an approved school was the criteria for practicing business. Imagine not being able to legally do an odd job and get paid without an advanced degree of approved education. This was my introduction to the Class System.
Frustration is a problem in my life and I truly need to learn to deal with it better. I learned about what are called "vampire help" questions recently. In a given problem-solution process I incorrectly assume that others will research the issues to bring solutions to the table. After some work in the large businesses I have found that most people use solutions and don't create them. I don't paint, or play musical instruments but I do create solutions or more correctly I see the root cause of the problem. Some times doing nothing is a solution, sometimes no is the answer, sometimes stopping a project is best for the shareholders.
Don't punish people who think differently, instead see them for fantastic sources of critical thinking that they are. An Autodidact is always taking in information and can be mostly correct because they simply have the information at hand. Don't be offended by an Autodidact they can have the same level of confusion about you as you do them.
On KDE 5.X with Google Chrome the systray icon attempts to load via a newer version than the package calls for of a library called libappindicator. To fix do this on Debian.
apt-get install libappindicator3-1
For other distro's ymmv
Like building construction and design there are Architects in technology. The architecture of an application suite or a datacenter is a complex stack of components that need to work for the project. I self identify as an Architect which means that I think about the big picture in every way. Having skills in software design, systems engineering and physical plant is rare. One issue that see as an ongoing issue over time is the assignment or hiring of Architects for software development and systems engineering in companies of various sizes. I see this role filled via promotion only and only via internal candidates. An internal candidate can be a great architect but the process of promotion is very often into a management role before an architecture role. The issue comes from the history with the organization and politics that develop. Architecture is about building safe solutions that are efficient or use resources minimally.
I continue to talk to and see issues where the product hand off or on-boarding is impossible when the development, systems, security, auditing or any number of organization silos have altered the project in impactful ways. Always be prepared to stop and review the architecture if there is a change.
My Personal Infrastructure
I have possibly too much physical hardware for one person to use. I like to setup laboratories and prove things out. I can spin up a VM on any given system I have in a matter of minutes. I care about my tools. Lets look at some concepts to creating a commercial and personal lab.
A commercial laboratory starts with product development and ends with product support in the lifecycle. The business will look at it as overhead when it falls under multiple budgets. Identify the laboratory as a shared resource.
- Open Access Wiki
- Physical Hardware to match Production (trouble shoot hardware issue)
- Software stack to match production (regression testing only)
- API endpoints for testing
- End user devices (tablet, phone, laptop) Apply roles and rights to the resource so that you capture the value. Example if a C-Level manager wants to do a private demo for a customer use the laboratory. Assign roles for network security, application security, network support, application support, customer support, product development, hardware support, production support and any number of roles. Do not call it a playground. Create environments within the laboratory for development, quality, production to enable the development and refinement of the product lifecycle and or the promotion life cycle.
Limited resources are not a limitation in technology. A personal laboratory is not a business critical resource so you can build and destroy freely. You want to develop some simple processes for the build of VMs of various environments and make sure that it is easy. If it is easy for you to test something then you will test things with ease. Using a wiki you can also build up a complex environment without the resources others have by documentation.
- Open Access Wiki
- Laptop/Desktop you can afford to keep around
- Network/NAS/Router that you can afford off of ebay
With decades of Open Source Software work I know to trust volunteer developed software more than commercial software. This is not tree hugging bias but actual experience. It is important to test things and build that experience for yourself. Proving out the impact of a change on a system in a laboratory vs production will obviously get you a raise some day so give it a go. Learn how to replicate a system package for package, config for config, and document the results of upgrades, changes etc.
With a personal laboratory feel free to test any software you read about, hear about, and or asked about. If you can setup random solutions in minutes and do it often then you will become confident in the process.
While watching Rand talk about this I was looking for the option to instantly buy him a beverage of his choice. To often I see these reports on best practice and averages that aspire to address every type of content in every industry. Not all audiences are the same for all industries. I was thinking about this and a great comparison could be measurement conversion in cooking where a short concise answer that is less than 10 words is more useful for the audience versus content describing the history of cooking flour where we would expect longer content and even citations to more content both online and off.
Write a lot of content to become a better content creator. Publish content for the domain or site that your audience would find useful. Review your metrics always.